def test_base_resources_integration(self): """Define test for base resources interation from core porjects The alternative scenario is the following: 1. Create a stack with basic resources from core projects. 2. Check that all stack resources are created successfully. 3. Wait for deployment. 4. Check that stack was created. 5. Check stack outputs. """ self.private_net_name = test.rand_name('heat-net') parameters = { 'key_name': test.rand_name('heat-key'), 'flavor': self.conf.instance_type, 'image': self.conf.image_ref, 'vol_size': self.conf.volume_size, 'private_net_name': self.private_net_name } env_files, env = template_utils.process_environment_and_files( self.conf.boot_config_env) # Launch stack self.stack_identifier = self.launch_stack( template_name='test_base_resources.yaml', parameters=parameters, expected_status=None, environment=env ) # Check stack self.check_stack()
def test_assign_user_role_with_domain(self): # Setup admin clients self.setup_clients_for_admin() parms = { 'user_name': test.rand_name('test-user-domain-user-name'), 'project_name': test.rand_name('test-user-domain-project'), 'domain_name': test.rand_name('test-user-domain-domain-name') } stack_identifier_create_user = self.stack_create(template=create_user, parameters=parms) self.stack_create(template=assign_user_roles, parameters=parms) project_name, user_name = self.get_user_and_project_outputs( stack_identifier_create_user) self.assertEqual(project_name, project_name) self.assertEqual(user_name, user_name) users = self.keystone_client.users.list() projects = self.keystone_client.projects.list() user_id = [x for x in users if x.name == user_name][0].id project_id = [x for x in projects if x.name == project_name][0].id self.assertIsNotNone( self.keystone_client.role_assignments.list(user=user_id, project=project_id)) # Disable domain so stack can be deleted self.update_stack(stack_identifier=stack_identifier_create_user, template=disable_domain, parameters=parms)
def test_base_resources_integration(self): """Define test for base resources interation from core porjects The alternative scenario is the following: 1. Create a stack with basic resources from core projects. 2. Check that all stack resources are created successfully. 3. Wait for deployment. 4. Check that stack was created. 5. Check stack outputs. """ self.private_net_name = test.rand_name('heat-net') parameters = { 'key_name': test.rand_name('heat-key'), 'flavor': self.conf.instance_type, 'image': self.conf.image_ref, 'vol_size': self.conf.volume_size, 'private_net_name': self.private_net_name } env_files, env = template_utils.process_environment_and_files( self.conf.boot_config_env) # Launch stack self.stack_identifier = self.launch_stack( template_name='test_base_resources.yaml', parameters=parameters, expected_status=None, environment=env) # Check stack self.check_stack()
def setUp(self): super(AwsStackTest, self).setUp() self.client = self.orchestration_client self.object_container_name = AwsStackTest.__name__ self.project_id = self.identity_client.auth_ref.project_id self.object_client.put_container(self.object_container_name) self.nested_name = '%s.yaml' % test.rand_name()
def setUp(self): super(AwsStackTest, self).setUp() self.client = self.orchestration_client self.object_container_name = AwsStackTest.__name__ self.project_id = self.identity_client.auth_ref.project_id self.object_client.put_container(self.object_container_name) self.nested_name = '%s.yaml' % test.rand_name()
def setUp(self): super(AwsStackTest, self).setUp() self.object_container_name = test.rand_name() self.project_id = self.identity_client.project_id self.swift_key = hashlib.sha224(str( random.getrandbits(256))).hexdigest()[:32] key_header = 'x-container-meta-temp-url-key' self.object_client.put_container(self.object_container_name, {key_header: self.swift_key}) self.addCleanup(self.object_client.delete_container, self.object_container_name)
def setUp(self): super(AwsStackTest, self).setUp() self.object_container_name = test.rand_name() self.project_id = self.identity_client.project_id self.swift_key = hashlib.sha224( str(random.getrandbits(256))).hexdigest()[:32] key_header = 'x-container-meta-temp-url-key' self.object_client.put_container(self.object_container_name, {key_header: self.swift_key}) self.addCleanup(self.object_client.delete_container, self.object_container_name)
def test_update_on_failed_create(self): # create a stack with "server" dependent on "keypair", but # keypair fails, so "server" is not created properly. # We then fix the template and it should succeed. broken_templ = self.main_template.replace("replace-this", self.keypair_name) stack_identifier = self.stack_create( template=broken_templ, files={"server_fail.yaml": self.nested_templ}, expected_status="CREATE_FAILED" ) fixed_templ = self.main_template.replace("replace-this", test.rand_name()) self.update_stack(stack_identifier, fixed_templ, files={"server_fail.yaml": self.nested_templ})
def setUp(self): super(AwsStackTest, self).setUp() if not self.is_service_available('object-store'): self.skipTest('object-store service not available, skipping') self.object_container_name = test.rand_name() self.project_id = self.identity_client.project_id self.swift_key = hashlib.sha224( str(random.getrandbits(256)).encode('ascii')).hexdigest()[:32] key_header = 'x-container-meta-temp-url-key' self.object_client.put_container(self.object_container_name, {key_header: self.swift_key}) self.addCleanup(self.object_client.delete_container, self.object_container_name)
def setUp(self): super(AwsStackTest, self).setUp() if not self.is_service_available('object-store'): self.skipTest('object-store service not available, skipping') self.object_container_name = test.rand_name() self.project_id = self.identity_client.project_id self.swift_key = hashlib.sha224( str(random.getrandbits(256)).encode('ascii')).hexdigest()[:32] key_header = 'x-container-meta-temp-url-key' self.object_client.put_container(self.object_container_name, {key_header: self.swift_key}) self.addCleanup(self.object_client.delete_container, self.object_container_name)
def test_update_on_failed_create(self): # create a stack with "server" dependent on "keypair", but # keypair fails, so "server" is not created properly. # We then fix the template and it should succeed. broken_templ = self.main_template.replace('replace-this', self.keypair_name) stack_identifier = self.stack_create( template=broken_templ, files={'server_fail.yaml': self.nested_templ}, expected_status='CREATE_FAILED') fixed_templ = self.main_template.replace('replace-this', test.rand_name()) self.update_stack(stack_identifier, fixed_templ, files={'server_fail.yaml': self.nested_templ})
def load_tests(loader, tests, pattern): """Provide a TestSuite to the discovery process.""" test_dir = os.path.join(os.path.dirname(__file__), TESTS_DIR) conf = config.CONF.heat_plugin if conf.auth_url is None: # It's not configured, let's not load tests return manager = clients.ClientManager(conf) endpoint = manager.identity_client.get_endpoint_url( 'orchestration', conf.region) host = urlparse.urlparse(endpoint).hostname os.environ['OS_TOKEN'] = manager.identity_client.auth_token os.environ['PREFIX'] = test.rand_name('api') return driver.build_tests(test_dir, loader, host=host, url=endpoint, test_loader_name=__name__)