self.floating_ip_name = guid + 'fip1'
# Initialize for tearDown()
- self.image_creator = None
+ self.image_creators = list()
self.network_creator = None
self.flavor_creator = None
self.inst_creator = None
self.port_settings = PortSettings(
name=self.port_1_name, network_name=self.priv_net_config.network_settings.name)
+ # Create Image
+ # Set the default image settings, then set any custom parameters sent from the app
self.os_image_settings = openstack_tests.cirros_url_image(name=guid + '-image')
+ if self.image_metadata:
+ if 'disk_url' in self.image_metadata and self.image_metadata['disk_url']:
+ self.os_image_settings.url = self.image_metadata['disk_url']
+ if 'extra_properties' in self.image_metadata and self.image_metadata['extra_properties']:
+ self.os_image_settings.extra_properties = self.image_metadata['extra_properties']
+
try:
- # Create Image
- self.image_creator = OpenStackImage(self.os_creds, self.os_image_settings)
- self.image_creator.create()
+ # If this is a 3-part image create the kernel and ramdisk images first
+ if self.image_metadata:
+ if 'kernel_url' in self.image_metadata and self.image_metadata['kernel_url']:
+ kernel_image_settings = openstack_tests.cirros_url_image(
+ name=self.os_image_settings.name+'_kernel', url=self.image_metadata['kernel_url'])
+ self.image_creators.append(OpenStackImage(self.os_creds, kernel_image_settings))
+ kernel_image = self.image_creators[-1].create()
+ self.os_image_settings.extra_properties['kernel_id'] = kernel_image.id
+
+ if 'ramdisk_url' in self.image_metadata and self.image_metadata['ramdisk_url']:
+ ramdisk_image_settings = openstack_tests.cirros_url_image(
+ name=self.os_image_settings.name+'_ramdisk', url=self.image_metadata['ramdisk_url'])
+ self.image_creators.append(OpenStackImage(self.os_creds, ramdisk_image_settings))
+ ramdisk_image = self.image_creators[-1].create()
+ self.os_image_settings.extra_properties['ramdisk_id'] = ramdisk_image.id
+
+ self.image_creators.append(OpenStackImage(self.os_creds, self.os_image_settings))
+ self.image_creators[-1].create()
# Create Network
self.network_creator = OpenStackNetwork(self.os_creds, self.priv_net_config.network_settings)
# Create Flavor
self.flavor_creator = OpenStackFlavor(
self.admin_os_creds,
- FlavorSettings(name=guid + '-flavor-name', ram=1024, disk=10, vcpus=1, metadata=self.flavor_metadata))
+ FlavorSettings(name=guid + '-flavor-name', ram=128, disk=10, vcpus=1, metadata=self.flavor_metadata))
self.flavor_creator.create()
except Exception as e:
self.tearDown()
if os.path.isfile(self.keypair_priv_filepath):
os.remove(self.keypair_priv_filepath)
- if self.flavor_creator:
- try:
- self.flavor_creator.clean()
- except Exception as e:
- logger.error('Unexpected exception cleaning flavor with message - ' + e.message)
-
if self.network_creator:
try:
self.network_creator.clean()
except Exception as e:
logger.error('Unexpected exception cleaning network with message - ' + e.message)
- if self.image_creator:
+ if self.flavor_creator:
try:
- self.image_creator.clean()
+ self.flavor_creator.clean()
+ except Exception as e:
+ logger.error('Unexpected exception cleaning flavor with message - ' + e.message)
+
+ if self.image_creators:
+ try:
+ while self.image_creators:
+ self.image_creators[-1].clean()
+ self.image_creators.pop()
except Exception as e:
logger.error('Unexpected exception cleaning image with message - ' + e.message)
instance_settings = VmInstanceSettings(
name=self.vm_inst_name, flavor=self.flavor_creator.flavor_settings.name, port_settings=[self.port_settings])
- self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings, self.image_creator.image_settings)
+ self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings,
+ self.image_creators[-1].image_settings)
vm = self.inst_creator.create()
ip = self.inst_creator.get_port_ip(self.port_settings.name)
match_value = 'Lease of.*obtained'
logger.info("Looking for expression %s in the console log" % match_value)
+ full_log = ''
while timeout > time.time() - start_time:
output = vm.get_console_output()
+ full_log = full_log + output
if re.search(match_value, output):
logger.info('DHCP lease obtained logged in console')
if ip in output:
logger.error('With incorrect IP address')
break
+ if not found:
+ logger.error('Full console output -\n' + full_log)
+ else:
+ logger.debug('Full console output -\n' + full_log)
+
self.assertTrue(found)
router_name=guid + '-pub-router', external_net=self.ext_net_name)
# Initialize for tearDown()
- self.image_creator = None
+ self.image_creators = list()
self.flavor_creator = None
- self.net_creator = None
+ self.network_creator = None
self.inst_creator = None
try:
# Create Image
- self.image_creator = OpenStackImage(self.os_creds, self.os_image_settings)
- self.image_creator.create()
+ # Set any custom parameters sent from the app
+ if self.image_metadata:
+ if 'disk_url' in self.image_metadata and self.image_metadata['disk_url']:
+ self.os_image_settings.url = self.image_metadata['disk_url']
+ if 'extra_properties' in self.image_metadata and self.image_metadata['extra_properties']:
+ self.os_image_settings.extra_properties = self.image_metadata['extra_properties']
+
+ # If this is a 3-part image create the kernel and ramdisk images first
+ if self.image_metadata:
+ if 'kernel_url' in self.image_metadata and self.image_metadata['kernel_url']:
+ kernel_image_settings = openstack_tests.cirros_url_image(
+ name=self.os_image_settings.name+'_kernel', url=self.image_metadata['kernel_url'])
+ self.image_creators.append(OpenStackImage(self.os_creds, kernel_image_settings))
+ kernel_image = self.image_creators[-1].create()
+ self.os_image_settings.extra_properties['kernel_id'] = kernel_image.id
+
+ if 'ramdisk_url' in self.image_metadata and self.image_metadata['ramdisk_url']:
+ ramdisk_image_settings = openstack_tests.cirros_url_image(
+ name=self.os_image_settings.name+'_ramdisk', url=self.image_metadata['ramdisk_url'])
+ self.image_creators.append(OpenStackImage(self.os_creds, ramdisk_image_settings))
+ ramdisk_image = self.image_creators[-1].create()
+ self.os_image_settings.extra_properties['ramdisk_id'] = ramdisk_image.id
+
+ self.image_creators.append(OpenStackImage(self.os_creds, self.os_image_settings))
+ self.image_creators[-1].create()
# Create Flavor
self.flavor_creator = OpenStackFlavor(
self.admin_os_creds,
- FlavorSettings(name=guid + '-flavor-name', ram=2048, disk=10, vcpus=2, metadata=self.flavor_metadata))
+ FlavorSettings(name=guid + '-flavor-name', ram=128, disk=10, vcpus=2, metadata=self.flavor_metadata))
self.flavor_creator.create()
# Create Network
except Exception as e:
logger.error('Unexpected exception cleaning flavor with message - ' + e.message)
- if self.net_creator:
+ if self.network_creator:
try:
- self.net_creator.clean()
+ self.network_creator.clean()
except Exception as e:
logger.error('Unexpected exception cleaning network with message - ' + e.message)
- if self.image_creator:
+ if self.image_creators:
try:
- self.image_creator.clean()
+ while self.image_creators:
+ self.image_creators[-1].clean()
+ self.image_creators.pop()
except Exception as e:
logger.error('Unexpected exception cleaning image with message - ' + e.message)
port_settings=[self.port_settings])
self.inst_creator = OpenStackVmInstance(
- self.os_creds, instance_settings, self.image_creator.image_settings)
+ self.os_creds, instance_settings, self.image_creators[-1].image_settings)
vm_inst = self.inst_creator.create()
self.assertEquals(1, len(nova_utils.get_servers_by_name(self.nova, instance_settings.name)))
self.floating_ip_name = guid + 'fip1'
# Initialize for tearDown()
- self.image_creator = None
+ self.image_creators = list()
self.network_creator = None
self.router_creator = None
self.flavor_creator = None
try:
# Create Image
- self.image_creator = OpenStackImage(self.os_creds, self.os_image_settings)
- self.image_creator.create()
+ # Set any custom parameters sent from the app
+ if self.image_metadata:
+ if 'disk_url' in self.image_metadata and self.image_metadata['disk_url']:
+ self.os_image_settings.url = self.image_metadata['disk_url']
+ if 'extra_properties' in self.image_metadata and self.image_metadata['extra_properties']:
+ self.os_image_settings.extra_properties = self.image_metadata['extra_properties']
+
+ # If this is a 3-part image create the kernel and ramdisk images first
+ if self.image_metadata:
+ if 'kernel_url' in self.image_metadata and self.image_metadata['kernel_url']:
+ kernel_image_settings = openstack_tests.cirros_url_image(
+ name=self.os_image_settings.name+'_kernel', url=self.image_metadata['kernel_url'])
+ self.image_creators.append(OpenStackImage(self.os_creds, kernel_image_settings))
+ kernel_image = self.image_creators[-1].create()
+ self.os_image_settings.extra_properties['kernel_id'] = kernel_image.id
+
+ if 'ramdisk_url' in self.image_metadata and self.image_metadata['ramdisk_url']:
+ ramdisk_image_settings = openstack_tests.cirros_url_image(
+ name=self.os_image_settings.name+'_ramdisk', url=self.image_metadata['ramdisk_url'])
+ self.image_creators.append(OpenStackImage(self.os_creds, ramdisk_image_settings))
+ ramdisk_image = self.image_creators[-1].create()
+ self.os_image_settings.extra_properties['ramdisk_id'] = ramdisk_image.id
+
+ self.image_creators.append(OpenStackImage(self.os_creds, self.os_image_settings))
+ self.image_creators[-1].create()
# Create Network
self.network_creator = OpenStackNetwork(self.os_creds, self.pub_net_config.network_settings)
# Create Flavor
self.flavor_creator = OpenStackFlavor(
self.admin_os_creds,
- FlavorSettings(name=guid + '-flavor-name', ram=2048, disk=10, vcpus=2, metadata=self.flavor_metadata))
+ FlavorSettings(name=guid + '-flavor-name', ram=128, disk=10, vcpus=2, metadata=self.flavor_metadata))
self.flavor_creator.create()
self.keypair_creator = OpenStackKeypair(
except Exception as e:
logger.error('Unexpected exception cleaning network with message - ' + e.message)
- if self.image_creator:
+ if self.image_creators:
try:
- self.image_creator.clean()
+ while self.image_creators:
+ self.image_creators[-1].clean()
+ self.image_creators.pop()
except Exception as e:
logger.error('Unexpected exception cleaning image with message - ' + e.message)
router_name=self.pub_net_config.router_settings.name)])
inst_creator = OpenStackVmInstance(
- self.os_creds, instance_settings, self.image_creator.image_settings,
+ self.os_creds, instance_settings, self.image_creators[-1].image_settings,
keypair_settings=self.keypair_creator.keypair_settings)
self.inst_creators.append(inst_creator)
vm_inst = inst_creator.create()
router_name=self.pub_net_config.router_settings.name)])
inst_creator = OpenStackVmInstance(
- self.os_creds, instance_settings, self.image_creator.image_settings,
+ self.os_creds, instance_settings, self.image_creators[-1].image_settings,
keypair_settings=self.keypair_creator.keypair_settings)
self.inst_creators.append(inst_creator)
vm_inst = inst_creator.create()
self.assertTrue(inst_creator.vm_active(block=True))
self.assertEquals(vm_inst, inst_creator.get_vm_inst())
- validate_ssh_client(inst_creator)
+ self.assertTrue(validate_ssh_client(inst_creator))
def test_ssh_client_fip_after_active(self):
"""
router_name=self.pub_net_config.router_settings.name)])
inst_creator = OpenStackVmInstance(
- self.os_creds, instance_settings, self.image_creator.image_settings,
+ self.os_creds, instance_settings, self.image_creators[-1].image_settings,
keypair_settings=self.keypair_creator.keypair_settings)
self.inst_creators.append(inst_creator)
self.assertTrue(inst_creator.vm_active(block=True))
self.assertEquals(vm_inst, inst_creator.get_vm_inst())
- validate_ssh_client(inst_creator)
+ self.assertTrue(validate_ssh_client(inst_creator))
# TODO - Determine how allowed_address_pairs is supposed to operate before continuing this test
# see http://docs.openstack.org/developer/dragonflow/specs/allowed_address_pairs.html for a functional description
# router_name=self.pub_net_config.router_settings.name)])
#
# inst_creator_1 = OpenStackVmInstance(
- # self.os_creds, instance_settings_1, self.image_creator.image_settings,
+ # self.os_creds, instance_settings_1, self.image_creators[-1].image_settings,
# keypair_settings=self.keypair_creator.keypair_settings)
# self.inst_creators.append(inst_creator_1)
#
# router_name=self.pub_net_config.router_settings.name)])
#
# inst_creator_1 = OpenStackVmInstance(
- # self.os_creds, instance_settings_1, self.image_creator.image_settings,
+ # self.os_creds, instance_settings_1, self.image_creators[-1].image_settings,
# keypair_settings=self.keypair_creator.keypair_settings)
# self.inst_creators.append(inst_creator_1)
# inst_creator_1.create(block=True)
# port_settings=[port_settings_2])
#
# inst_creator_2 = OpenStackVmInstance(
- # self.os_creds, instance_settings_2, self.image_creator.image_settings)
+ # self.os_creds, instance_settings_2, self.image_creators[-1].image_settings)
# self.inst_creators.append(inst_creator_2)
# inst_creator_2.create(block=True)
#
# port_settings=[port_settings_3])
#
# inst_creator_3 = OpenStackVmInstance(
- # self.os_creds, instance_settings_3, self.image_creator.image_settings)
+ # self.os_creds, instance_settings_3, self.image_creators[-1].image_settings)
# self.inst_creators.append(inst_creator_3)
# inst_creator_3.create(block=True)
#
# print 'foo'
- # I expected that this feature would block/allow traffic from specific endpoints (VMs). In this case, I would expect
- # inst_1 to be able to access inst_2 but not inst_3; however, they all can access each other.
+ # I expected that this feature would block/allow traffic from specific endpoints (VMs). In this case, I would
+ # expect inst_1 to be able to access inst_2 but not inst_3; however, they all can access each other.
# TODO - Add validation
self.floating_ip_name = guid + 'fip1'
# Initialize for tearDown()
- self.image_creator = None
+ self.image_creators = list()
self.network_creator = None
self.flavor_creator = None
self.inst_creator = None
try:
# Create Image
- self.image_creator = OpenStackImage(self.os_creds, self.os_image_settings)
- self.image_creator.create()
+ # Set any custom parameters sent from the app
+ if self.image_metadata:
+ if 'disk_url' in self.image_metadata and self.image_metadata['disk_url']:
+ self.os_image_settings.url = self.image_metadata['disk_url']
+ if 'extra_properties' in self.image_metadata and self.image_metadata['extra_properties']:
+ self.os_image_settings.extra_properties = self.image_metadata['extra_properties']
+
+ # If this is a 3-part image create the kernel and ramdisk images first
+ if self.image_metadata:
+ if 'kernel_url' in self.image_metadata and self.image_metadata['kernel_url']:
+ kernel_image_settings = openstack_tests.cirros_url_image(
+ name=self.os_image_settings.name+'_kernel', url=self.image_metadata['kernel_url'])
+ self.image_creators.append(OpenStackImage(self.os_creds, kernel_image_settings))
+ kernel_image = self.image_creators[-1].create()
+ self.os_image_settings.extra_properties['kernel_id'] = kernel_image.id
+
+ if 'ramdisk_url' in self.image_metadata and self.image_metadata['ramdisk_url']:
+ ramdisk_image_settings = openstack_tests.cirros_url_image(
+ name=self.os_image_settings.name+'_ramdisk', url=self.image_metadata['ramdisk_url'])
+ self.image_creators.append(OpenStackImage(self.os_creds, ramdisk_image_settings))
+ ramdisk_image = self.image_creators[-1].create()
+ self.os_image_settings.extra_properties['ramdisk_id'] = ramdisk_image.id
+
+ self.image_creators.append(OpenStackImage(self.os_creds, self.os_image_settings))
+ self.image_creators[-1].create()
# Create Network
self.network_creator = OpenStackNetwork(self.os_creds, self.net_config.network_settings)
# Create Flavor
self.flavor_creator = OpenStackFlavor(
self.admin_os_creds,
- FlavorSettings(name=guid + '-flavor-name', ram=2048, disk=10, vcpus=2, metadata=self.flavor_metadata))
+ FlavorSettings(name=guid + '-flavor-name', ram=128, disk=10, vcpus=2, metadata=self.flavor_metadata))
self.flavor_creator.create()
except Exception as e:
self.tearDown()
except Exception as e:
logger.error('Unexpected exception cleaning network with message - ' + e.message)
- if self.image_creator:
+ if self.image_creators:
try:
- self.image_creator.clean()
+ while self.image_creators:
+ self.image_creators[-1].clean()
+ self.image_creators.pop()
except Exception as e:
logger.error('Unexpected exception cleaning image with message - ' + e.message)
instance_settings = VmInstanceSettings(
name=self.vm_inst_name, flavor=self.flavor_creator.flavor_settings.name, port_settings=[port_settings])
- self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings, self.image_creator.image_settings)
+ self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings,
+ self.image_creators[-1].image_settings)
self.inst_creator.create()
self.assertEquals(ip, self.inst_creator.get_port_ip(
instance_settings = VmInstanceSettings(
name=self.vm_inst_name, flavor=self.flavor_creator.flavor_settings.name, port_settings=[port_settings])
- self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings, self.image_creator.image_settings)
+ self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings,
+ self.image_creators[-1].image_settings)
with self.assertRaises(Exception):
self.inst_creator.create()
instance_settings = VmInstanceSettings(
name=self.vm_inst_name, flavor=self.flavor_creator.flavor_settings.name, port_settings=[port_settings])
- self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings, self.image_creator.image_settings)
+ self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings,
+ self.image_creators[-1].image_settings)
self.inst_creator.create()
self.assertEquals(mac_addr, self.inst_creator.get_port_mac(self.port_1_name))
name=self.vm_inst_name, flavor=self.flavor_creator.flavor_settings.name, port_settings=[port_settings])
self.inst_creator = OpenStackVmInstance(
- self.os_creds, instance_settings, self.image_creator.image_settings)
+ self.os_creds, instance_settings, self.image_creators[-1].image_settings)
with self.assertRaises(Exception):
self.inst_creator.create()
instance_settings = VmInstanceSettings(
name=self.vm_inst_name, flavor=self.flavor_creator.flavor_settings.name, port_settings=[port_settings])
- self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings, self.image_creator.image_settings)
+ self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings,
+ self.image_creators[-1].image_settings)
self.inst_creator.create()
self.assertEquals(ip, self.inst_creator.get_port_ip(
instance_settings = VmInstanceSettings(
name=self.vm_inst_name, flavor=self.flavor_creator.flavor_settings.name, port_settings=[port_settings])
- self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings, self.image_creator.image_settings)
+ self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings,
+ self.image_creators[-1].image_settings)
self.inst_creator.create()
port = self.inst_creator.get_port_by_name(port_settings.name)
instance_settings = VmInstanceSettings(
name=self.vm_inst_name, flavor=self.flavor_creator.flavor_settings.name, port_settings=[port_settings])
- self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings, self.image_creator.image_settings)
+ self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings,
+ self.image_creators[-1].image_settings)
with self.assertRaises(Exception):
self.inst_creator.create()
instance_settings = VmInstanceSettings(
name=self.vm_inst_name, flavor=self.flavor_creator.flavor_settings.name, port_settings=[port_settings])
- self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings, self.image_creator.image_settings)
+ self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings,
+ self.image_creators[-1].image_settings)
with self.assertRaises(Exception):
self.inst_creator.create()
self.port_base_name = guid + 'port'
# Initialize for tearDown()
- self.image_creator = None
+ self.image_creators = list()
self.flavor_creator = None
self.network_creator = None
self.inst_creators = list()
self.flavor_creator.create()
# Create Image
- self.image_creator = OpenStackImage(self.admin_os_creds, self.os_image_settings)
- self.image_creator.create()
+ # Set any custom parameters sent from the app
+ if self.image_metadata:
+ if 'disk_url' in self.image_metadata and self.image_metadata['disk_url']:
+ self.os_image_settings.url = self.image_metadata['disk_url']
+ if 'extra_properties' in self.image_metadata and self.image_metadata['extra_properties']:
+ self.os_image_settings.extra_properties = self.image_metadata['extra_properties']
+
+ # If this is a 3-part image create the kernel and ramdisk images first
+ if self.image_metadata:
+ if 'kernel_url' in self.image_metadata and self.image_metadata['kernel_url']:
+ kernel_image_settings = openstack_tests.cirros_url_image(
+ name=self.os_image_settings.name+'_kernel', url=self.image_metadata['kernel_url'])
+ self.image_creators.append(OpenStackImage(self.os_creds, kernel_image_settings))
+ kernel_image = self.image_creators[-1].create()
+ self.os_image_settings.extra_properties['kernel_id'] = kernel_image.id
+
+ if 'ramdisk_url' in self.image_metadata and self.image_metadata['ramdisk_url']:
+ ramdisk_image_settings = openstack_tests.cirros_url_image(
+ name=self.os_image_settings.name+'_ramdisk', url=self.image_metadata['ramdisk_url'])
+ self.image_creators.append(OpenStackImage(self.os_creds, ramdisk_image_settings))
+ ramdisk_image = self.image_creators[-1].create()
+ self.os_image_settings.extra_properties['ramdisk_id'] = ramdisk_image.id
+
+ self.image_creators.append(OpenStackImage(self.os_creds, self.os_image_settings))
+ self.image_creators[-1].create()
except Exception as e:
self.tearDown()
except Exception as e:
logger.error('Unexpected exception cleaning network with message - ' + e.message)
- if self.image_creator:
+ if self.image_creators:
try:
- self.image_creator.clean()
+ while self.image_creators:
+ self.image_creators[-1].clean()
+ self.image_creators.pop()
except Exception as e:
logger.error('Unexpected exception cleaning image with message - ' + e.message)
name=inst_name, flavor=self.flavor_creator.flavor_settings.name, availability_zone=zone,
port_settings=[port_settings])
inst_creator = OpenStackVmInstance(
- self.admin_os_creds, instance_settings, self.image_creator.image_settings)
+ self.admin_os_creds, instance_settings, self.image_creators[-1].image_settings)
self.inst_creators.append(inst_creator)
inst_creator.create()
super(self.__class__, self).__start__()
# Initialize for tearDown()
- self.image_creator = None
+ self.image_creators = list()
self.network_creators = list()
self.router_creators = list()
self.flavor_creator = None
try:
# Create Image
- self.image_creator = OpenStackImage(self.os_creds, self.os_image_settings)
- self.image_creator.create()
+ # Set any custom parameters sent from the app
+ if self.image_metadata:
+ if 'disk_url' in self.image_metadata and self.image_metadata['disk_url']:
+ self.os_image_settings.url = self.image_metadata['disk_url']
+ if 'extra_properties' in self.image_metadata and self.image_metadata['extra_properties']:
+ self.os_image_settings.extra_properties = self.image_metadata['extra_properties']
+
+ # If this is a 3-part image create the kernel and ramdisk images first
+ if self.image_metadata:
+ if 'kernel_url' in self.image_metadata and self.image_metadata['kernel_url']:
+ kernel_image_settings = openstack_tests.cirros_url_image(
+ name=self.os_image_settings.name+'_kernel', url=self.image_metadata['kernel_url'])
+ self.image_creators.append(OpenStackImage(self.os_creds, kernel_image_settings))
+ kernel_image = self.image_creators[-1].create()
+ self.os_image_settings.extra_properties['kernel_id'] = kernel_image.id
+
+ if 'ramdisk_url' in self.image_metadata and self.image_metadata['ramdisk_url']:
+ ramdisk_image_settings = openstack_tests.cirros_url_image(
+ name=self.os_image_settings.name+'_ramdisk', url=self.image_metadata['ramdisk_url'])
+ self.image_creators.append(OpenStackImage(self.os_creds, ramdisk_image_settings))
+ ramdisk_image = self.image_creators[-1].create()
+ self.os_image_settings.extra_properties['ramdisk_id'] = ramdisk_image.id
+
+ self.image_creators.append(OpenStackImage(self.os_creds, self.os_image_settings))
+ self.image_creators[-1].create()
# First network is public
self.network_creators.append(OpenStackNetwork(self.os_creds, self.pub_net_config.network_settings))
# Create Flavor
self.flavor_creator = OpenStackFlavor(
self.admin_os_creds,
- FlavorSettings(name=self.guid + '-flavor-name', ram=2048, disk=10, vcpus=2,
+ FlavorSettings(name=self.guid + '-flavor-name', ram=512, disk=10, vcpus=2,
metadata=self.flavor_metadata))
self.flavor_creator.create()
except Exception as e:
logger.error('Unexpected exception cleaning network with message - ' + e.message)
- if self.image_creator:
+ if self.image_creators:
try:
- self.image_creator.clean()
+ while self.image_creators:
+ self.image_creators[-1].clean()
+ self.image_creators.pop()
except Exception as e:
logger.error('Unexpected exception cleaning image with message - ' + e.message)
router_name=self.pub_net_config.router_settings.name)])
self.inst_creator = OpenStackVmInstance(
- self.os_creds, instance_settings, self.image_creator.image_settings,
+ self.os_creds, instance_settings, self.image_creators[-1].image_settings,
keypair_settings=self.keypair_creator.keypair_settings)
vm_inst = self.inst_creator.create(block=True)
router_name=self.guid + '-pub-router', external_net=self.ext_net_name)
# Initialize for tearDown()
- self.image_creator = None
+ self.image_creators = list()
self.flavor_creator = None
self.network_creator = None
self.router_creator = None
try:
# Create Image
- self.image_creator = OpenStackImage(self.os_creds, self.os_image_settings)
- self.image_creator.create()
+ # Set any custom parameters sent from the app
+ if self.image_metadata:
+ if 'disk_url' in self.image_metadata and self.image_metadata['disk_url']:
+ self.os_image_settings.url = self.image_metadata['disk_url']
+ if 'extra_properties' in self.image_metadata and self.image_metadata['extra_properties']:
+ self.os_image_settings.extra_properties = self.image_metadata['extra_properties']
+
+ # If this is a 3-part image create the kernel and ramdisk images first
+ if self.image_metadata:
+ if 'kernel_url' in self.image_metadata and self.image_metadata['kernel_url']:
+ kernel_image_settings = openstack_tests.cirros_url_image(
+ name=self.os_image_settings.name+'_kernel', url=self.image_metadata['kernel_url'])
+ self.image_creators.append(OpenStackImage(self.os_creds, kernel_image_settings))
+ kernel_image = self.image_creators[-1].create()
+ self.os_image_settings.extra_properties['kernel_id'] = kernel_image.id
+
+ if 'ramdisk_url' in self.image_metadata and self.image_metadata['ramdisk_url']:
+ ramdisk_image_settings = openstack_tests.cirros_url_image(
+ name=self.os_image_settings.name+'_ramdisk', url=self.image_metadata['ramdisk_url'])
+ self.image_creators.append(OpenStackImage(self.os_creds, ramdisk_image_settings))
+ ramdisk_image = self.image_creators[-1].create()
+ self.os_image_settings.extra_properties['ramdisk_id'] = ramdisk_image.id
+
+ self.image_creators.append(OpenStackImage(self.os_creds, self.os_image_settings))
+ self.image_creators[-1].create()
# Create Network
self.network_creator = OpenStackNetwork(self.os_creds, net_config.network_settings)
# Create Flavor
self.flavor_creator = OpenStackFlavor(
self.admin_os_creds,
- FlavorSettings(name=self.guid + '-flavor-name', ram=2048, disk=10, vcpus=2,
+ FlavorSettings(name=self.guid + '-flavor-name', ram=128, disk=10, vcpus=2,
metadata=self.flavor_metadata))
self.flavor_creator.create()
except Exception as e:
logger.error('Unexpected exception cleaning network with message - ' + e.message)
- if self.image_creator:
+ if self.image_creators:
try:
- self.image_creator.clean()
+ while self.image_creators:
+ self.image_creators[-1].clean()
+ self.image_creators.pop()
except Exception as e:
logger.error('Unexpected exception cleaning image with message - ' + e.message)
# Create instance
instance_settings = VmInstanceSettings(
name=self.vm_inst_name, flavor=self.flavor_creator.flavor_settings.name, port_settings=[self.port_settings])
- self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings, self.image_creator.image_settings)
+ self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings,
+ self.image_creators[-1].image_settings)
vm_inst = self.inst_creator.create(block=True)
self.assertIsNotNone(vm_inst)
# Create instance
instance_settings = VmInstanceSettings(
name=self.vm_inst_name, flavor=self.flavor_creator.flavor_settings.name, port_settings=[self.port_settings])
- self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings, self.image_creator.image_settings)
+ self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings,
+ self.image_creators[-1].image_settings)
vm_inst = self.inst_creator.create(block=True)
self.assertIsNotNone(vm_inst)
instance_settings = VmInstanceSettings(
name=self.vm_inst_name, flavor=self.flavor_creator.flavor_settings.name,
security_group_names=[sec_grp_settings.name], port_settings=[self.port_settings])
- self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings, self.image_creator.image_settings)
+ self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings,
+ self.image_creators[-1].image_settings)
vm_inst = self.inst_creator.create(block=True)
self.assertIsNotNone(vm_inst)
# Create instance
instance_settings = VmInstanceSettings(
name=self.vm_inst_name, flavor=self.flavor_creator.flavor_settings.name, port_settings=[self.port_settings])
- self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings, self.image_creator.image_settings)
+ self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings,
+ self.image_creators[-1].image_settings)
vm_inst = self.inst_creator.create(block=True)
self.assertIsNotNone(vm_inst)
instance_settings = VmInstanceSettings(
name=self.vm_inst_name, flavor=self.flavor_creator.flavor_settings.name,
security_group_names=[sec_grp_settings.name], port_settings=[self.port_settings])
- self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings, self.image_creator.image_settings)
+ self.inst_creator = OpenStackVmInstance(self.os_creds, instance_settings,
+ self.image_creators[-1].image_settings)
vm_inst = self.inst_creator.create(block=True)
self.assertIsNotNone(vm_inst)
try:
# Create Images
+ # Set properties
+ properties = {}
+ if self.image_metadata:
+ if 'extra_properties' in self.image_metadata and self.image_metadata['extra_properties']:
+ properties = self.image_metadata['extra_properties']
+
# Create the kernel image
kernel_image_settings = openstack_tests.cirros_url_image(
name=self.image_name+'_kernel',
url='http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-kernel')
+
+ if self.image_metadata:
+ if 'kernel_url' in self.image_metadata and self.image_metadata['kernel_url']:
+ kernel_image_settings.url = self.image_metadata['kernel_url']
+
self.image_creators.append(OpenStackImage(self.os_creds, kernel_image_settings))
kernel_image = self.image_creators[-1].create()
ramdisk_image_settings = openstack_tests.cirros_url_image(
name=self.image_name+'_ramdisk',
url='http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-initramfs')
+
+ if self.image_metadata:
+ if 'ramdisk_url' in self.image_metadata and self.image_metadata['ramdisk_url']:
+ ramdisk_image_settings.url = self.image_metadata['ramdisk_url']
+
self.image_creators.append(OpenStackImage(self.os_creds, ramdisk_image_settings))
ramdisk_image = self.image_creators[-1].create()
self.assertIsNotNone(ramdisk_image)
os_image_settings = openstack_tests.cirros_url_image(
name=self.image_name,
url='http://download.cirros-cloud.net/0.3.4/cirros-0.3.4-x86_64-disk.img')
- properties = dict()
+ if self.image_metadata:
+ if 'disk_url' in self.image_metadata and self.image_metadata['disk_url']:
+ os_image_settings.url = self.image_metadata['disk_url']
+
properties['kernel_id'] = kernel_image.id
properties['ramdisk_id'] = ramdisk_image.id
os_image_settings.extra_properties = properties
# Create Flavor
self.flavor_creator = OpenStackFlavor(
self.admin_os_creds,
- FlavorSettings(name=guid + '-flavor-name', ram=2048, disk=10, vcpus=2, metadata=self.flavor_metadata))
+ FlavorSettings(name=guid + '-flavor-name', ram=128, disk=10, vcpus=2, metadata=self.flavor_metadata))
self.flavor_creator.create()
# Create Network
vm_inst = self.inst_creator.create()
self.assertEquals(1, len(nova_utils.get_servers_by_name(self.nova, instance_settings.name)))
+ self.assertTrue(self.inst_creator.vm_active(block=True))
+
# Delete instance
nova_utils.delete_vm_instance(self.nova, vm_inst)