Esempio n. 1
0
 def test_regions_with_same_name(self):
     self.mock_object(client.httpclient, 'HTTPClient')
     catalog = {
         'sharev2': [
             {'region': 'FirstRegion', 'publicURL': 'http://1.2.3.4'},
             {'region': 'secondregion', 'publicURL': 'http://1.1.1.1'},
             {'region': 'SecondRegion', 'publicURL': 'http://2.2.2.2'},
         ],
     }
     kc = client.Client._get_keystone_client.return_value
     kc.service_catalog = mock.Mock()
     kc.service_catalog.get_endpoints = mock.Mock(return_value=catalog)
     c = client.Client(api_version=manilaclient.API_MIN_VERSION,
                       service_type='sharev2',
                       region_name='SecondRegion')
     self.assertTrue(client.Client._get_keystone_client.called)
     kc.service_catalog.get_endpoints.assert_called_with('sharev2')
     client.httpclient.HTTPClient.assert_called_with(
         'http://2.2.2.2',
         mock.ANY,
         'python-manilaclient',
         insecure=False,
         cacert=None,
         timeout=None,
         retries=None,
         http_log_debug=False,
         api_version=manilaclient.API_MIN_VERSION)
     self.assertIsNotNone(c.client)
Esempio n. 2
0
    def decorator_method(*args, **kwargs):
        '''
        Authenticate request and format return data
        '''
        connection_args = {'profile': kwargs.pop('profile', None)}
        nkwargs = {}
        for kwarg in kwargs:
            if 'connection_' in kwarg:
                connection_args.update({kwarg: kwargs[kwarg]})
            elif '__' not in kwarg:
                nkwargs.update({kwarg: kwargs[kwarg]})
        kstone = __salt__['keystone.auth'](**connection_args)
        #        import rpdb; rpdb.set_trace()

        if kwargs.get('connection_endpoint_type') == None:
            endpoint_type = 'internalURL'
        else:
            endpoint_type = kwargs.get('connection_endpoint_type')

        endpoint = kstone.service_catalog.url_for(service_type='sharev2',
                                                  endpoint_type=endpoint_type)

        manila = client.Client('2',
                               service_catalog_url=endpoint,
                               session=kstone.session)
        return_data = func_name(manila, *args, **nkwargs)

        return return_data
Esempio n. 3
0
    def test_auth_via_token(self):
        base_url = uuid.uuid4().hex

        c = client.Client(input_auth_token='token',
                          service_catalog_url=base_url,
                          api_version=manilaclient.API_MAX_VERSION)

        self.assertIsNotNone(c.client)
        self.assertIsNone(c.keystone_client)
    def test_auth_via_token(self):
        base_url = uuidutils.generate_uuid(dashed=False)

        c = client.Client(input_auth_token='token',
                          service_catalog_url=base_url,
                          api_version=manilaclient.API_MAX_VERSION)

        self.assertIsNotNone(c.client)
        self.assertIsNone(c.keystone_client)
Esempio n. 5
0
    def test_adapter_properties(self):
        # sample of properties, there are many more
        retries = 3
        base_url = uuid.uuid4().hex

        s = client.session.Session()
        c = client.Client(session=s,
                          api_version=manilaclient.API_MAX_VERSION,
                          service_catalog_url=base_url, retries=retries,
                          input_auth_token='token')

        self.assertEqual(base_url, c.client.endpoint_url)
        self.assertEqual(retries, c.client.retries)
Esempio n. 6
0
    def test_client_init_no_session_no_auth_token_v2(self, kwargs):
        self.mock_object(client.httpclient, 'HTTPClient')
        self.mock_object(client.ks_client, 'Client')
        self.mock_object(client.discover, 'Discover')
        self.mock_object(client.session, 'Session')
        client_args = self._get_client_args(**kwargs)
        client_args['api_version'] = manilaclient.API_MIN_VERSION
        self.auth_url = client_args['auth_url']
        catalog = {
            'share': [
                {'region': 'SecondRegion', 'publicUrl': 'http://4.4.4.4'},
            ],
            'sharev2': [
                {'region': 'FirstRegion', 'publicUrl': 'http://1.1.1.1'},
                {'region': 'secondregion', 'publicUrl': 'http://2.2.2.2'},
                {'region': 'SecondRegion', 'internalUrl': 'http://3.3.3.1',
                 'publicUrl': 'http://3.3.3.3', 'adminUrl': 'http://3.3.3.2'},
            ],
        }
        client.discover.Discover.return_value.url_for.side_effect = (
            lambda v: 'url_v2.0' if v == 'v2.0' else None)
        client.ks_client.Client.return_value.auth_token.return_value = (
            'fake_token')
        mocked_ks_client = client.ks_client.Client.return_value
        mocked_ks_client.service_catalog.get_endpoints.return_value = catalog

        client.Client(**client_args)

        client.httpclient.HTTPClient.assert_called_with(
            'http://3.3.3.3', mock.ANY, 'python-manilaclient', insecure=False,
            cacert=None, timeout=None, retries=None, http_log_debug=False,
            api_version=manilaclient.API_MIN_VERSION)
        client.ks_client.Client.assert_called_with(
            session=mock.ANY, version=(2, 0), auth_url='url_v2.0',
            username=client_args['username'],
            password=client_args.get('password', client_args.get('api_key')),
            tenant_id=client_args.get('tenant_id',
                                      client_args.get('project_id')),
            tenant_name=client_args['project_name'],
            region_name=client_args['region_name'], cert=client_args['cert'],
            use_keyring=False, force_new_token=False, stale_duration=300)
        mocked_ks_client.service_catalog.get_endpoints.assert_called_with(
            client_args['service_type'])
        mocked_ks_client.authenticate.assert_called_with()
