Merge pull request #968 from wallyworld/release-tools-path

tools tarballs now live in a directory named after their stream

Previously, tools tarballs used to all be put into a directory called "releases".
The QA team want tools tarballs instead to be located in directories named after their stream eg proposed, testing, released etc. The paths to the tarballs are in the index.json files, so existing metadata will work still.

Newly generated metadata using the generate-tools plugin will now generate the new paths.

These changes are largely mechanical - many test methods now take a stream parameter so the correct tools path can be used.

Fixes: https://bugs.launchpad.net/juju-core/+bug/1384979
Merge pull request #943 from perrito666/refactor_peergrouper_tests

Refactor peergrouper tests to avoid cycle imports

The tests for peergrouper, being part of peergrouper package
would trigger an import cycle if anything under apiserver
imports peergrouper.
The tests where refactored to use the export_test pattern
so all tests are under peergrouper_test package
upgrades: check for ErrNoTools in tools migration

The tools storage migration step was failing if
there were no tools in the private provider storage.
This is fixed by checking for an additional error
in the upgrade step.

Unit test added, and live tested on AWS by uploading
custom tools to my own S3 bucket.

Fixes https://bugs.launchpad.net/juju-core/+bug/1385289
Merge pull request #950 from alesstimec/bug#1304126

Bug#1304126

Possible fix for Bug #1304126

In the SetEnvironmentCommand's Init function I added an additional API call to retrieve existing environment config. All keys a user specifies in the "juju set-env" command are checked against the existing config keys and if the user defined key does not exist in the existing config a warning of a possible misspelling is issued.

This way if the users tries: 
juju set-env ss-hostname-verification=false 

A warning will be returned (though the setting is still forwarded to the state):
2014-10-23 09:45:03 WARNING juju.cmd.juju environment.go:135 key ss-hostname-verification is not defined in the current environemnt configuration: possible misspelling


In addition i fixes a few capitalisation in some of the returned error messages.
Merge pull request #958 from alesstimec/bug#1384622

Bug #1384622 - juju set should give feeback that the value is already set

Added a check to the "juju set" command, which issues a warning to the user
if the value of the configuration option is already set to the desired value.

The check is done by retrieving the unit's configuration options via an
additional API call and comparing the user-defined value with the
existing configuration value.
Merge pull request #975 from axw/lp1385289-upgrade-toolsstorage-notools

upgrades: check for ErrNoTools in tools migration

The tools storage migration step was failing if
there were no tools in the private provider storage.
This is fixed by checking for an additional error
in the upgrade step.

Unit test added, and live tested on AWS by uploading
custom tools to my own S3 bucket.

Fixes https://bugs.launchpad.net/juju-core/+bug/1385289
Merge pull request #956 from TheMue/job-manage-networking-upgrade

Upgrade for JobManageNetworking

MigrateJobManageNetworking adds the JobMachineNetworking to all existing machines according but

- machines in a MAAS environment,
- machines in a manual environment,
- bootstrap node (host machine) in a local environment, and
- manually provisioned machines.
extract relation membership caching into new type; not hoked up yet
extract relation membership caching into new type, which I remembered to add this time; not hooked up yet
figured out better interface
Change signature of AllocateAddress
Fix test for new AllocateAddress
Remove old comment
Refactr peergrouper to export less API

Changes where made to make all of peergrouper changes external
but, after comments from @rogpeppe the changes have been
reworked to only export the necessary API from tests
and make a peergrouper_test packages only including the
part of the code that is indirectly using dummy provider
and therefore causing an import cycle when apiserver is
imported from state
Merge pull request #977 from voidspace/allocate-address-signature

Allocate address signature

AllocateAddress will be used by providers (the ones that support this functionality) to allocate a private address. Because of provider limitations we need to pass in the address to allocate, so the signature is changing appropriately.
Removed unnecesary commented code
Merge
Trivial implementation of ec2 AllocateAddress
Minor fixes
use errors annotate instead of fmt.Errorf