|
|
@@ -40,7 +40,6 @@ from cloudbridge.cloud.interfaces.exceptions import InvalidValueException
|
|
|
from cloudbridge.cloud.interfaces.resources import KeyPair
|
|
|
from cloudbridge.cloud.interfaces.resources import MachineImage
|
|
|
from cloudbridge.cloud.interfaces.resources import Network
|
|
|
-from cloudbridge.cloud.interfaces.resources import PlacementZone
|
|
|
from cloudbridge.cloud.interfaces.resources import Snapshot
|
|
|
from cloudbridge.cloud.interfaces.resources import TrafficDirection
|
|
|
from cloudbridge.cloud.interfaces.resources import VMFirewall
|
|
|
@@ -59,7 +58,6 @@ from .resources import AWSKeyPair
|
|
|
from .resources import AWSLaunchConfig
|
|
|
from .resources import AWSMachineImage
|
|
|
from .resources import AWSNetwork
|
|
|
-from .resources import AWSPlacementZone
|
|
|
from .resources import AWSRegion
|
|
|
from .resources import AWSRouter
|
|
|
from .resources import AWSSnapshot
|
|
|
@@ -352,14 +350,14 @@ class AWSVolumeService(BaseVolumeService):
|
|
|
|
|
|
@dispatch(event="provider.storage.volumes.create",
|
|
|
priority=BaseVolumeService.STANDARD_EVENT_PRIORITY)
|
|
|
- def create(self, label, size, zone, snapshot=None, description=None):
|
|
|
+ def create(self, label, size, snapshot=None, description=None):
|
|
|
AWSVolume.assert_valid_resource_label(label)
|
|
|
- zone_id = zone.id if isinstance(zone, PlacementZone) else zone
|
|
|
+ zone_name = self.provider.zone_name
|
|
|
snapshot_id = snapshot.id if isinstance(
|
|
|
snapshot, AWSSnapshot) and snapshot else snapshot
|
|
|
|
|
|
cb_vol = self.svc.create('create_volume', Size=size,
|
|
|
- AvailabilityZone=zone_id,
|
|
|
+ AvailabilityZone=zone_name,
|
|
|
SnapshotId=snapshot_id)
|
|
|
# Wait until ready to tag instance
|
|
|
cb_vol.wait_till_ready()
|
|
|
@@ -733,7 +731,7 @@ class AWSInstanceService(BaseInstanceService):
|
|
|
|
|
|
@dispatch(event="provider.compute.instances.create",
|
|
|
priority=BaseInstanceService.STANDARD_EVENT_PRIORITY)
|
|
|
- def create(self, label, image, vm_type, subnet, zone,
|
|
|
+ def create(self, label, image, vm_type, subnet,
|
|
|
key_pair=None, vm_firewalls=None, user_data=None,
|
|
|
launch_config=None, **kwargs):
|
|
|
AWSInstance.assert_valid_resource_label(label)
|
|
|
@@ -742,7 +740,7 @@ class AWSInstanceService(BaseInstanceService):
|
|
|
isinstance(vm_type, VMType) else vm_type
|
|
|
subnet = (self.provider.networking.subnets.get(subnet)
|
|
|
if isinstance(subnet, str) else subnet)
|
|
|
- zone_id = zone.id if isinstance(zone, PlacementZone) else zone
|
|
|
+ zone_name = self.provider.zone_name
|
|
|
key_pair_name = key_pair.name if isinstance(
|
|
|
key_pair,
|
|
|
KeyPair) else key_pair
|
|
|
@@ -752,7 +750,7 @@ class AWSInstanceService(BaseInstanceService):
|
|
|
bdm = None
|
|
|
|
|
|
subnet_id, zone_id, vm_firewall_ids = \
|
|
|
- self._resolve_launch_options(subnet, zone_id, vm_firewalls)
|
|
|
+ self._resolve_launch_options(subnet, zone_name, vm_firewalls)
|
|
|
|
|
|
placement = {'AvailabilityZone': zone_id} if zone_id else None
|
|
|
inst = self.svc.create('create_instances',
|
|
|
@@ -1023,10 +1021,9 @@ class AWSSubnetService(BaseSubnetService):
|
|
|
|
|
|
@dispatch(event="provider.networking.subnets.create",
|
|
|
priority=BaseSubnetService.STANDARD_EVENT_PRIORITY)
|
|
|
- def create(self, label, network, cidr_block, zone):
|
|
|
+ def create(self, label, network, cidr_block):
|
|
|
AWSSubnet.assert_valid_resource_label(label)
|
|
|
- zone_name = zone.name if isinstance(
|
|
|
- zone, AWSPlacementZone) else zone
|
|
|
+ zone_name = self.provider.zone_name
|
|
|
|
|
|
network_id = network.id if isinstance(network, AWSNetwork) else network
|
|
|
|
|
|
@@ -1046,8 +1043,8 @@ class AWSSubnetService(BaseSubnetService):
|
|
|
# pylint:disable=protected-access
|
|
|
sn._subnet.delete()
|
|
|
|
|
|
- def get_or_create_default(self, zone):
|
|
|
- zone_name = zone.name if isinstance(zone, AWSPlacementZone) else zone
|
|
|
+ def get_or_create_default(self):
|
|
|
+ zone_name = self.provider.zone_name
|
|
|
|
|
|
# # Look for provider default subnet in current zone
|
|
|
# if zone_name:
|
|
|
@@ -1077,8 +1074,6 @@ class AWSSubnetService(BaseSubnetService):
|
|
|
if snl:
|
|
|
# pylint:disable=protected-access
|
|
|
snl.sort(key=lambda sn: sn._subnet.availability_zone)
|
|
|
- if not zone_name:
|
|
|
- return snl[0]
|
|
|
for subnet in snl:
|
|
|
if subnet.zone.name == zone_name:
|
|
|
return subnet
|
|
|
@@ -1133,15 +1128,15 @@ class AWSSubnetService(BaseSubnetService):
|
|
|
subnets = list(ip_net.subnets(prefixlen_diff=prefixlen_diff))
|
|
|
|
|
|
for i, z in reversed(list(enumerate(region.zones))):
|
|
|
- sn_label = "{0}-{1}".format(AWSSubnet.CB_DEFAULT_SUBNET_LABEL,
|
|
|
- z.id[-1])
|
|
|
- log.info("Creating a default CloudBridge subnet %s: %s" %
|
|
|
- (sn_label, str(subnets[i])))
|
|
|
- sn = self.create(sn_label, default_net, str(subnets[i]), z)
|
|
|
- # Create a route table entry between the SN and the inet gateway
|
|
|
- # See note above about why this is commented
|
|
|
- # default_router.attach_subnet(sn)
|
|
|
- if zone and zone_name == z.name:
|
|
|
+ if zone_name == z.name:
|
|
|
+ sn_label = "{0}-{1}".format(AWSSubnet.CB_DEFAULT_SUBNET_LABEL,
|
|
|
+ z.id[-1])
|
|
|
+ log.info("Creating a default CloudBridge subnet %s: %s" %
|
|
|
+ (sn_label, str(subnets[i])))
|
|
|
+ sn = self.create(sn_label, default_net, str(subnets[i]))
|
|
|
+ # Create a route table entry between the SN and the inet
|
|
|
+ # gateway. See note above about why this is commented
|
|
|
+ # default_router.attach_subnet(sn)
|
|
|
default_sn = sn
|
|
|
# No specific zone was supplied; return the last created subnet
|
|
|
# The list was originally reversed to have the last subnet be in zone a
|