Exemple #1
0
    def test_endpoint_type(self):
        resources = copy.deepcopy(KS_TOKEN_RESULT)
        endpoints = resources['access']['serviceCatalog'][0]['endpoints'][0]
        endpoints['internalURL'] = 'internal'
        endpoints['adminURL'] = 'admin'
        endpoints['publicURL'] = 'public'

        # Test default behavior is to choose public.
        self.client = client.HTTPClient(username=USERNAME,
                                        tenant_name=TENANT_NAME,
                                        password=PASSWORD,
                                        auth_url=AUTH_URL,
                                        region_name=REGION)

        self.client._extract_service_catalog(resources)
        self.assertEqual(self.client.endpoint_url, 'public')

        # Test admin url
        self.client = client.HTTPClient(username=USERNAME,
                                        tenant_name=TENANT_NAME,
                                        password=PASSWORD,
                                        auth_url=AUTH_URL,
                                        region_name=REGION,
                                        endpoint_type='adminURL')

        self.client._extract_service_catalog(resources)
        self.assertEqual(self.client.endpoint_url, 'admin')

        # Test public url
        self.client = client.HTTPClient(username=USERNAME,
                                        tenant_name=TENANT_NAME,
                                        password=PASSWORD,
                                        auth_url=AUTH_URL,
                                        region_name=REGION,
                                        endpoint_type='publicURL')

        self.client._extract_service_catalog(resources)
        self.assertEqual(self.client.endpoint_url, 'public')

        # Test internal url
        self.client = client.HTTPClient(username=USERNAME,
                                        tenant_name=TENANT_NAME,
                                        password=PASSWORD,
                                        auth_url=AUTH_URL,
                                        region_name=REGION,
                                        endpoint_type='internalURL')

        self.client._extract_service_catalog(resources)
        self.assertEqual(self.client.endpoint_url, 'internal')

        # Test url that isn't found in the service catalog
        self.client = client.HTTPClient(username=USERNAME,
                                        tenant_name=TENANT_NAME,
                                        password=PASSWORD,
                                        auth_url=AUTH_URL,
                                        region_name=REGION,
                                        endpoint_type='privateURL')

        self.assertRaises(k_exceptions.EndpointNotFound,
                          self.client._extract_service_catalog, resources)
Exemple #2
0
 def setUp(self):
     """Prepare the test environment."""
     super(CLITestAuthKeystoneWithId, self).setUp()
     self.client = client.HTTPClient(user_id=USER_ID,
                                     tenant_id=TENANT_ID,
                                     password=PASSWORD,
                                     auth_url=AUTH_URL,
                                     region_name=REGION)
Exemple #3
0
 def setUp(self):
     """Prepare the test environment."""
     super(CLITestAuthKeystone, self).setUp()
     self.client = client.HTTPClient(username=USERNAME,
                                     tenant_name=TENANT_NAME,
                                     password=PASSWORD,
                                     auth_url=AUTH_URL,
                                     region_name=REGION)
     self.addCleanup(mock.patch.stopall)
Exemple #4
0
 def __init__(self, **kwargs):
     """Initialize a new client for the Tacker v1.0 API."""
     super(Client, self).__init__()
     self.httpclient = client.HTTPClient(**kwargs)
     self.version = '1.0'
     self.format = 'json'
     self.action_prefix = "/v%s" % (self.version)
     self.retries = 0
     self.retry_interval = 1
Exemple #5
0
 def test_proper_exception_is_raised_when_cert_validation_fails(self,
                                                                mock_req):
     http = client.HTTPClient(token=AUTH_TOKEN, endpoint_url=END_URL)
     mock_req.side_effect = requests.exceptions.SSLError()
     self.assertRaises(
         exceptions.SslCertificateValidationError,
         http._cs_request,
         URL, METHOD
     )
Exemple #6
0
 def setUp(self):
     """Prepare the test environment."""
     super(CLITestAuthNoAuth, self).setUp()
     self.client = client.HTTPClient(username=USERNAME,
                                     tenant_name=TENANT_NAME,
                                     password=PASSWORD,
                                     endpoint_url=ENDPOINT_URL,
                                     auth_strategy=NOAUTH,
                                     region_name=REGION)
     self.addCleanup(mock.patch.stopall)
Exemple #7
0
 def setUp(self):
     """Prepare the test environment."""
     super(CLITestAuthKeystone, self).setUp()
     self.mox = mox.Mox()
     self.client = client.HTTPClient(username=USERNAME,
                                     tenant_name=TENANT_NAME,
                                     password=PASSWORD,
                                     auth_url=AUTH_URL,
                                     region_name=REGION)
     self.addCleanup(self.mox.VerifyAll)
     self.addCleanup(self.mox.UnsetStubs)
