def setUpClass(cls): super(ComputeAdminFixture, cls).setUpClass() # Setup admin client auth_config = ComputeAdminAuthConfig() user_config = ComputeAdminUserConfig() access_data = AuthProvider.get_access_data(auth_config, user_config) admin_endpoint_config = ComputeAdminEndpointConfig() compute_service = access_data.get_service( admin_endpoint_config.compute_endpoint_name) url = compute_service.get_endpoint( admin_endpoint_config.region).public_url cls.admin_flavors_client = FlavorsClient(url, access_data.token.id_, 'json', 'json') cls.admin_servers_client = ServersClient(url, access_data.token.id_, 'json', 'json') cls.admin_server_behaviors = ServerBehaviors(cls.admin_servers_client, cls.servers_config, cls.images_config, cls.flavors_config) cls.admin_images_client = ImagesClient(url, access_data.token.id_, 'json', 'json') cls.admin_images_behaviors = ImageBehaviors(cls.admin_images_client, cls.admin_servers_client, cls.images_config) cls.admin_hosts_client = HostsClient(url, access_data.token.id_, 'json', 'json') cls.admin_quotas_client = QuotasClient(url, access_data.token.id_, 'json', 'json') cls.admin_servers_client.add_exception_handler(ExceptionHandler())
def setUpClass(cls): super(AuthorizationTests, cls).setUpClass() cls.metadata = {'meta_key_1': 'meta_value_1', 'meta_key_2': 'meta_value_2'} cls.server = cls.server_behaviors.create_active_server( metadata=cls.metadata).entity cls.resources.add(cls.server.id, cls.servers_client.delete_server) image_name = rand_name('testimage') cls.image_meta = {'key1': 'value1', 'key2': 'value2'} image_resp = cls.servers_client.create_image(cls.server.id, image_name, cls.image_meta) assert image_resp.status_code == 202 cls.image_id = cls.parse_image_id(image_resp) cls.image_behaviors.wait_for_image_status( cls.image_id, NovaImageStatusTypes.ACTIVE) cls.resources.add(cls.image_id, cls.images_client.delete_image) secondary_user = ComputeAuthorizationConfig() access_data = AuthProvider.get_access_data(cls.endpoint_config, secondary_user) compute_service = access_data.get_service( cls.compute_endpoint.compute_endpoint_name) url = compute_service.get_endpoint( cls.compute_endpoint.region).public_url cls.flavors_client = FlavorsClient(url, access_data.token.id_, 'json', 'json') cls.servers_client = ServersClient(url, access_data.token.id_, 'json', 'json') cls.images_client = ImagesClient(url, access_data.token.id_, 'json', 'json') cls.flavors_client.add_exception_handler(ExceptionHandler())
def setUpClass(cls): super(ComputeAdminFixture, cls).setUpClass() # Setup admin client auth_config = ComputeAdminAuthConfig() user_config = ComputeAdminUserConfig() access_data = AuthProvider.get_access_data(auth_config, user_config) admin_endpoint_config = ComputeAdminEndpointConfig() compute_service = access_data.get_service( admin_endpoint_config.compute_endpoint_name) url = compute_service.get_endpoint( admin_endpoint_config.region).public_url client_args = {'url': url, 'auth_token': access_data.token.id_, 'serialize_format': cls.marshalling.serializer, 'deserialize_format': cls.marshalling.deserializer} cls.admin_flavors_client = FlavorsClient(**client_args) cls.admin_servers_client = ServersClient(**client_args) cls.admin_images_client = ImagesClient(**client_args) cls.admin_hosts_client = HostsClient(**client_args) cls.admin_quotas_client = QuotasClient(**client_args) cls.admin_hypervisors_client = HypervisorsClient(**client_args) cls.admin_server_behaviors = ServerBehaviors(cls.admin_servers_client, cls.servers_config, cls.images_config, cls.flavors_config) cls.admin_images_behaviors = ImageBehaviors(cls.admin_images_client, cls.admin_servers_client, cls.images_config) cls.admin_servers_client.add_exception_handler(ExceptionHandler())
def setUpClass(cls): super(ComputeFixture, cls).setUpClass() cls.flavors_config = FlavorsConfig() cls.images_config = ImagesConfig() cls.servers_config = ServersConfig() cls.compute_endpoint = ComputeEndpointConfig() cls.marshalling = MarshallingConfig() cls.config_drive_config = ConfigDriveConfig() cls.flavor_ref = cls.flavors_config.primary_flavor cls.flavor_ref_alt = cls.flavors_config.secondary_flavor cls.image_ref = cls.images_config.primary_image cls.image_ref_alt = cls.images_config.secondary_image cls.disk_path = cls.servers_config.instance_disk_path cls.endpoint_config = UserAuthConfig() cls.user_config = UserConfig() access_data = AuthProvider.get_access_data(cls.endpoint_config, cls.user_config) # If authentication fails, halt if access_data is None: cls.assertClassSetupFailure('Authentication failed.') compute_service = access_data.get_service( cls.compute_endpoint.compute_endpoint_name) url = compute_service.get_endpoint( cls.compute_endpoint.region).public_url # If a url override was provided, use that value instead if cls.compute_endpoint.compute_endpoint_url: url = '{0}/{1}'.format(cls.compute_endpoint.compute_endpoint_url, cls.user_config.tenant_id) client_args = {'url': url, 'auth_token': access_data.token.id_, 'serialize_format': cls.marshalling.serializer, 'deserialize_format': cls.marshalling.deserializer} cls.flavors_client = FlavorsClient(**client_args) cls.servers_client = ServersClient(**client_args) cls.images_client = ImagesClient(**client_args) cls.keypairs_client = KeypairsClient(**client_args) cls.security_groups_client = SecurityGroupsClient(**client_args) cls.security_group_rule_client = SecurityGroupRulesClient( **client_args) cls.rescue_client = RescueClient(**client_args) cls.vnc_client = VncConsoleClient(**client_args) cls.console_output_client = ConsoleOutputClient(**client_args) cls.server_behaviors = ServerBehaviors(cls.servers_client, cls.servers_config, cls.images_config, cls.flavors_config) cls.image_behaviors = ImageBehaviors(cls.images_client, cls.servers_client, cls.images_config) cls.config_drive_behaviors = ConfigDriveBehaviors(cls.servers_client, cls.servers_config, cls.server_behaviors) cls.flavors_client.add_exception_handler(ExceptionHandler()) cls.resources = ResourcePool()
def setUpClass(cls): super(ComputeFixture, cls).setUpClass() cls.compute = ComputeComposite() # Configs cls.flavors_config = cls.compute.flavors.config cls.images_config = cls.compute.images.config cls.servers_config = cls.compute.servers.config cls.volumes_config = VolumesAPIConfig() cls.compute_endpoint = ComputeEndpointConfig() cls.marshalling = MarshallingConfig() cls.config_drive_config = cls.compute.config_drive.config cls.cloud_init_config = cls.compute.config_drive.cloud_init_config cls.user_config = cls.compute.user cls.security_groups_config = cls.compute.security_groups.config # Common config values cls.flavor_ref = cls.flavors_config.primary_flavor cls.flavor_ref_alt = cls.flavors_config.secondary_flavor cls.image_ref = cls.images_config.primary_image cls.image_ref_alt = cls.images_config.secondary_image cls.bootable_volume_ref = cls.volumes_config.primary_bootable_volume cls.disk_path = cls.servers_config.instance_disk_path cls.split_ephemeral_disk_enabled = \ cls.servers_config.split_ephemeral_disk_enabled cls.ephemeral_disk_max_size = \ cls.servers_config.ephemeral_disk_max_size cls.disk_format_type = cls.servers_config.disk_format_type cls.expected_networks = cls.servers_config.expected_networks cls.file_injection_enabled = \ cls.servers_config.personality_file_injection_enabled cls.keep_resources_on_failure =\ cls.servers_config.keep_resources_on_failure cls.compute_exception_handler = ExceptionHandler() # Clients cls.flavors_client = cls.compute.flavors.client cls.servers_client = cls.compute.servers.client cls.boot_from_volume_client = cls.compute.boot_from_volume.client cls.images_client = cls.compute.images.client cls.keypairs_client = cls.compute.keypairs.client cls.security_groups_client = cls.compute.security_groups.client cls.security_group_rule_client = \ cls.compute.security_groups.rules_client cls.volume_attachments_client = cls.compute.volume_attachments.client cls.rescue_client = cls.compute.rescue.client cls.vnc_client = cls.compute.vnc_console.client cls.console_output_client = cls.compute.console_output.client cls.limits_client = cls.compute.limits.client cls.server_behaviors = cls.compute.servers.behaviors cls.volume_server_behaviors = cls.compute.boot_from_volume.behaviors cls.image_behaviors = cls.compute.images.behaviors cls.config_drive_behaviors = cls.compute.config_drive.behaviors cls.flavors_client.add_exception_handler(cls.compute_exception_handler) cls.resources = ResourcePool() cls.addClassCleanup(cls.resources.release)
def setUpClass(cls): super(ImagesFixture, cls).setUpClass() cls.images_config = ImagesConfig() cls.marshalling = MarshallingConfig() cls.endpoint_config = UserAuthConfig() cls.user_config = UserConfig() cls.alt_user_config = AltUserConfig() cls.third_user_config = ThirdUserConfig() cls.resources = ResourcePool() cls.serialize_format = cls.marshalling.serializer cls.deserialize_format = cls.marshalling.deserializer cls.user_list = cls.generate_user_list(cls.images_config.account_list) cls.access_data = cls.user_list['user'][cls.ACCESS_DATA] cls.images_client = cls.user_list['user'][cls.CLIENT] cls.images_behavior = cls.user_list['user'][cls.BEHAVIOR] cls.tenant_id = cls.access_data.token.tenant.id_ cls.addClassCleanup(cls.images_behavior.resources.release) if cls.user_list.get('alt_user'): cls.alt_access_data = cls.user_list['alt_user'][cls.ACCESS_DATA] cls.alt_images_client = cls.user_list['alt_user'][cls.CLIENT] cls.alt_images_behavior = cls.user_list['alt_user'][cls.BEHAVIOR] cls.alt_tenant_id = cls.alt_access_data.token.tenant.id_ cls.addClassCleanup(cls.alt_images_behavior.resources.release) if cls.user_list.get('third_user'): cls.third_access_data = ( cls.user_list['third_user'][cls.ACCESS_DATA]) cls.third_images_client = cls.user_list['third_user'][cls.CLIENT] cls.third_images_behavior = ( cls.user_list['third_user'][cls.BEHAVIOR]) cls.third_tenant_id = cls.third_access_data.token.tenant.id_ cls.addClassCleanup(cls.third_images_behavior.resources.release) cls.error_msg = Messages.ERROR_MSG cls.id_regex = re.compile(ImageProperties.ID_REGEX) cls.import_from = cls.images_config.import_from cls.import_from_bootable = cls.images_config.import_from_bootable cls.import_from_format = cls.images_config.import_from_format cls.export_to = cls.images_config.export_to cls.max_created_at_delta = cls.images_config.max_created_at_delta cls.max_expires_at_delta = cls.images_config.max_expires_at_delta cls.max_updated_at_delta = cls.images_config.max_updated_at_delta cls.test_file = cls.read_data_file(cls.images_config.test_file) cls.addClassCleanup(cls.resources.release) cls.exception_handler = ExceptionHandler() cls.images_client.add_exception_handler(cls.exception_handler)
def setUpClass(cls): super(ComputeAdminFixture, cls).setUpClass() cls.compute_admin = ComputeAdminComposite() cls.admin_rescue_client = cls.compute_admin.rescue.client cls.admin_flavors_client = cls.compute_admin.flavors.client cls.admin_servers_client = cls.compute_admin.servers.client cls.admin_images_client = cls.compute_admin.images.client cls.admin_hosts_client = cls.compute_admin.hosts.client cls.admin_quotas_client = cls.compute_admin.quotas.client cls.admin_hypervisors_client = cls.compute_admin.hypervisors.client cls.admin_server_behaviors = cls.compute_admin.servers.behaviors cls.admin_images_behaviors = cls.compute_admin.images.behaviors cls.admin_servers_client.add_exception_handler(ExceptionHandler())
def setUpClass(cls): super(ComputeFixture, cls).setUpClass() cls.flavors_config = FlavorsConfig() cls.images_config = ImagesConfig() cls.servers_config = ServersConfig() cls.compute_endpoint = ComputeEndpointConfig() cls.flavor_ref = cls.flavors_config.primary_flavor cls.flavor_ref_alt = cls.flavors_config.secondary_flavor cls.image_ref = cls.images_config.primary_image cls.image_ref_alt = cls.images_config.secondary_image cls.disk_path = cls.servers_config.instance_disk_path cls.endpoint_config = UserAuthConfig() user_config = UserConfig() access_data = AuthProvider.get_access_data(cls.endpoint_config, user_config) compute_service = access_data.get_service( cls.compute_endpoint.compute_endpoint_name) url = compute_service.get_endpoint( cls.compute_endpoint.region).public_url cls.flavors_client = FlavorsClient(url, access_data.token.id_, 'json', 'json') cls.servers_client = ServersClient(url, access_data.token.id_, 'json', 'json') cls.images_client = ImagesClient(url, access_data.token.id_, 'json', 'json') cls.keypairs_client = KeypairsClient(url, access_data.token.id_, 'json', 'json') cls.sec_groups_client = SecurityGroupsClient(url, access_data.token.id_, 'json', 'json') cls.rescue_client = RescueClient(url, access_data.token.id_, 'json', 'json') cls.server_behaviors = ServerBehaviors(cls.servers_client, cls.servers_config, cls.images_config, cls.flavors_config) cls.image_behaviors = ImageBehaviors(cls.images_client, cls.servers_client, cls.images_config) cls.flavors_client.add_exception_handler(ExceptionHandler()) cls.resources = ResourcePool()
def setUpClass(cls): """ Perform actions that setup the necessary resources for testing. The following resources are created during this setup: - Creates an active server with metadata. - Creates an image with metadata and waits for active status. """ super(AuthorizationTests, cls).setUpClass() cls.metadata = { 'meta_key_1': 'meta_value_1', 'meta_key_2': 'meta_value_2' } cls.server = cls.server_behaviors.create_active_server( metadata=cls.metadata).entity cls.resources.add(cls.server.id, cls.servers_client.delete_server) image_name = rand_name('testimage') cls.image_meta = {'user_key1': 'value1', 'user_key2': 'value2'} image_resp = cls.servers_client.create_image(cls.server.id, image_name, cls.image_meta) assert image_resp.status_code == 202 cls.image_id = cls.parse_image_id(image_resp) cls.image_behaviors.wait_for_image_status(cls.image_id, NovaImageStatusTypes.ACTIVE) cls.resources.add(cls.image_id, cls.images_client.delete_image) secondary_user = ComputeAuthorizationConfig() compute_endpoint = ComputeEndpointConfig() auth_endpoint_config = UserAuthConfig() access_data = AuthProvider.get_access_data(auth_endpoint_config, secondary_user) compute_service = access_data.get_service( compute_endpoint.compute_endpoint_name) url = compute_service.get_endpoint(compute_endpoint.region).public_url cls.flavors_client = FlavorsClient(url, access_data.token.id_, 'json', 'json') cls.servers_client = ServersClient(url, access_data.token.id_, 'json', 'json') cls.images_client = ImagesClient(url, access_data.token.id_, 'json', 'json') cls.flavors_client.add_exception_handler(ExceptionHandler())
def tearDownClass(cls): super(ComputeFixture, cls).tearDownClass() cls.flavors_client.delete_exception_handler(ExceptionHandler()) cls.resources.release()
def setUpClass(cls): super(ComputeFixture, cls).setUpClass() cls.flavors_config = FlavorsConfig() cls.images_config = ImagesConfig() cls.servers_config = ServersConfig() cls.compute_endpoint = ComputeEndpointConfig() cls.marshalling = MarshallingConfig() cls.config_drive_config = ConfigDriveConfig() cls.cloud_init_config = CloudInitConfig() cls.flavor_ref = cls.flavors_config.primary_flavor cls.flavor_ref_alt = cls.flavors_config.secondary_flavor cls.image_ref = cls.images_config.primary_image cls.image_ref_alt = cls.images_config.secondary_image cls.disk_path = cls.servers_config.instance_disk_path cls.split_ephemeral_disk_enabled = \ cls.servers_config.split_ephemeral_disk_enabled cls.ephemeral_disk_max_size = \ cls.servers_config.ephemeral_disk_max_size cls.disk_format_type = cls.servers_config.disk_format_type cls.expected_networks = cls.servers_config.expected_networks cls.file_injection_enabled = \ cls.servers_config.personality_file_injection_enabled cls.endpoint_config = UserAuthConfig() cls.user_config = UserConfig() cls.access_data = AuthProvider.get_access_data(cls.endpoint_config, cls.user_config) # If authentication fails, halt if cls.access_data is None: cls.assertClassSetupFailure('Authentication failed.') compute_service = cls.access_data.get_service( cls.compute_endpoint.compute_endpoint_name) url = compute_service.get_endpoint( cls.compute_endpoint.region).public_url # If a url override was provided, use that value instead if cls.compute_endpoint.compute_endpoint_url: url = '{0}/{1}'.format(cls.compute_endpoint.compute_endpoint_url, cls.user_config.tenant_id) client_args = {'url': url, 'auth_token': cls.access_data.token.id_, 'serialize_format': cls.marshalling.serializer, 'deserialize_format': cls.marshalling.deserializer} cls.flavors_client = FlavorsClient(**client_args) cls.servers_client = ServersClient(**client_args) cls.boot_from_volume_client = VolumesBootClient(**client_args) cls.images_client = ImagesClient(**client_args) cls.keypairs_client = KeypairsClient(**client_args) cls.security_groups_client = SecurityGroupsClient(**client_args) cls.security_group_rule_client = SecurityGroupRulesClient( **client_args) cls.volume_attachments_client = VolumeAttachmentsAPIClient( url=url, auth_token=cls.access_data.token.id_, serialize_format=cls.marshalling.serializer, deserialize_format=cls.marshalling.deserializer) cls.rescue_client = RescueClient(**client_args) cls.vnc_client = VncConsoleClient(**client_args) cls.console_output_client = ConsoleOutputClient(**client_args) cls.limits_client = LimitsClient(**client_args) cls.server_behaviors = ServerBehaviors( servers_client=cls.servers_client, images_client=cls.images_client, servers_config=cls.servers_config, images_config=cls.images_config, flavors_config=cls.flavors_config) cls.volume_server_behaviors = VolumeServerBehaviors( servers_client=cls.servers_client, images_client=cls.images_client, servers_config=cls.servers_config, images_config=cls.images_config, flavors_config=cls.flavors_config, server_behaviors=cls.server_behaviors, boot_from_volume_client=cls.boot_from_volume_client) cls.image_behaviors = ImageBehaviors(cls.images_client, cls.servers_client, cls.images_config) cls.config_drive_behaviors = ConfigDriveBehaviors(cls.servers_client, cls.servers_config, cls.server_behaviors) cls.flavors_client.add_exception_handler(ExceptionHandler()) cls.resources = ResourcePool() cls.addClassCleanup(cls.resources.release)