added newmetrics function to testing factory
unique strings for makemetrics
Merge pull request #546 from mattyw/metric-factory

added newmetrics function to testing factory

Added a MakeMetric function to the testing factory
state/api/{keyupdater,networker}: use names.Tag

Use tags not strings on api methods.
Initial merge of 1.20 into master
corresponding changes to worker/
Merge pull request #548 from davecheney/182-state-api-use-tags

state/api/{keyupdater,networker}: use names.Tag

Use tags not strings on api methods.
Add extra logging
Update deps for utils package update
Merge pull request #549 from wallyworld/merge-1.20

Merge of 1.20 into master

This PR merges 1.20 into master to ensure nothing done for 1.20 has slipped through the cracks. After resolving all conflicts, the only remaining change is the recently committed 1.20 work to make lxc containers copy tools from the file system.
provider/maas: report arch matching tools in tests

The architecture of the instances must match the
architecture of the tools uploaded, which is the
same as version.Current.Arch in the tests.

__fixes-1358768__
Merge pull request #552 from axw/lp1358768-provider-maas-i386

provider/maas: report arch matching tools in tests

The architecture of the instances must match the
architecture of the tools uploaded, which is the
same as version.Current.Arch in the tests.

__fixes-1358768__
Merge pull request #550 from wallyworld/juju-utils-update

Update deps for utils package update

Fixes bug https://bugs.launchpad.net/bugs/1354685
worker/upgrader: use already downloaded tools if available

Environment storage was always being consulted when looking for new
tools versions. This change makes it so if the desired tools have
already been downloaded locally, the tools in environment storage
aren't checked.

Although this is a nice shortcut generally, the change is essential to
allow downgrades to the previous agent version in the case of aborted
upgrades. For environments using the local or manual provider,
environment storage isn't available when upgrade mode is active.
Merge pull request #554 from mjs/upgrader-use-local-tools-if-available

worker/upgrader: use already downloaded tools if available

Environment storage was always being consulted when looking for new tools versions. This change makes it so if the desired tools have already been downloaded locally, the tools in environment storage aren't checked.

Although this is a nice shortcut generally, the change is essential to allow downgrades to the previous agent version in the case of aborted upgrades. For environments using the local or manual provider, environment storage isn't available when upgrade mode is active.
Add windows userdata support

* refactor cloudinit packages to include support for windows userdata
* fix NewMachineConfig to store corect paths when on windows
Added tests for windows userdata
Changes made based of feedback