Esempio n. 7
0
 def test_valid_region_name_v1(self):
     self.mock_object(client.httpclient, 'HTTPClient')
     kc = client.Client._get_keystone_client.return_value
     kc.service_catalog = mock.Mock()
     kc.service_catalog.get_endpoints = mock.Mock(return_value=self.catalog)
     c = client.Client(api_version=manilaclient.API_DEPRECATED_VERSION,
                       service_type="share",
                       region_name='TestRegion')
     self.assertTrue(client.Client._get_keystone_client.called)
     kc.service_catalog.get_endpoints.assert_called_with('share')
     client.httpclient.HTTPClient.assert_called_with(
         'http://1.2.3.4',
         mock.ANY,
         'python-manilaclient',
         insecure=False,
         cacert=None,
         timeout=None,
         retries=None,
         http_log_debug=False,
         api_version=manilaclient.API_DEPRECATED_VERSION)
     self.assertIsNotNone(c.client)
def get_manila_client(**kwargs):
    return manilaclient.Client(input_auth_token='token',
                               service_catalog_url='http://127.0.0.1:8786')
Esempio n. 9
0
    def test_client_init_no_session_no_auth_token_v3(self, kwargs):
        def fake_url_for(version):
            if version == 'v3.0':
                return 'url_v3.0'
            elif version == 'v2.0' and self.auth_url == 'both':
                return 'url_v2.0'
            else:
                return None

        self.mock_object(client.httpclient, 'HTTPClient')
        self.mock_object(client.ks_client, 'Client')
        self.mock_object(client.discover, 'Discover')
        self.mock_object(client.session, 'Session')
        client_args = self._get_client_args(**kwargs)
        client_args['api_version'] = manilaclient.API_MIN_VERSION
        self.auth_url = client_args['auth_url']
        catalog = {
            'share': [
                {'region': 'SecondRegion', 'region_id': 'SecondRegion',
                 'url': 'http://4.4.4.4', 'interface': 'public',
                 },
            ],
            'sharev2': [
                {'region': 'FirstRegion', 'interface': 'public',
                 'region_id': 'SecondRegion', 'url': 'http://1.1.1.1'},
                {'region': 'secondregion', 'interface': 'public',
                 'region_id': 'SecondRegion', 'url': 'http://2.2.2.2'},
                {'region': 'SecondRegion', 'interface': 'internal',
                 'region_id': 'SecondRegion', 'url': 'http://3.3.3.1'},
                {'region': 'SecondRegion', 'interface': 'public',
                 'region_id': 'SecondRegion', 'url': 'http://3.3.3.3'},
                {'region': 'SecondRegion', 'interface': 'admin',
                 'region_id': 'SecondRegion', 'url': 'http://3.3.3.2'},
            ],
        }
        client.discover.Discover.return_value.url_for.side_effect = (
            fake_url_for)
        client.ks_client.Client.return_value.auth_token.return_value = (
            'fake_token')
        mocked_ks_client = client.ks_client.Client.return_value
        mocked_ks_client.service_catalog.get_endpoints.return_value = catalog

        client.Client(**client_args)

        client.httpclient.HTTPClient.assert_called_with(
            'http://3.3.3.3', mock.ANY, 'python-manilaclient', insecure=False,
            cacert=None, timeout=None, retries=None, http_log_debug=False,
            api_version=manilaclient.API_MIN_VERSION)

        client.ks_client.Client.assert_called_with(
            session=mock.ANY, version=(3, 0), auth_url='url_v3.0',
            username=client_args['username'],
            password=client_args.get('password', client_args.get('api_key')),
            user_id=client_args['user_id'],
            user_domain_name=client_args['user_domain_name'],
            user_domain_id=client_args['user_domain_id'],
            project_id=client_args.get('tenant_id',
                                       client_args.get('project_id')),
            project_name=client_args['project_name'],
            project_domain_name=client_args['project_domain_name'],
            project_domain_id=client_args['project_domain_id'],
            region_name=client_args['region_name'],
        )
        mocked_ks_client.service_catalog.get_endpoints.assert_called_with(
            client_args['service_type'])
        mocked_ks_client.authenticate.assert_called_with()