diff options
Diffstat (limited to 'snaps/openstack/tests/create_instance_tests.py')
-rw-r--r-- | snaps/openstack/tests/create_instance_tests.py | 128 |
1 files changed, 86 insertions, 42 deletions
diff --git a/snaps/openstack/tests/create_instance_tests.py b/snaps/openstack/tests/create_instance_tests.py index 0ef155b..17831b3 100644 --- a/snaps/openstack/tests/create_instance_tests.py +++ b/snaps/openstack/tests/create_instance_tests.py @@ -24,7 +24,6 @@ from neutronclient.common.exceptions import ( InvalidIpForSubnetClient, BadRequest) from snaps import file_utils -from snaps.config.flavor import FlavorConfig from snaps.config.image import ImageConfig from snaps.config.keypair import KeypairConfig from snaps.config.network import PortConfig, NetworkConfig, SubnetConfig @@ -45,6 +44,7 @@ from snaps.openstack.create_network import OpenStackNetwork from snaps.openstack.create_router import OpenStackRouter from snaps.openstack.create_security_group import OpenStackSecurityGroup from snaps.openstack.create_volume import OpenStackVolume +from snaps.openstack.os_credentials import OSCreds from snaps.openstack.tests import openstack_tests, validation_utils from snaps.openstack.tests.os_source_file_test import ( OSIntegrationTestCase, OSComponentTestCase) @@ -335,10 +335,11 @@ class SimpleHealthCheck(OSIntegrationTestCase): if (self.flavor_metadata and self.flavor_metadata.get('hw:mem_page_size') == 'large'): self.flavor_ram = 1024 + flavor_config = openstack_tests.get_flavor_config( + name=guid + '-flavor-name', ram=self.flavor_ram, disk=10, + vcpus=1, metadata=self.flavor_metadata) self.flavor_creator = OpenStackFlavor( - self.admin_os_creds, - FlavorConfig(name=guid + '-flavor-name', ram=self.flavor_ram, - disk=10, vcpus=1, metadata=self.flavor_metadata)) + self.admin_os_creds, flavor_config) self.flavor_creator.create() except Exception as e: self.tearDown() @@ -437,10 +438,11 @@ class CreateInstanceSimpleTests(OSIntegrationTestCase): self.image_creator.create() # Create Flavor + flavor_config = openstack_tests.get_flavor_config( + name=self.guid + '-flavor-name', ram=256, disk=10, + vcpus=2, metadata=self.flavor_metadata) self.flavor_creator = OpenStackFlavor( - self.admin_os_creds, - FlavorConfig(name=self.guid + '-flavor-name', ram=256, disk=10, - vcpus=2, metadata=self.flavor_metadata)) + self.admin_os_creds, flavor_config) self.flavor_creator.create() self.network_creator = None except Exception as e: @@ -615,10 +617,11 @@ class CreateInstanceExternalNetTests(OSIntegrationTestCase): self.image_creator.create() # Create Flavor + flavor_config = openstack_tests.get_flavor_config( + name=guid + '-flavor-name', ram=256, disk=10, + vcpus=2, metadata=self.flavor_metadata) self.flavor_creator = OpenStackFlavor( - self.admin_os_creds, - FlavorConfig(name=guid + '-flavor-name', ram=256, disk=10, - vcpus=2, metadata=self.flavor_metadata)) + self.admin_os_creds, flavor_config) self.flavor_creator.create() self.port_settings = PortConfig( @@ -692,6 +695,7 @@ class CreateInstanceSingleNetworkTests(OSIntegrationTestCase): Instantiates the CreateImage object that is responsible for downloading and creating an OS image file within OpenStack """ + self.proj_users = ['admin'] super(self.__class__, self).__start__() self.nova = nova_utils.nova_client(self.os_creds, self.os_session) @@ -737,10 +741,11 @@ class CreateInstanceSingleNetworkTests(OSIntegrationTestCase): self.router_creator.create() # Create Flavor + flavor_config = openstack_tests.get_flavor_config( + name=guid + '-flavor-name', ram=256, disk=10, + vcpus=2, metadata=self.flavor_metadata) self.flavor_creator = OpenStackFlavor( - self.admin_os_creds, - FlavorConfig(name=guid + '-flavor-name', ram=256, disk=10, - vcpus=2, metadata=self.flavor_metadata)) + self.admin_os_creds, flavor_config) self.flavor_creator.create() self.keypair_creator = OpenStackKeypair( @@ -1052,10 +1057,36 @@ class CreateInstanceSingleNetworkTests(OSIntegrationTestCase): self.assertTrue(inst_creator.vm_active(block=True)) + vm_os_creds = OSCreds( + auth_url=self.admin_os_creds.auth_url, + username=self.admin_os_creds.username, + password=self.admin_os_creds.password, + project_name=self.os_creds.project_name, + identity_api_version=self.os_creds.identity_api_version) derived_inst_creator = create_instance.generate_creator( - self.os_creds, vm_inst, self.image_creator.image_settings, + vm_os_creds, vm_inst, self.image_creator.image_settings, self.os_creds.project_name, self.keypair_creator.keypair_settings) + # Tests to ensure that a instance can be returned with an invalid + # image config object and admin credentials (when the 'admin' user has + # been added to the project) as this should not matter unless one + # needs to access the machine via ssh and its floating IP + + # Invalid ImageConfig + derived_foo_image_creator = create_instance.generate_creator( + vm_os_creds, vm_inst, ImageConfig( + name='foo', image_user='bar', format='qcow2', + image_file='foo/bar'), + vm_os_creds.project_name) + self.assertIsNotNone(derived_foo_image_creator) + self.assertTrue(derived_foo_image_creator.vm_active()) + + # None ImageConfig + derived_none_image_creator = create_instance.generate_creator( + vm_os_creds, vm_inst, None, vm_os_creds.project_name) + self.assertIsNotNone(derived_none_image_creator) + self.assertTrue(derived_none_image_creator.vm_active()) + derived_inst_creator.add_floating_ip(FloatingIpConfig( name=self.floating_ip_name, port_name=self.port_1_name, router_name=self.pub_net_config.router_settings.name)) @@ -1146,11 +1177,11 @@ class CreateInstanceIPv6NetworkTests(OSIntegrationTestCase): self.os_creds, os_image_settings) self.image_creator.create() + flavor_config = openstack_tests.get_flavor_config( + name=self.guid + '-flavor-name', ram=256, disk=10, + vcpus=2, metadata=self.flavor_metadata) self.flavor_creator = OpenStackFlavor( - self.admin_os_creds, - FlavorConfig( - name=self.guid + '-flavor-name', ram=256, disk=10, vcpus=2, - metadata=self.flavor_metadata)) + self.admin_os_creds, flavor_config) self.flavor_creator.create() self.keypair_creator = OpenStackKeypair( @@ -1333,6 +1364,7 @@ class CreateInstanceIPv6NetworkTests(OSIntegrationTestCase): keypair_settings=self.keypair_creator.keypair_settings) self.inst_creator.create(block=True) + self.inst_creator.cloud_init_complete(block=True) ssh_client = self.inst_creator.ssh_client() self.assertIsNotNone(ssh_client) @@ -1385,10 +1417,11 @@ class CreateInstancePortManipulationTests(OSIntegrationTestCase): self.network_creator.create() # Create Flavor + flavor_config = openstack_tests.get_flavor_config( + name=self.guid + '-flavor-name', ram=256, disk=10, + vcpus=2, metadata=self.flavor_metadata) self.flavor_creator = OpenStackFlavor( - self.admin_os_creds, - FlavorConfig(name=self.guid + '-flavor-name', ram=256, disk=10, - vcpus=2, metadata=self.flavor_metadata)) + self.admin_os_creds, flavor_config) self.flavor_creator.create() except Exception as e: self.tearDown() @@ -1422,6 +1455,14 @@ class CreateInstancePortManipulationTests(OSIntegrationTestCase): 'Unexpected exception cleaning network with message - %s', e) + if self.network_creator2: + try: + self.network_creator2.clean() + except Exception as e: + logger.error( + 'Unexpected exception cleaning network with message - %s', + e) + if self.image_creator and not self.image_creator.image_settings.exists: try: self.image_creator.clean() @@ -1760,10 +1801,11 @@ class CreateInstanceOnComputeHost(OSIntegrationTestCase): self.network_creator.create() # Create Flavor + flavor_config = openstack_tests.get_flavor_config( + name=guid + '-flavor-name', ram=512, disk=1, + vcpus=1, metadata=self.flavor_metadata) self.flavor_creator = OpenStackFlavor( - self.admin_os_creds, - FlavorConfig(name=guid + '-flavor-name', ram=512, disk=1, - vcpus=1, metadata=self.flavor_metadata)) + self.admin_os_creds, flavor_config) self.flavor_creator.create() # Create Image @@ -1909,11 +1951,11 @@ class InstanceSecurityGroupTests(OSIntegrationTestCase): self.network_creator.create() # Create Flavor + flavor_config = openstack_tests.get_flavor_config( + name=self.guid + '-flavor-name', ram=256, disk=10, + vcpus=2, metadata=self.flavor_metadata) self.flavor_creator = OpenStackFlavor( - self.admin_os_creds, - FlavorConfig(name=self.guid + '-flavor-name', ram=256, - disk=10, vcpus=2, - metadata=self.flavor_metadata)) + self.admin_os_creds, flavor_config) self.flavor_creator.create() self.port_settings = PortConfig( @@ -2246,10 +2288,11 @@ class CreateInstanceFromThreePartImage(OSIntegrationTestCase): self.image_creator.create() # Create Flavor + flavor_config = openstack_tests.get_flavor_config( + name=guid + '-flavor-name', ram=256, disk=10, + vcpus=2, metadata=self.flavor_metadata) self.flavor_creator = OpenStackFlavor( - self.admin_os_creds, - FlavorConfig(name=guid + '-flavor-name', ram=256, disk=10, - vcpus=2, metadata=self.flavor_metadata)) + self.admin_os_creds, flavor_config) self.flavor_creator.create() # Create Network @@ -2368,11 +2411,11 @@ class CreateInstanceMockOfflineTests(OSComponentTestCase): self.network_creator.create() # Create Flavor + flavor_config = openstack_tests.get_flavor_config( + name=self.guid + '-flavor-name', ram=256, disk=10, + vcpus=2, metadata=self.flavor_metadata) self.flavor_creator = OpenStackFlavor( - self.os_creds, - FlavorConfig( - name=self.guid + '-flavor-name', ram=256, disk=10, - vcpus=1)) + self.os_creds, flavor_config) self.flavor_creator.create() except Exception as e: self.tearDown() @@ -2910,11 +2953,11 @@ class CreateInstanceTwoNetTests(OSIntegrationTestCase): self.os_creds, router_settings) self.router_creator.create() + flavor_config = openstack_tests.get_flavor_config( + name=self.guid + '-flavor-name', ram=512, disk=10, + vcpus=2, metadata=self.flavor_metadata) self.flavor_creator = OpenStackFlavor( - self.admin_os_creds, - FlavorConfig(name=self.guid + '-flavor-name', ram=512, - disk=10, vcpus=2, - metadata=self.flavor_metadata)) + self.admin_os_creds, flavor_config) self.flavor_creator.create() self.sec_grp_name = self.guid + '-sec-grp' @@ -3099,10 +3142,11 @@ class CreateInstanceVolumeTests(OSIntegrationTestCase): self.image_creator.create() # Create Flavor + flavor_config = openstack_tests.get_flavor_config( + name=guid + '-flavor-name', ram=256, disk=1, + vcpus=2, metadata=self.flavor_metadata) self.flavor_creator = OpenStackFlavor( - self.admin_os_creds, - FlavorConfig(name=guid + '-flavor-name', ram=256, disk=1, - vcpus=2, metadata=self.flavor_metadata)) + self.admin_os_creds, flavor_config) self.flavor_creator.create() # Create Network |