예제 #1
0
    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)
예제 #3
0
    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()
예제 #4
0
 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()
예제 #5
0
파일: test_aws_stack.py 프로젝트: aawm/heat
 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()
예제 #6
0
 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)
예제 #7
0
 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)
예제 #8
0
    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})
예제 #9
0
 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)
예제 #10
0
 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)
예제 #11
0
    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})
예제 #12
0
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__)