Exemple #8
0
 def test_reused_token_get_auth_info(self):
     """Test that Client.get_auth_info() works even if client was
        instantiated with predefined token.
     """
     client_ = client.HTTPClient(username=USERNAME,
                                 tenant_name=TENANT_NAME,
                                 token=TOKEN,
                                 password=PASSWORD,
                                 auth_url=AUTH_URL,
                                 region_name=REGION)
     expected = {'auth_token': TOKEN,
                 'auth_tenant_id': None,
                 'auth_user_id': None,
                 'endpoint_url': self.client.endpoint_url}
     self.assertEqual(client_.get_auth_info(), expected)
Exemple #9
0
    def test_get_endpoint_url_other(self, mock_request):
        self.client = client.HTTPClient(
            username=USERNAME, tenant_name=TENANT_NAME, password=PASSWORD,
            auth_url=AUTH_URL, region_name=REGION, endpoint_type='otherURL')

        self.client.auth_token = TOKEN
        mock_request.return_value = (resp_200, json.dumps(ENDPOINTS_RESULT))
        self.assertRaises(exceptions.EndpointTypeNotFound,
                          self.client.do_request,
                          '/resource',
                          'GET')
        expected_url = AUTH_URL + '/tokens/%s/endpoints' % TOKEN
        headers = {'User-Agent': 'python-tackerclient'}
        mock_request.assert_called_with(expected_url, 'GET',
                                        headers=headers)
Exemple #10
0
    def test_use_given_endpoint_url(self, mock_request):
        self.client = client.HTTPClient(
            username=USERNAME, tenant_name=TENANT_NAME, password=PASSWORD,
            auth_url=AUTH_URL, region_name=REGION,
            endpoint_url=ENDPOINT_OVERRIDE)
        self.assertEqual(self.client.endpoint_url, ENDPOINT_OVERRIDE)

        self.client.auth_token = TOKEN
        mock_request.return_value = (resp_200, '')

        self.client.do_request('/resource', 'GET',
                               headers=headers)
        mock_request.assert_called_with(
            ENDPOINT_OVERRIDE + '/resource', 'GET',
            headers=headers)
        self.assertEqual(self.client.endpoint_url, ENDPOINT_OVERRIDE)
Exemple #11
0
    def test_get_endpoint_url_other(self):
        self.client = client.HTTPClient(
            username=USERNAME, tenant_name=TENANT_NAME, password=PASSWORD,
            auth_url=AUTH_URL, region_name=REGION, endpoint_type='otherURL')
        self.mox.StubOutWithMock(self.client, "request")

        self.client.auth_token = TOKEN
        res200 = get_response(200)

        self.client.request(
            mox.StrContains(AUTH_URL + '/tokens/%s/endpoints' % TOKEN), 'GET',
            headers=mox.IsA(dict)
        ).AndReturn((res200, json.dumps(ENDPOINTS_RESULT)))
        self.mox.ReplayAll()
        self.assertRaises(exceptions.EndpointTypeNotFound,
                          self.client.do_request,
                          '/resource',
                          'GET')
Exemple #12
0
    def test_use_given_endpoint_url(self):
        self.client = client.HTTPClient(
            username=USERNAME, tenant_name=TENANT_NAME, password=PASSWORD,
            auth_url=AUTH_URL, region_name=REGION,
            endpoint_url=ENDPOINT_OVERRIDE)
        self.assertEqual(self.client.endpoint_url, ENDPOINT_OVERRIDE)

        self.mox.StubOutWithMock(self.client, "request")

        self.client.auth_token = TOKEN
        res200 = get_response(200)

        self.client.request(
            mox.StrContains(ENDPOINT_OVERRIDE + '/resource'), 'GET',
            headers=mox.ContainsKeyValue('X-Auth-Token', TOKEN)
        ).AndReturn((res200, ''))
        self.mox.ReplayAll()
        self.client.do_request('/resource', 'GET')
        self.assertEqual(self.client.endpoint_url, ENDPOINT_OVERRIDE)
 def initialize(self):
     if not self._url:
         httpclient = client.HTTPClient(
             username=self._username,
             user_id=self._user_id,
             tenant_name=self._tenant_name,
             tenant_id=self._tenant_id,
             password=self._password,
             region_name=self._region_name,
             auth_url=self._auth_url,
             service_type=self._service_type,
             endpoint_type=self._endpoint_type,
             insecure=self._insecure,
             ca_cert=self._ca_cert,
             log_credentials=self._log_credentials)
         httpclient.authenticate()
         # Populate other password flow attributes
         self._token = httpclient.auth_token
         self._url = httpclient.endpoint_url