Restore beta4 for a devel release.
Merge pull request #1251 from sinzui/inc-1.21-beta4-again

Restore beta4 for a devel release.

The 1.21.0 version change branch was merged. I didn't intend it to be merged until stakeholders agreed they were ready for 1.21.0 in production.

(Review request: http://reviews.vapour.ws/r/562/)
Implemented peer-review suggestions.

- Obviated need for bounds checking by building up a slice instead of tearing one down.
- Behavior of service filtering as it was before new filtering infrastructure.

Conflicts:
	apiserver/client/status.go
	cmd/juju/status_test.go
Merge pull request #1249 from wallyworld/generate-old-simplestreams-index

When writing metadata, copy any released metadata to the legacy index file

Fixes: https://bugs.launchpad.net/juju-core/+bug/1396981

The legacy index.json file needs to be written out to contain any released metadata. This allows the current release scripts to work.

(Review request: http://reviews.vapour.ws/r/560/)
Merge pull request #1255 from katco-/v1.21

Backport: Implemented peer-review suggestions.

- Obviated need for bounds checking by building up a slice instead of tearing one down.
- Behavior of service filtering as it was before new filtering infrastructure.

Conflicts:
	apiserver/client/status.go
	cmd/juju/status_test.go

(Review request: http://reviews.vapour.ws/r/569/)
Merge pull request #1256 from wallyworld/generate-old-simplestreams-index-1.21

Merge pull request #1249 from wallyworld/generate-old-simplestreams-index

Backport from master

When writing metadata, copy any released metadata to the legacy index file

Fixes: https://bugs.launchpad.net/juju-core/+bug/1396981

The legacy index.json file needs to be written out to contain any released metadata. This allows the current release scripts to work.

(Review request: http://reviews.vapour.ws/r/560/)

(Review request: http://reviews.vapour.ws/r/570/)
provider/azure: filter out unsupported role sizes

Not all locations support all role sizes, so we
now query Azure's ListLocations API to check
availability.

Additionally, we have found that creating virtual
networks with affinity groups restricts which role
sizes can be provisioned, presumably because this
restricts the physical hosts which may be used.
We switch to using Location in virtual networks
instead, and filter out D and G series role sizes
in environments with a virtual network tied to an
affinity group. Higher performance A-series role
sizes may also fail, but are only going to be chosen
by users to specify the constraints accordingly
anyway.

Fixes https://bugs.launchpad.net/juju-core/1.21/+bug/1398406
Address review comments
Fix comment
Fix up code to work with old deps
Merge pull request #1265 from axw/azure-rolesizes-1.21

provider/azure: filter out unsupported role sizes (1.21)

(backport to 1.21)

Not all locations support all role sizes, so we now query Azure's
ListLocations API to check availability.

Additionally, we have found that creating virtual networks with affinity
groups restricts which role sizes can be provisioned, presumably because
this restricts the physical hosts which may be used. We switch to using
Location in virtual networks instead, and filter out D and G series role
sizes in environments with a virtual network tied to an affinity group.
Higher performance A-series role sizes may also fail, but are only going to
be chosen by users to specify the constraints accordingly anyway.

Fixes https://bugs.launchpad.net/juju-core/1.21/+bug/1398406

(Review request: http://reviews.vapour.ws/r/579/)
Merge pull request #1266 from wallyworld/azure-services-for-env

Ensure only instances for this environment are used in azure operations

Instead of using the gwacl method ListPrefixedHostedServices() which can return services from other environments, we use out own method to return services for this environment.

Fixes: https://bugs.launchpad.net/juju-core/+bug/1398820

(Review request: http://reviews.vapour.ws/r/580/)
Merge pull request #1268 from wallyworld/azure-services-for-env-1.21

Merge pull request #1266 from wallyworld/azure-services-for-env

Ensure only instances for this environment are used in azure operations

Instead of using the gwacl method ListPrefixedHostedServices() which can return services from other environments, we use out own method to return services for this environment.

Fixes: https://bugs.launchpad.net/juju-core/+bug/1398820

(Review request: http://reviews.vapour.ws/r/580/)

(Review request: http://reviews.vapour.ws/r/582/)
Merge pull request #1164 from axw/ec2-blockdevicemapping-allephemeral

provider/ec2: allocate all instance stores

When starting an instance in EC2, specify all of the
instance stores in the block device mapping. The instance
started will have as many four attached, according to
the instance type.

getBlockDeviceMappings will be enhanced in the near
future to support attaching additional volumes to
instances at creation time (i.e. for charm storage).

(Review request: https://reviews.vapour.ws/r/475/)
Merge pull request #1273 from wallyworld/allocate-all-ec2-stores

Merge pull request #1164 from axw/ec2-blockdevicemapping-allephemeral

provider/ec2: allocate all instance stores

When starting an instance in EC2, specify all of the
instance stores in the block device mapping. The instance
started will have as many four attached, according to
the instance type.

getBlockDeviceMappings will be enhanced in the near
future to support attaching additional volumes to
instances at creation time (i.e. for charm storage).

(Review request: https://reviews.vapour.ws/r/475/)

(Review request: http://reviews.vapour.ws/r/587/)