From 0f83ceeb80ae3c56ea54bc4fd245ec77feeb930a Mon Sep 17 00:00:00 2001 From: XaverStiensmeier Date: Thu, 16 Nov 2023 15:52:54 +0100 Subject: [PATCH] fixed all tests --- bibigrid/openstack/openstack_provider.py | 2 ++ tests/provider/test_provider.py | 38 ++++++++++++++---------- tests/startup_tests.py | 10 +++---- 3 files changed, 30 insertions(+), 20 deletions(-) diff --git a/bibigrid/openstack/openstack_provider.py b/bibigrid/openstack/openstack_provider.py index 15ec3ef9..ae97a2ec 100644 --- a/bibigrid/openstack/openstack_provider.py +++ b/bibigrid/openstack/openstack_provider.py @@ -121,6 +121,8 @@ def create_server(self, name, flavor, image, network, key_name=None, wait=True, except openstack.exceptions.BadRequestException as exc: if "is not active" in str(exc): raise ImageDeactivatedException() from exc + if "Invalid key_name provided" in str(exc): + raise ExecutionException() from exc raise ConnectionError() from exc except openstack.exceptions.SDKException as exc: raise ExecutionException() from exc diff --git a/tests/provider/test_provider.py b/tests/provider/test_provider.py index 545ee7d6..45b0de7e 100644 --- a/tests/provider/test_provider.py +++ b/tests/provider/test_provider.py @@ -20,7 +20,12 @@ 'updated', 'user_id', 'tags', 'interface_ip', 'properties', 'hostId', 'config_drive', 'project_id', 'tenant_id', 'region', 'cloud', 'az', 'OS-DCF:diskConfig', 'OS-EXT-AZ:availability_zone', 'OS-SRV-USG:launched_at', 'OS-SRV-USG:terminated_at', 'OS-EXT-STS:task_state', 'OS-EXT-STS:vm_state', - 'OS-EXT-STS:power_state', 'os-extended-volumes:volumes_attached'} + 'OS-EXT-STS:power_state', 'os-extended-volumes:volumes_attached', 'OS-EXT-SRV-ATTR:ramdisk_id', + 'max_count', 'trusted_image_certificates', 'OS-SCH-HNT:scheduler_hints', + 'OS-EXT-SRV-ATTR:reservation_id', 'OS-EXT-SRV-ATTR:host', 'locked', 'host_status', + 'OS-EXT-SRV-ATTR:hypervisor_hostname', 'OS-EXT-SRV-ATTR:launch_index', + 'OS-EXT-SRV-ATTR:root_device_name', 'OS-EXT-SRV-ATTR:instance_name', 'OS-EXT-SRV-ATTR:user_data', + 'min_count', 'OS-EXT-SRV-ATTR:kernel_id', 'OS-EXT-SRV-ATTR:hostname'} FLOATING_IP_KEYS = {'attached', 'fixed_ip_address', 'floating_ip_address', 'id', 'location', 'network', 'port', 'router', 'status', 'created_at', 'updated_at', 'description', 'revision_number', 'properties', 'port_id', 'router_id', 'project_id', 'tenant_id', 'floating_network_id', 'port_details', @@ -41,7 +46,7 @@ 'is_protected', 'locations', 'properties', 'is_public', 'visibility', 'description', 'owner_specified.openstack.md5', 'owner_specified.openstack.object', 'owner_specified.openstack.sha256', 'os_hidden', 'os_hash_algo', 'os_hash_value', 'os_distro', 'os_version', 'schema', 'protected', - 'metadata', 'created', 'updated', 'minDisk', 'minRam'} + 'metadata', 'created', 'updated', 'minDisk', 'minRam', 'stores'} SNAPSHOT_KEYS = {'id', 'created_at', 'updated_at', 'name', 'description', 'volume_id', 'status', 'size', 'metadata', 'os-extended-snapshot-attributes:project_id', 'os-extended-snapshot-attributes:progress'} @@ -63,8 +68,9 @@ "MFbUTTukAiDf4jAgvJkg7ayE0MPapGpI/OhSK2gyN45VAzs2m7uykun87B491JagZ57qr16vt8vxGYpFCEe8QqAcrUszUPqyPrb0auA8bz" \ "jO8S41Kx8FfG+7eTu4dQ0= user" -CONFIGURATIONS = configuration_handler.read_configuration(logging, os.path.join(bP.ROOT_PATH, - "tests/resources/infrastructure_cloud.yml")) +CONFIGURATIONS = configuration_handler.read_configuration(logging, + os.path.join(bP.ROOT_PATH, + "tests/resources/infrastructure_cloud.yml")) PROVIDERS = provider_handler.get_providers(CONFIGURATIONS, logging) @@ -78,7 +84,7 @@ def __init__(self, provider, name, configuration, key_name=None): self.name = name self.server_dict = provider.create_server(name=self.name, flavor=configuration["flavor"], image=configuration["image"], network=configuration["network"], - key_name=key_name) + key_name=key_name, security_groups=[]) def __enter__(self): return self.server_dict @@ -106,30 +112,32 @@ def test_server_start_type_error(self): with self.subTest(provider.NAME): with self.assertRaises(TypeError): provider.create_server(name="name", flavor=configuration["flavor"], - network=configuration["network"]) + network=configuration["network"], security_groups=[]) with self.assertRaises(TypeError): - provider.create_server(name="name", image=configuration["image"], network=configuration["network"]) + provider.create_server(name="name", image=configuration["image"], network=configuration["network"], + security_groups=[]) with self.assertRaises(TypeError): provider.create_server(flavor=configuration["flavor"], image=configuration["image"], - network=configuration["network"]) + security_groups=[], network=configuration["network"]) with self.assertRaises(TypeError): - provider.create_server(name="name", flavor=configuration["flavor"], image=configuration["image"]) + provider.create_server(name="name", flavor=configuration["flavor"], image=configuration["image"], + security_groups=[]) def test_server_start_attribute_error(self): for provider, configuration in zip(PROVIDERS, CONFIGURATIONS): with self.subTest(provider.NAME): with self.assertRaises(ExecutionException): provider.create_server(name="name", image="ERROR", flavor=configuration["flavor"], - network=configuration["network"]) + network=configuration["network"], security_groups=[]) with self.assertRaises(ExecutionException): provider.create_server(name="name", flavor="ERROR", image=configuration["image"], - network=configuration["network"]) + network=configuration["network"], security_groups=[]) with self.assertRaises(ExecutionException): provider.create_server(name="name", flavor=configuration["flavor"], image=configuration["image"], - network="ERROR") + network="ERROR", security_groups=[]) with self.assertRaises(ExecutionException): provider.create_server(name="name", flavor=configuration["flavor"], image=configuration["image"], - network=configuration["network"], key_name="ERROR") + network=configuration["network"], key_name="ERROR", security_groups=[]) def test_create_keypair_create_delete_false_delete(self): for provider in PROVIDERS: @@ -144,8 +152,8 @@ def test_active_server_methods(self): with self.subTest(provider.NAME): with ProviderServer(provider, "bibigrid_test_server", configuration, "bibigrid_test_keypair") as provider_server: - floating_ip = provider.create_floating_ip(provider.get_external_network(configuration["network"]), - provider_server) + floating_ip = provider.attach_available_floating_ip( + provider.get_external_network(configuration["network"]), provider_server) server_list = provider.list_servers() self.assertEqual(SERVER_KEYS, set(provider_server.keys())) self.assertEqual("bibigrid_test_keypair", provider_server["key_name"]) diff --git a/tests/startup_tests.py b/tests/startup_tests.py index 2ac2823e..4a719ef2 100644 --- a/tests/startup_tests.py +++ b/tests/startup_tests.py @@ -34,12 +34,12 @@ def suppress_stdout(): logging.basicConfig(level=logging.ERROR) if __name__ == '__main__': # Unittests - #suite = unittest.TestLoader().discover("./", pattern='test_*.py') - #with suppress_stdout(): - # unittest.TextTestRunner(verbosity=2).run(suite) + suite = unittest.TestLoader().discover("./", pattern='test_*.py') + with suppress_stdout(): + unittest.TextTestRunner(verbosity=2).run(suite) # Provider-Test # Configuration needs to contain providers and infrastructures suite = unittest.TestLoader().discover("./provider", pattern='test_*.py') - # with suppress_stdout(): - unittest.TextTestRunner(verbosity=2).run(suite) + with suppress_stdout(): + unittest.TextTestRunner(verbosity=2).run(suite)