Esempio n. 1
0
    def test_update(self):
        fakes.script_keystone_client()
        resp = fakes.FakeHTTPResponse(202,
            'Accepted',
            {},
            'The request is accepted for processing.')
        v1client.Client.json_request('PUT', '/stacks/teststack2/2',
                          body=mox.IgnoreArg()).AndReturn((resp, None))
        fakes.script_heat_list()

        self.m.ReplayAll()

        template_file = os.path.join(TEST_VAR_DIR, 'minimal.template')
        create_text = self.shell('update teststack2/2 '
            '--template-file=%s '
            '--parameters="InstanceType=m1.large;DBUsername=wp;'
            'DBPassword=verybadpassword;KeyName=heat_key;'
            'LinuxDistribution=F17"' % template_file)

        required = [
            'Name/ID',
            'teststack/1'
        ]
        for r in required:
            self.assertRegexpMatches(create_text, r)

        self.m.VerifyAll()
Esempio n. 2
0
    def test_create_object(self):

        fakes.script_keystone_client()
        template_file = os.path.join(TEST_VAR_DIR, 'minimal.template')
        template_data = open(template_file).read()
        v1client.Client.raw_request('GET',
                          'http://no.where/container/minimal.template',
                          ).AndReturn(template_data)

        resp = fakes.FakeHTTPResponse(201,
            'Created',
            {'location': 'http://no.where/v1/tenant_id/stacks/teststack2/2'},
            None)
        v1client.Client.json_request('POST', '/stacks',
                          body=mox.IgnoreArg()).AndReturn((resp, None))

        fakes.script_heat_list()

        self.m.ReplayAll()

        create_text = self.shell('create teststack2 '
            '--template-object=http://no.where/container/minimal.template '
            '--parameters="InstanceType=m1.large;DBUsername=wp;'
            'DBPassword=verybadpassword;KeyName=heat_key;'
            'LinuxDistribution=F17"')

        required = [
            'Name/ID',
            'teststack2/2'
        ]
        for r in required:
            self.assertRegexpMatches(create_text, r)

        self.m.VerifyAll()
Esempio n. 3
0
    def test_create_url(self):

        fakes.script_keystone_client()
        resp = fakes.FakeHTTPResponse(201,
            'Created',
            {'location': 'http://no.where/v1/tenant_id/stacks/teststack2/2'},
            None)
        v1client.Client.json_request('POST', '/stacks',
                          body=mox.IgnoreArg()).AndReturn((resp, None))
        fakes.script_heat_list()

        self.m.ReplayAll()

        create_text = self.shell('create teststack '
            '--template-url=http://no.where/minimal.template '
            '--parameters="InstanceType=m1.large;DBUsername=wp;'
            'DBPassword=verybadpassword;KeyName=heat_key;'
            'LinuxDistribution=F17"')

        required = [
            'Name/ID',
            'teststack2/2'
        ]
        for r in required:
            self.assertRegexpMatches(create_text, r)

        self.m.VerifyAll()
Esempio n. 4
0
    def test_describe(self):
        fakes.script_keystone_client()
        resp_dict = {"stack": {
                "id": "1",
                "stack_name": "teststack",
                "stack_status": 'CREATE_COMPLETE',
                "creation_time": "2012-10-25T01:58:47Z"
            }
        }
        resp = fakes.FakeHTTPResponse(200,
            'OK',
            {'content-type': 'application/json'},
            json.dumps(resp_dict))
        v1client.Client.json_request('GET',
            '/stacks/teststack/1').AndReturn((resp, resp_dict))

        self.m.ReplayAll()

        list_text = self.shell('describe teststack/1')

        required = [
            'id',
            'stack_name',
            'stack_status',
            'creation_time',
            'teststack',
            'CREATE_COMPLETE',
            '2012-10-25T01:58:47Z'
        ]
        for r in required:
            self.assertRegexpMatches(list_text, r)

        self.m.VerifyAll()
Esempio n. 5
0
    def test_list(self):
        fakes.script_keystone_client()
        fakes.script_heat_list()

        self.m.ReplayAll()

        list_text = self.shell('list')

        required = [
            'ID',
            'Status',
            'Created',
            'teststack/1',
            'CREATE_COMPLETE',
            'IN_PROGRESS',
        ]
        for r in required:
            self.assertRegexpMatches(list_text, r)

        self.m.VerifyAll()
Esempio n. 6
0
    def test_failed_auth(self):
        m = mox.Mox()
        m.StubOutWithMock(ksclient, 'Client')
        m.StubOutWithMock(v1client.Client, 'json_request')
        fakes.script_keystone_client()
        v1client.Client.json_request('GET',
            '/stacks?limit=20').AndRaise(exc.Unauthorized)

        m.ReplayAll()
        _old_env, os.environ = os.environ, {
            'OS_USERNAME': '******',
            'OS_PASSWORD': '******',
            'OS_TENANT_NAME': 'tenant_name',
            'OS_AUTH_URL': 'http://no.where',
        }
        self.shell_error('list', 'Invalid OpenStack Identity credentials.')

        m.VerifyAll()

        os.environ = _old_env
        m.UnsetStubs()
Esempio n. 7
0
    def test_delete(self):
        fakes.script_keystone_client()
        resp = fakes.FakeHTTPResponse(204,
            'No Content',
            {},
            None)
        v1client.Client.raw_request('DELETE', '/stacks/teststack2/2',
                          ).AndReturn((resp, None))
        fakes.script_heat_list()

        self.m.ReplayAll()

        create_text = self.shell('delete teststack2/2')

        required = [
            'Name/ID',
            'teststack/1'
        ]
        for r in required:
            self.assertRegexpMatches(create_text, r)

        self.m.VerifyAll()
Esempio n. 8
0
    def test_create_validation(self):
        m = mox.Mox()
        m.StubOutWithMock(ksclient, 'Client')
        m.StubOutWithMock(v1client.Client, 'json_request')
        fakes.script_keystone_client()

        m.ReplayAll()
        _old_env, os.environ = os.environ, {
            'OS_USERNAME': '******',
            'OS_PASSWORD': '******',
            'OS_TENANT_NAME': 'tenant_name',
            'OS_AUTH_URL': 'http://no.where',
        }
        self.shell_error('create teststack '
            '--parameters="InstanceType=m1.large;DBUsername=wp;'
            'DBPassword=verybadpassword;KeyName=heat_key;'
            'LinuxDistribution=F17"',
            'Need to specify exactly one of')

        m.VerifyAll()

        os.environ = _old_env
        m.UnsetStubs()