Beispiel #1
0
    def test_init(self, mock_create):
        mock_create.return_value = self.conn
        kc = kv3.KeystoneClient({'k': 'v'})

        mock_create.assert_called_once_with({'k': 'v'})
        self.assertEqual(self.conn, kc.conn)
        self.assertEqual(self.conn.session, kc.session)
Beispiel #2
0
    def test_service_get(self, mock_create):
        self.conn.identity.services.return_value = ['fake_service']
        mock_create.return_value = self.conn
        kc = kv3.KeystoneClient({'k': 'v'})

        res = kc.service_get('FAKE_TYPE')

        self.assertEqual('fake_service', res)
        self.conn.identity.services.assert_called_once_with(type='FAKE_TYPE')
        self.conn.reset_mock()

        # with name
        res = kc.service_get('FAKE_TYPE', 'FAKE_NAME')

        self.assertEqual('fake_service', res)
        self.conn.identity.services.assert_called_once_with(type='FAKE_TYPE',
                                                            name='FAKE_NAME')
        self.conn.reset_mock()

        # returning none
        self.conn.identity.services.return_value = []

        res = kc.service_get('FAKE_TYPE')

        self.assertEqual(None, res)
        self.conn.identity.services.assert_called_once_with(type='FAKE_TYPE')
Beispiel #3
0
    def test_validate_regions(self, mock_create):
        self.conn.identity.regions.return_value = [
            {
                'id': 'R1',
                'parent_region_id': None
            },
            {
                'id': 'R2',
                'parent_region_id': None
            },
            {
                'id': 'R3',
                'parent_region_id': 'R1'
            },
        ]
        mock_create.return_value = self.conn

        kc = kv3.KeystoneClient({'k': 'v'})

        res = kc.validate_regions(['R1', 'R4'])

        self.assertIn('R1', res)
        self.assertNotIn('R4', res)

        res = kc.validate_regions([])
        self.assertEqual([], res)
Beispiel #4
0
    def test_trust_delete(self, mock_create):
        mock_create.return_value = self.conn
        kc = kv3.KeystoneClient({'k': 'v'})

        res = kc.trust_delete('value')

        self.assertEqual(None, res)
        self.conn.identity.delete_trust.assert_called_once_with(
            'value', ignore_missing=True)
Beispiel #5
0
    def test_trust_list(self, mock_create):
        self.conn.identity.trusts.return_value = ('foo', 'bar')
        mock_create.return_value = self.conn
        kc = kv3.KeystoneClient({'k': 'v'})

        res = kc.trust_list(p1='v1', p2='v2')

        self.assertEqual(['foo', 'bar'], res)
        self.conn.identity.trusts.assert_called_once_with(p1='v1', p2='v2')
Beispiel #6
0
    def test_region_list(self, mock_create):
        self.conn.identity.regions.return_value = ['fake_region']
        mock_create.return_value = self.conn
        kc = kv3.KeystoneClient({'k': 'v'})

        res = kc.region_list(p1='v1', p2='v2')

        self.assertEqual(['fake_region'], res)
        self.conn.identity.regions.assert_called_once_with(p1='v1', p2='v2')
Beispiel #7
0
    def test_user_get(self, mock_create):
        self.conn.identity.find_user.return_value = 'user1'
        mock_create.return_value = self.conn
        kc = kv3.KeystoneClient({'k': 'v'})

        res = kc.user_get('user_id_or_name')

        self.assertEqual('user1', res)
        self.conn.identity.find_user.assert_called_once_with(
            'user_id_or_name', ignore_missing=False)
Beispiel #8
0
    def test_service_get(self, mock_create):
        svc = mock.Mock()
        self.conn.identity.services.return_value = svc
        mock_create.return_value = self.conn

        kc = kv3.KeystoneClient({'k': 'v'})

        res = kc.service_get('clustering')

        self.assertEqual(svc, res)
        self.conn.identity.services.assert_called_once_with(type='clustering')
    def test_get_senlin_endpoint(self, mock_create):
        cfg.CONF.set_override('default_region_name',
                              'RegionN',
                              enforce_type=True)
        self.conn.session.get_endpoint.return_value = 'http://web.com:1234/v1'
        mock_create.return_value = self.conn
        kc = kv3.KeystoneClient({'k': 'v'})

        res = kc.get_senlin_endpoint()

        self.assertEqual('http://web.com:1234/v1', res)
        self.conn.session.get_endpoint.assert_called_once_with(
            service_type='clustering', interface='public', region='RegionN')
