|
@@ -47,7 +47,6 @@ from cloudbridge.cloud.providers.openstack import helpers as oshelpers
|
|
|
|
|
|
|
|
from .resources import OpenStackBucket
|
|
from .resources import OpenStackBucket
|
|
|
from .resources import OpenStackInstance
|
|
from .resources import OpenStackInstance
|
|
|
-from .resources import OpenStackInternetGateway
|
|
|
|
|
from .resources import OpenStackKeyPair
|
|
from .resources import OpenStackKeyPair
|
|
|
from .resources import OpenStackMachineImage
|
|
from .resources import OpenStackMachineImage
|
|
|
from .resources import OpenStackNetwork
|
|
from .resources import OpenStackNetwork
|
|
@@ -170,7 +169,7 @@ class OpenStackKeyPairService(BaseKeyPairService):
|
|
|
|
|
|
|
|
def create(self, name, public_key_material=None):
|
|
def create(self, name, public_key_material=None):
|
|
|
log.debug("Creating a new key pair with the name: %s", name)
|
|
log.debug("Creating a new key pair with the name: %s", name)
|
|
|
- OpenStackKeyPair.assert_valid_resource_name(name)
|
|
|
|
|
|
|
+ OpenStackKeyPair.assert_valid_resource_label(name)
|
|
|
|
|
|
|
|
existing_kp = self.find(name=name)
|
|
existing_kp = self.find(name=name)
|
|
|
if existing_kp:
|
|
if existing_kp:
|
|
@@ -211,27 +210,27 @@ class OpenStackVMFirewallService(BaseVMFirewallService):
|
|
|
return ClientPagedResultList(self.provider, firewalls,
|
|
return ClientPagedResultList(self.provider, firewalls,
|
|
|
limit=limit, marker=marker)
|
|
limit=limit, marker=marker)
|
|
|
|
|
|
|
|
- def create(self, name, description, network_id):
|
|
|
|
|
- OpenStackVMFirewall.assert_valid_resource_name(name)
|
|
|
|
|
|
|
+ def create(self, description, network_id, label=None):
|
|
|
|
|
+ OpenStackVMFirewall.assert_valid_resource_label(label)
|
|
|
log.debug("Creating OpenStack VM Firewall with the params: "
|
|
log.debug("Creating OpenStack VM Firewall with the params: "
|
|
|
- "[name: %s network id: %s description: %s]", name,
|
|
|
|
|
|
|
+ "[label: %s network id: %s description: %s]", label,
|
|
|
network_id, description)
|
|
network_id, description)
|
|
|
sg = self.provider.os_conn.network.create_security_group(
|
|
sg = self.provider.os_conn.network.create_security_group(
|
|
|
- name=name, description=description)
|
|
|
|
|
|
|
+ name=label, description=description)
|
|
|
if sg:
|
|
if sg:
|
|
|
return OpenStackVMFirewall(self.provider, sg)
|
|
return OpenStackVMFirewall(self.provider, sg)
|
|
|
return None
|
|
return None
|
|
|
|
|
|
|
|
def find(self, **kwargs):
|
|
def find(self, **kwargs):
|
|
|
- name = kwargs.pop('name', None)
|
|
|
|
|
|
|
+ label = kwargs.pop('label', None)
|
|
|
|
|
|
|
|
# All kwargs should have been popped at this time.
|
|
# All kwargs should have been popped at this time.
|
|
|
if len(kwargs) > 0:
|
|
if len(kwargs) > 0:
|
|
|
raise TypeError("Unrecognised parameters for search: %s."
|
|
raise TypeError("Unrecognised parameters for search: %s."
|
|
|
- " Supported attributes: %s" % (kwargs, 'name'))
|
|
|
|
|
|
|
+ " Supported attributes: %s" % (kwargs, 'label'))
|
|
|
|
|
|
|
|
- log.debug("Searching for %s", name)
|
|
|
|
|
- sgs = [self.provider.os_conn.network.find_security_group(name)]
|
|
|
|
|
|
|
+ log.debug("Searching for %s", label)
|
|
|
|
|
+ sgs = [self.provider.os_conn.network.find_security_group(label)]
|
|
|
results = [OpenStackVMFirewall(self.provider, sg)
|
|
results = [OpenStackVMFirewall(self.provider, sg)
|
|
|
for sg in sgs if sg]
|
|
for sg in sgs if sg]
|
|
|
return ClientPagedResultList(self.provider, results)
|
|
return ClientPagedResultList(self.provider, results)
|
|
@@ -263,19 +262,14 @@ class OpenStackImageService(BaseImageService):
|
|
|
|
|
|
|
|
def find(self, **kwargs):
|
|
def find(self, **kwargs):
|
|
|
name = kwargs.pop('name', None)
|
|
name = kwargs.pop('name', None)
|
|
|
-
|
|
|
|
|
- # All kwargs should have been popped at this time.
|
|
|
|
|
- if len(kwargs) > 0:
|
|
|
|
|
- raise TypeError("Unrecognised parameters for search: %s."
|
|
|
|
|
- " Supported attributes: %s" % (kwargs, 'name'))
|
|
|
|
|
-
|
|
|
|
|
- log.debug("Searching for the OpenStack image with the name: %s", name)
|
|
|
|
|
- regex = fnmatch.translate(name)
|
|
|
|
|
|
|
+ label = kwargs.pop('label', None)
|
|
|
|
|
+ log.debug("Searching for OpenStack image with label: %s", label)
|
|
|
|
|
+ regex = fnmatch.translate(label)
|
|
|
cb_images = [
|
|
cb_images = [
|
|
|
img
|
|
img
|
|
|
for img in self
|
|
for img in self
|
|
|
- if img.name and re.search(regex, img.name)]
|
|
|
|
|
-
|
|
|
|
|
|
|
+ if ((img.label and re.search(regex, img.label))
|
|
|
|
|
+ or img.name == name)]
|
|
|
return oshelpers.to_server_paged_list(self.provider, cb_images)
|
|
return oshelpers.to_server_paged_list(self.provider, cb_images)
|
|
|
|
|
|
|
|
def list(self, filter_by_owner=True, limit=None, marker=None):
|
|
def list(self, filter_by_owner=True, limit=None, marker=None):
|
|
@@ -352,15 +346,15 @@ class OpenStackVolumeService(BaseVolumeService):
|
|
|
return None
|
|
return None
|
|
|
|
|
|
|
|
def find(self, **kwargs):
|
|
def find(self, **kwargs):
|
|
|
- name = kwargs.pop('name', None)
|
|
|
|
|
|
|
+ label = kwargs.pop('label', None)
|
|
|
|
|
|
|
|
# All kwargs should have been popped at this time.
|
|
# All kwargs should have been popped at this time.
|
|
|
if len(kwargs) > 0:
|
|
if len(kwargs) > 0:
|
|
|
raise TypeError("Unrecognised parameters for search: %s."
|
|
raise TypeError("Unrecognised parameters for search: %s."
|
|
|
- " Supported attributes: %s" % (kwargs, 'name'))
|
|
|
|
|
|
|
+ " Supported attributes: %s" % (kwargs, 'label'))
|
|
|
|
|
|
|
|
- log.debug("Searching for an OpenStack Volume with the name %s", name)
|
|
|
|
|
- search_opts = {'name': name}
|
|
|
|
|
|
|
+ log.debug("Searching for an OpenStack Volume with the label %s", label)
|
|
|
|
|
+ search_opts = {'name': label}
|
|
|
cb_vols = [
|
|
cb_vols = [
|
|
|
OpenStackVolume(self.provider, vol)
|
|
OpenStackVolume(self.provider, vol)
|
|
|
for vol in self.provider.cinder.volumes.list(
|
|
for vol in self.provider.cinder.volumes.list(
|
|
@@ -382,21 +376,21 @@ class OpenStackVolumeService(BaseVolumeService):
|
|
|
|
|
|
|
|
return oshelpers.to_server_paged_list(self.provider, cb_vols, limit)
|
|
return oshelpers.to_server_paged_list(self.provider, cb_vols, limit)
|
|
|
|
|
|
|
|
- def create(self, name, size, zone, snapshot=None, description=None):
|
|
|
|
|
|
|
+ def create(self, size, zone, label=None, snapshot=None, description=None):
|
|
|
"""
|
|
"""
|
|
|
Creates a new volume.
|
|
Creates a new volume.
|
|
|
"""
|
|
"""
|
|
|
log.debug("Creating a new volume with the params: "
|
|
log.debug("Creating a new volume with the params: "
|
|
|
- "[name: %s size: %s zone: %s snapshot: %s description: %s]",
|
|
|
|
|
- name, size, zone, snapshot, description)
|
|
|
|
|
- OpenStackVolume.assert_valid_resource_name(name)
|
|
|
|
|
|
|
+ "[label: %s size: %s zone: %s snapshot: %s description: %s]",
|
|
|
|
|
+ label, size, zone, snapshot, description)
|
|
|
|
|
+ OpenStackVolume.assert_valid_resource_label(label)
|
|
|
|
|
|
|
|
zone_id = zone.id if isinstance(zone, PlacementZone) else zone
|
|
zone_id = zone.id if isinstance(zone, PlacementZone) else zone
|
|
|
snapshot_id = snapshot.id if isinstance(
|
|
snapshot_id = snapshot.id if isinstance(
|
|
|
snapshot, OpenStackSnapshot) and snapshot else snapshot
|
|
snapshot, OpenStackSnapshot) and snapshot else snapshot
|
|
|
|
|
|
|
|
os_vol = self.provider.cinder.volumes.create(
|
|
os_vol = self.provider.cinder.volumes.create(
|
|
|
- size, name=name, description=description,
|
|
|
|
|
|
|
+ size, name=label, description=description,
|
|
|
availability_zone=zone_id, snapshot_id=snapshot_id)
|
|
availability_zone=zone_id, snapshot_id=snapshot_id)
|
|
|
return OpenStackVolume(self.provider, os_vol)
|
|
return OpenStackVolume(self.provider, os_vol)
|
|
|
|
|
|
|
@@ -420,22 +414,21 @@ class OpenStackSnapshotService(BaseSnapshotService):
|
|
|
return None
|
|
return None
|
|
|
|
|
|
|
|
def find(self, **kwargs):
|
|
def find(self, **kwargs):
|
|
|
- name = kwargs.pop('name', None)
|
|
|
|
|
|
|
+ label = kwargs.pop('label', None)
|
|
|
|
|
|
|
|
# All kwargs should have been popped at this time.
|
|
# All kwargs should have been popped at this time.
|
|
|
if len(kwargs) > 0:
|
|
if len(kwargs) > 0:
|
|
|
raise TypeError("Unrecognised parameters for search: %s."
|
|
raise TypeError("Unrecognised parameters for search: %s."
|
|
|
- " Supported attributes: %s" % (kwargs, 'name'))
|
|
|
|
|
|
|
+ " Supported attributes: %s" % (kwargs, 'label'))
|
|
|
|
|
|
|
|
- search_opts = {'name': name, # TODO: Cinder is ignoring name
|
|
|
|
|
|
|
+ search_opts = {'name': label, # TODO: Cinder is ignoring name
|
|
|
'limit': oshelpers.os_result_limit(self.provider),
|
|
'limit': oshelpers.os_result_limit(self.provider),
|
|
|
'marker': None}
|
|
'marker': None}
|
|
|
log.debug("Searching for an OpenStack volume with the following "
|
|
log.debug("Searching for an OpenStack volume with the following "
|
|
|
"params: %s", search_opts)
|
|
"params: %s", search_opts)
|
|
|
cb_snaps = [
|
|
cb_snaps = [
|
|
|
OpenStackSnapshot(self.provider, snap) for
|
|
OpenStackSnapshot(self.provider, snap) for
|
|
|
- snap in self.provider.cinder.volume_snapshots.list(search_opts)
|
|
|
|
|
- if snap.name == name]
|
|
|
|
|
|
|
+ snap in self.provider.cinder.volume_snapshots.list(search_opts)]
|
|
|
|
|
|
|
|
return oshelpers.to_server_paged_list(self.provider, cb_snaps)
|
|
return oshelpers.to_server_paged_list(self.provider, cb_snaps)
|
|
|
|
|
|
|
@@ -451,18 +444,18 @@ class OpenStackSnapshotService(BaseSnapshotService):
|
|
|
'marker': marker})]
|
|
'marker': marker})]
|
|
|
return oshelpers.to_server_paged_list(self.provider, cb_snaps, limit)
|
|
return oshelpers.to_server_paged_list(self.provider, cb_snaps, limit)
|
|
|
|
|
|
|
|
- def create(self, name, volume, description=None):
|
|
|
|
|
|
|
+ def create(self, volume, label=None, description=None):
|
|
|
"""
|
|
"""
|
|
|
Creates a new snapshot of a given volume.
|
|
Creates a new snapshot of a given volume.
|
|
|
"""
|
|
"""
|
|
|
- log.debug("Creating a new snapshot of the %s volume.", name)
|
|
|
|
|
- OpenStackSnapshot.assert_valid_resource_name(name)
|
|
|
|
|
|
|
+ log.debug("Creating a new snapshot of the %s volume.", label)
|
|
|
|
|
+ OpenStackSnapshot.assert_valid_resource_label(label)
|
|
|
|
|
|
|
|
volume_id = (volume.id if isinstance(volume, OpenStackVolume)
|
|
volume_id = (volume.id if isinstance(volume, OpenStackVolume)
|
|
|
else volume)
|
|
else volume)
|
|
|
|
|
|
|
|
os_snap = self.provider.cinder.volume_snapshots.create(
|
|
os_snap = self.provider.cinder.volume_snapshots.create(
|
|
|
- volume_id, name=name,
|
|
|
|
|
|
|
+ volume_id, name=label,
|
|
|
description=description)
|
|
description=description)
|
|
|
return OpenStackSnapshot(self.provider, os_snap)
|
|
return OpenStackSnapshot(self.provider, os_snap)
|
|
|
|
|
|
|
@@ -521,7 +514,7 @@ class OpenStackBucketService(BaseBucketService):
|
|
|
Create a new bucket.
|
|
Create a new bucket.
|
|
|
"""
|
|
"""
|
|
|
log.debug("Creating a new OpenStack Bucket with the name: %s", name)
|
|
log.debug("Creating a new OpenStack Bucket with the name: %s", name)
|
|
|
- OpenStackBucket.assert_valid_resource_name(name)
|
|
|
|
|
|
|
+ OpenStackBucket.assert_valid_resource_label(name)
|
|
|
|
|
|
|
|
self.provider.swift.put_container(name)
|
|
self.provider.swift.put_container(name)
|
|
|
return self.get(name)
|
|
return self.get(name)
|
|
@@ -596,12 +589,12 @@ class OpenStackInstanceService(BaseInstanceService):
|
|
|
def __init__(self, provider):
|
|
def __init__(self, provider):
|
|
|
super(OpenStackInstanceService, self).__init__(provider)
|
|
super(OpenStackInstanceService, self).__init__(provider)
|
|
|
|
|
|
|
|
- def create(self, name, image, vm_type, subnet, zone,
|
|
|
|
|
|
|
+ def create(self, image, vm_type, subnet, zone, label=None,
|
|
|
key_pair=None, vm_firewalls=None, user_data=None,
|
|
key_pair=None, vm_firewalls=None, user_data=None,
|
|
|
launch_config=None,
|
|
launch_config=None,
|
|
|
**kwargs):
|
|
**kwargs):
|
|
|
"""Create a new virtual machine instance."""
|
|
"""Create a new virtual machine instance."""
|
|
|
- OpenStackInstance.assert_valid_resource_name(name)
|
|
|
|
|
|
|
+ OpenStackInstance.assert_valid_resource_label(label)
|
|
|
|
|
|
|
|
image_id = image.id if isinstance(image, MachineImage) else image
|
|
image_id = image.id if isinstance(image, MachineImage) else image
|
|
|
vm_size = vm_type.id if \
|
|
vm_size = vm_type.id if \
|
|
@@ -632,7 +625,7 @@ class OpenStackInstanceService(BaseInstanceService):
|
|
|
nics = None
|
|
nics = None
|
|
|
if subnet_id:
|
|
if subnet_id:
|
|
|
log.debug("Creating network port for %s in subnet: %s",
|
|
log.debug("Creating network port for %s in subnet: %s",
|
|
|
- name, subnet_id)
|
|
|
|
|
|
|
+ label, subnet_id)
|
|
|
sg_list = []
|
|
sg_list = []
|
|
|
if vm_firewalls:
|
|
if vm_firewalls:
|
|
|
if isinstance(vm_firewalls, list) and \
|
|
if isinstance(vm_firewalls, list) and \
|
|
@@ -640,13 +633,13 @@ class OpenStackInstanceService(BaseInstanceService):
|
|
|
sg_list = vm_firewalls
|
|
sg_list = vm_firewalls
|
|
|
else:
|
|
else:
|
|
|
sg_list = (self.provider.security.vm_firewalls
|
|
sg_list = (self.provider.security.vm_firewalls
|
|
|
- .find(name=sg) for sg in vm_firewalls)
|
|
|
|
|
|
|
+ .find(label=sg) for sg in vm_firewalls)
|
|
|
sg_list = (sg[0] for sg in sg_list if sg)
|
|
sg_list = (sg[0] for sg in sg_list if sg)
|
|
|
sg_id_list = [sg.id for sg in sg_list]
|
|
sg_id_list = [sg.id for sg in sg_list]
|
|
|
port_def = {
|
|
port_def = {
|
|
|
"port": {
|
|
"port": {
|
|
|
"admin_state_up": True,
|
|
"admin_state_up": True,
|
|
|
- "name": name,
|
|
|
|
|
|
|
+ "name": label,
|
|
|
"network_id": net_id,
|
|
"network_id": net_id,
|
|
|
"fixed_ips": [{"subnet_id": subnet_id}],
|
|
"fixed_ips": [{"subnet_id": subnet_id}],
|
|
|
"security_groups": sg_id_list
|
|
"security_groups": sg_id_list
|
|
@@ -658,13 +651,13 @@ class OpenStackInstanceService(BaseInstanceService):
|
|
|
if vm_firewalls:
|
|
if vm_firewalls:
|
|
|
if isinstance(vm_firewalls, list) and \
|
|
if isinstance(vm_firewalls, list) and \
|
|
|
isinstance(vm_firewalls[0], VMFirewall):
|
|
isinstance(vm_firewalls[0], VMFirewall):
|
|
|
- sg_name_list = [sg.name for sg in vm_firewalls]
|
|
|
|
|
|
|
+ sg_name_list = [sg.label for sg in vm_firewalls]
|
|
|
else:
|
|
else:
|
|
|
sg_name_list = vm_firewalls
|
|
sg_name_list = vm_firewalls
|
|
|
|
|
|
|
|
log.debug("Launching in subnet %s", subnet_id)
|
|
log.debug("Launching in subnet %s", subnet_id)
|
|
|
os_instance = self.provider.nova.servers.create(
|
|
os_instance = self.provider.nova.servers.create(
|
|
|
- name,
|
|
|
|
|
|
|
+ label,
|
|
|
None if self._has_root_device(launch_config) else image_id,
|
|
None if self._has_root_device(launch_config) else image_id,
|
|
|
vm_size,
|
|
vm_size,
|
|
|
min_count=1,
|
|
min_count=1,
|
|
@@ -731,14 +724,14 @@ class OpenStackInstanceService(BaseInstanceService):
|
|
|
return BaseLaunchConfig(self.provider)
|
|
return BaseLaunchConfig(self.provider)
|
|
|
|
|
|
|
|
def find(self, **kwargs):
|
|
def find(self, **kwargs):
|
|
|
- name = kwargs.pop('name', None)
|
|
|
|
|
|
|
+ label = kwargs.pop('label', None)
|
|
|
|
|
|
|
|
# All kwargs should have been popped at this time.
|
|
# All kwargs should have been popped at this time.
|
|
|
if len(kwargs) > 0:
|
|
if len(kwargs) > 0:
|
|
|
raise TypeError("Unrecognised parameters for search: %s."
|
|
raise TypeError("Unrecognised parameters for search: %s."
|
|
|
- " Supported attributes: %s" % (kwargs, 'name'))
|
|
|
|
|
|
|
+ " Supported attributes: %s" % (kwargs, 'label'))
|
|
|
|
|
|
|
|
- search_opts = {'name': name}
|
|
|
|
|
|
|
+ search_opts = {'name': label}
|
|
|
cb_insts = [
|
|
cb_insts = [
|
|
|
OpenStackInstance(self.provider, inst)
|
|
OpenStackInstance(self.provider, inst)
|
|
|
for inst in self.provider.nova.servers.list(
|
|
for inst in self.provider.nova.servers.list(
|
|
@@ -809,26 +802,25 @@ class OpenStackNetworkService(BaseNetworkService):
|
|
|
limit=limit, marker=marker)
|
|
limit=limit, marker=marker)
|
|
|
|
|
|
|
|
def find(self, **kwargs):
|
|
def find(self, **kwargs):
|
|
|
- name = kwargs.pop('name', None)
|
|
|
|
|
|
|
+ label = kwargs.pop('label', None)
|
|
|
|
|
|
|
|
# All kwargs should have been popped at this time.
|
|
# All kwargs should have been popped at this time.
|
|
|
if len(kwargs) > 0:
|
|
if len(kwargs) > 0:
|
|
|
raise TypeError("Unrecognised parameters for search: %s."
|
|
raise TypeError("Unrecognised parameters for search: %s."
|
|
|
- " Supported attributes: %s" % (kwargs, 'name'))
|
|
|
|
|
|
|
+ " Supported attributes: %s" % (kwargs, 'label'))
|
|
|
|
|
|
|
|
- log.debug("Searching for the OpenStack Network with the "
|
|
|
|
|
- "name: %s", name)
|
|
|
|
|
|
|
+ log.debug("Searching for OpenStack Network with label: %s", label)
|
|
|
networks = [OpenStackNetwork(self.provider, network)
|
|
networks = [OpenStackNetwork(self.provider, network)
|
|
|
for network in self.provider.neutron.list_networks(
|
|
for network in self.provider.neutron.list_networks(
|
|
|
- name=name)
|
|
|
|
|
|
|
+ name=label)
|
|
|
.get('networks') if network]
|
|
.get('networks') if network]
|
|
|
return ClientPagedResultList(self.provider, networks)
|
|
return ClientPagedResultList(self.provider, networks)
|
|
|
|
|
|
|
|
- def create(self, name, cidr_block):
|
|
|
|
|
|
|
+ def create(self, cidr_block, label=None):
|
|
|
log.debug("Creating OpenStack Network with the params: "
|
|
log.debug("Creating OpenStack Network with the params: "
|
|
|
- "[name: %s Cinder Block: %s]", name, cidr_block)
|
|
|
|
|
- OpenStackNetwork.assert_valid_resource_name(name)
|
|
|
|
|
-
|
|
|
|
|
|
|
+ "[label: %s Cinder Block: %s]", label, cidr_block)
|
|
|
|
|
+ OpenStackNetwork.assert_valid_resource_label(label)
|
|
|
|
|
+ name = OpenStackNetwork._generate_name_from_label(label)
|
|
|
net_info = {'name': name}
|
|
net_info = {'name': name}
|
|
|
network = self.provider.neutron.create_network({'network': net_info})
|
|
network = self.provider.neutron.create_network({'network': net_info})
|
|
|
return OpenStackNetwork(self.provider, network.get('network'))
|
|
return OpenStackNetwork(self.provider, network.get('network'))
|
|
@@ -856,16 +848,16 @@ class OpenStackSubnetService(BaseSubnetService):
|
|
|
return ClientPagedResultList(self.provider, subnets,
|
|
return ClientPagedResultList(self.provider, subnets,
|
|
|
limit=limit, marker=marker)
|
|
limit=limit, marker=marker)
|
|
|
|
|
|
|
|
- def create(self, name, network, cidr_block, zone):
|
|
|
|
|
|
|
+ def create(self, network, cidr_block, zone, label=None):
|
|
|
"""zone param is ignored."""
|
|
"""zone param is ignored."""
|
|
|
log.debug("Creating OpenStack Subnet with the params: "
|
|
log.debug("Creating OpenStack Subnet with the params: "
|
|
|
- "[Name: %s Network: %s Cinder Block: %s Zone: -ignored-]",
|
|
|
|
|
- name, network, cidr_block)
|
|
|
|
|
- OpenStackSubnet.assert_valid_resource_name(name)
|
|
|
|
|
|
|
+ "[Label: %s Network: %s Cinder Block: %s Zone: -ignored-]",
|
|
|
|
|
+ label, network, cidr_block)
|
|
|
|
|
+ OpenStackSubnet.assert_valid_resource_label(label)
|
|
|
|
|
|
|
|
network_id = (network.id if isinstance(network, OpenStackNetwork)
|
|
network_id = (network.id if isinstance(network, OpenStackNetwork)
|
|
|
else network)
|
|
else network)
|
|
|
- subnet_info = {'name': name, 'network_id': network_id,
|
|
|
|
|
|
|
+ subnet_info = {'name': label, 'network_id': network_id,
|
|
|
'cidr': cidr_block, 'ip_version': 4}
|
|
'cidr': cidr_block, 'ip_version': 4}
|
|
|
subnet = (self.provider.neutron.create_subnet({'subnet': subnet_info})
|
|
subnet = (self.provider.neutron.create_subnet({'subnet': subnet_info})
|
|
|
.get('subnet'))
|
|
.get('subnet'))
|
|
@@ -876,20 +868,20 @@ class OpenStackSubnetService(BaseSubnetService):
|
|
|
Subnet zone is not supported by OpenStack and is thus ignored.
|
|
Subnet zone is not supported by OpenStack and is thus ignored.
|
|
|
"""
|
|
"""
|
|
|
try:
|
|
try:
|
|
|
- sn = self.find(name=OpenStackSubnet.CB_DEFAULT_SUBNET_NAME)
|
|
|
|
|
|
|
+ sn = self.find(label=OpenStackSubnet.CB_DEFAULT_SUBNET_LABEL)
|
|
|
if sn:
|
|
if sn:
|
|
|
return sn[0]
|
|
return sn[0]
|
|
|
# No default; create one
|
|
# No default; create one
|
|
|
net = self.provider.networking.networks.create(
|
|
net = self.provider.networking.networks.create(
|
|
|
- name=OpenStackNetwork.CB_DEFAULT_NETWORK_NAME,
|
|
|
|
|
|
|
+ label=OpenStackNetwork.CB_DEFAULT_NETWORK_LABEL,
|
|
|
cidr_block='10.0.0.0/16')
|
|
cidr_block='10.0.0.0/16')
|
|
|
- sn = net.create_subnet(name=OpenStackSubnet.CB_DEFAULT_SUBNET_NAME,
|
|
|
|
|
- cidr_block='10.0.0.0/24')
|
|
|
|
|
|
|
+ sn = net.create_subnet(
|
|
|
|
|
+ label=OpenStackSubnet.CB_DEFAULT_SUBNET_LABEL,
|
|
|
|
|
+ cidr_block='10.0.0.0/24')
|
|
|
router = self.provider.networking.routers.create(
|
|
router = self.provider.networking.routers.create(
|
|
|
- network=net, name=OpenStackRouter.CB_DEFAULT_ROUTER_NAME)
|
|
|
|
|
|
|
+ network=net, label=OpenStackRouter.CB_DEFAULT_ROUTER_LABEL)
|
|
|
router.attach_subnet(sn)
|
|
router.attach_subnet(sn)
|
|
|
- gteway = net.gateways.get_or_create_inet_gateway(
|
|
|
|
|
- OpenStackInternetGateway.CB_DEFAULT_INET_GATEWAY_NAME)
|
|
|
|
|
|
|
+ gteway = net.gateways.get_or_create_inet_gateway()
|
|
|
router.attach_gateway(gteway)
|
|
router.attach_gateway(gteway)
|
|
|
return sn
|
|
return sn
|
|
|
except NeutronClientException:
|
|
except NeutronClientException:
|
|
@@ -924,11 +916,11 @@ class OpenStackRouterService(BaseRouterService):
|
|
|
|
|
|
|
|
def find(self, **kwargs):
|
|
def find(self, **kwargs):
|
|
|
obj_list = self
|
|
obj_list = self
|
|
|
- filters = ['name']
|
|
|
|
|
|
|
+ filters = ['label']
|
|
|
matches = cb_helpers.generic_find(filters, kwargs, obj_list)
|
|
matches = cb_helpers.generic_find(filters, kwargs, obj_list)
|
|
|
return ClientPagedResultList(self._provider, list(matches))
|
|
return ClientPagedResultList(self._provider, list(matches))
|
|
|
|
|
|
|
|
- def create(self, name, network):
|
|
|
|
|
|
|
+ def create(self, network, label=None):
|
|
|
"""
|
|
"""
|
|
|
``network`` is not used by OpenStack.
|
|
``network`` is not used by OpenStack.
|
|
|
|
|
|
|
@@ -936,9 +928,9 @@ class OpenStackRouterService(BaseRouterService):
|
|
|
https://developer.openstack.org/api-ref/networking/v2/
|
|
https://developer.openstack.org/api-ref/networking/v2/
|
|
|
?expanded=delete-router-detail,create-router-detail#create-router
|
|
?expanded=delete-router-detail,create-router-detail#create-router
|
|
|
"""
|
|
"""
|
|
|
- log.debug("Creating OpenStack Router with the name: %s", name)
|
|
|
|
|
- OpenStackRouter.assert_valid_resource_name(name)
|
|
|
|
|
|
|
+ log.debug("Creating OpenStack Router with the label: %s", label)
|
|
|
|
|
+ OpenStackRouter.assert_valid_resource_label(label)
|
|
|
|
|
|
|
|
- body = {'router': {'name': name}} if name else None
|
|
|
|
|
|
|
+ body = {'router': {'name': label}} if label else None
|
|
|
router = self.provider.neutron.create_router(body)
|
|
router = self.provider.neutron.create_router(body)
|
|
|
return OpenStackRouter(self.provider, router.get('router'))
|
|
return OpenStackRouter(self.provider, router.get('router'))
|