Beispiel #10
0
    def test_trust_create(self, mock_create):
        self.conn.identity.create_trust.return_value = 'new_trust'
        mock_create.return_value = self.conn
        kc = kv3.KeystoneClient({'k': 'v'})

        # default
        res = kc.trust_create('ID_JOHN', 'ID_DOE', 'PROJECT_ID')

        self.assertEqual('new_trust', res)
        self.conn.identity.create_trust.assert_called_once_with(
            trustor_user_id='ID_JOHN',
            trustee_user_id='ID_DOE',
            project_id='PROJECT_ID',
            impersonation=True,
            allow_redelegation=True,
            roles=[])
        self.conn.reset_mock()

        # with roles
        res = kc.trust_create('ID_JOHN', 'ID_DOE', 'PROJECT_ID', ['r1', 'r2'])

        self.assertEqual('new_trust', res)
        self.conn.identity.create_trust.assert_called_once_with(
            trustor_user_id='ID_JOHN',
            trustee_user_id='ID_DOE',
            project_id='PROJECT_ID',
            impersonation=True,
            allow_redelegation=True,
            roles=[{
                'name': 'r1'
            }, {
                'name': 'r2'
            }])
        self.conn.reset_mock()

        # impersonation
        res = kc.trust_create('ID_JOHN',
                              'ID_DOE',
                              'PROJECT_ID',
                              impersonation=False)

        self.assertEqual('new_trust', res)
        self.conn.identity.create_trust.assert_called_once_with(
            trustor_user_id='ID_JOHN',
            trustee_user_id='ID_DOE',
            project_id='PROJECT_ID',
            impersonation=False,
            allow_redelegation=True,
            roles=[])
        self.conn.reset_mock()
Beispiel #11
0
    def test_trust_get_by_trustor(self, mock_create):
        trust1 = mock.Mock()
        trust1.trustee_user_id = 'USER_A_ID'
        trust1.project_id = 'PROJECT_ID_1'

        trust2 = mock.Mock()
        trust2.trustee_user_id = 'USER_B_ID'
        trust2.project_id = 'PROJECT_ID_1'

        trust3 = mock.Mock()
        trust3.trustee_user_id = 'USER_A_ID'
        trust3.project_id = 'PROJECT_ID_2'

        self.conn.identity.trusts.return_value = [trust1, trust2, trust3]
        mock_create.return_value = self.conn
        kc = kv3.KeystoneClient({'k': 'v'})

        # no trustee/projec filter, matching 1st
        res = kc.trust_get_by_trustor('USER_A')
        self.assertEqual(trust1, res)

        # trustee specified, matching 2nd
        res = kc.trust_get_by_trustor('USER_A', 'USER_B_ID')
        self.assertEqual(trust2, res)

        # project specified, matching 3rd
        res = kc.trust_get_by_trustor('USER_A', project='PROJECT_ID_2')
        self.assertEqual(trust3, res)

        # both trustee and project specified, matching 3rd
        res = kc.trust_get_by_trustor('USER_A', 'USER_A_ID', 'PROJECT_ID_2')
        self.assertEqual(trust3, res)

        # No matching record found
        res = kc.trust_get_by_trustor('USER_A', 'USER_C_ID')
        self.assertEqual(None, res)

        get_calls = [mock.call(trustor_user_id='USER_A')]
        self.conn.identity.trusts.assert_has_calls(get_calls * 5)
Beispiel #12
0
    def test_endpoint_get(self, mock_create):
        self.conn.identity.endpoints.return_value = ['fake_endpoint']
        mock_create.return_value = self.conn
        kc = kv3.KeystoneClient({'k': 'v'})

        res = kc.endpoint_get('FAKE_ID')

        self.assertEqual('fake_endpoint', res)
        self.conn.identity.endpoints.assert_called_once_with(
            service_id='FAKE_ID')
        self.conn.reset_mock()

        # with region
        res = kc.endpoint_get('FAKE_ID', 'FAKE_REGION')

        self.assertEqual('fake_endpoint', res)
        self.conn.identity.endpoints.assert_called_once_with(
            service_id='FAKE_ID', region='FAKE_REGION')
        self.conn.reset_mock()

        # with interface
        res = kc.endpoint_get('FAKE_ID', None, 'public')

        self.assertEqual('fake_endpoint', res)
        self.conn.identity.endpoints.assert_called_once_with(
            service_id='FAKE_ID', interface='public')
        self.conn.reset_mock()

        # returning None
        self.conn.identity.endpoints.return_value = []

        res = kc.endpoint_get('FAKE_ID')

        self.assertEqual(None, res)
        self.conn.identity.endpoints.assert_called_once_with(
            service_id='FAKE_ID')