def test_endpoint_type(self):
        auth_session, auth_plugin = setup_keystone_v3()

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

        self.client.authenticate()
        self.assertEqual(self.client.endpoint_url, PUBLIC_ENDPOINT_URL)

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

        self.client.authenticate()
        self.assertEqual(self.client.endpoint_url, ADMIN_ENDPOINT_URL)

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

        self.client.authenticate()
        self.assertEqual(self.client.endpoint_url, PUBLIC_ENDPOINT_URL)

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

        self.client.authenticate()
        self.assertEqual(self.client.endpoint_url, INTERNAL_ENDPOINT_URL)

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

        self.assertRaises(
            ks_exceptions.EndpointNotFound,
            self.client.authenticate)
    def test_endpoint_type(self, mrequests):
        auth_session, auth_plugin = setup_keystone_v3(mrequests)

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

        self.client.authenticate()
        self.assertEqual(self.client.endpoint_url, PUBLIC_ENDPOINT_URL)

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

        self.client.authenticate()
        self.assertEqual(self.client.endpoint_url, ADMIN_ENDPOINT_URL)

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

        self.client.authenticate()
        self.assertEqual(self.client.endpoint_url, PUBLIC_ENDPOINT_URL)

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

        self.client.authenticate()
        self.assertEqual(self.client.endpoint_url, INTERNAL_ENDPOINT_URL)

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

        self.assertRaises(
            ks_exceptions.EndpointNotFound,
            self.client.authenticate)
 def __init__(self, **kwargs):
     """Initialize a new client for the GBP v2.0 API."""
     super(Client, self).__init__()
     self.retries = kwargs.pop('retries', 0)
     self.raise_errors = kwargs.pop('raise_errors', True)
     self.httpclient = client.construct_http_client(**kwargs)
     self.version = '2.0'
     self.format = 'json'
     self.action_prefix = "/v%s" % (self.version)
     self.retry_interval = 1
 def __init__(self, **kwargs):
     """Initialize a new client for the GBP v2.0 API."""
     super(Client, self).__init__()
     self.retries = kwargs.pop('retries', 0)
     self.raise_errors = kwargs.pop('raise_errors', True)
     self.httpclient = client.construct_http_client(**kwargs)
     self.version = '2.0'
     self.format = 'json'
     self.action_prefix = "/v%s" % (self.version)
     self.retry_interval = 1
    def __init__(self, **kwargs):
        """Initialize new client for BaremetalNetworkProvisioning v2.0 API."""

        super(Client, self).__init__()
        self.retries = kwargs.pop('retries', 0)
        self.raise_errors = kwargs.pop('raise_errors', True)
        self.httpclient = client.construct_http_client(**kwargs)
        self.version = '2.0'
        self.format = 'json'
        self.action_prefix = "/v%s" % (self.version)
        self.retry_interval = 1
        self._register_extensions(self.version)
    def __init__(self, **kwargs):
        """Initialize new client for BaremetalNetworkProvisioning v2.0 API."""

        super(Client, self).__init__()
        self.retries = kwargs.pop('retries', 0)
        self.raise_errors = kwargs.pop('raise_errors', True)
        self.httpclient = client.construct_http_client(**kwargs)
        self.version = '2.0'
        self.format = 'json'
        self.action_prefix = "/v%s" % (self.version)
        self.retry_interval = 1
        self._register_extensions(self.version)
    def setUp(self):
        """Prepare the test environment."""
        super(CLITestAuthKeystone, self).setUp()
        self.mox = mox.Mox()

        for var in ("http_proxy", "HTTP_PROXY"):
            self.useFixture(fixtures.EnvironmentVariableFixture(var))

        self.client = client.construct_http_client(
            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)
    def setUp(self):
        """Prepare the test environment."""
        super(CLITestAuthKeystone, self).setUp()
        self.mox = mox.Mox()

        self.client = client.construct_http_client(
            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)
Beispiel #9
0
    def test_get_token(self):
        auth_session, auth_plugin = setup_keystone_v2(self.requests)

        self.client = client.construct_http_client(username=USERNAME,
                                                   tenant_name=TENANT_NAME,
                                                   password=PASSWORD,
                                                   auth_url=AUTH_URL,
                                                   region_name=REGION,
                                                   session=auth_session,
                                                   auth=auth_plugin)

        m = self.requests.get(PUBLIC_ENDPOINT_URL + '/resource',
                              request_headers={'X-Auth-Token': TOKENID})
        self.client.do_request('/resource', 'GET')
        self.assertTrue(m.called)
Beispiel #10
0
    def setUp(self):
        """Prepare the test environment."""
        super(CLITestAuthKeystone, self).setUp()

        for var in ('http_proxy', 'HTTP_PROXY'):
            self.useFixture(fixtures.EnvironmentVariableFixture(var))

        self.logger = self.useFixture(fixtures.FakeLogger(level=logging.DEBUG))
        self.requests = self.useFixture(mock_fixture.Fixture())

        self.client = client.construct_http_client(username=USERNAME,
                                                   tenant_name=TENANT_NAME,
                                                   password=PASSWORD,
                                                   auth_url=AUTH_URL,
                                                   region_name=REGION)
Beispiel #11
0
    def setUp(self):
        """Prepare the test environment."""
        super(CLITestAuthKeystone, self).setUp()

        for var in ('http_proxy', 'HTTP_PROXY'):
            self.useFixture(fixtures.EnvironmentVariableFixture(var))

        self.logger = self.useFixture(fixtures.FakeLogger(level=logging.DEBUG))
        self.requests = self.useFixture(mock_fixture.Fixture())

        self.client = client.construct_http_client(
            username=USERNAME,
            tenant_name=TENANT_NAME,
            password=PASSWORD,
            auth_url=AUTH_URL,
            region_name=REGION)
Beispiel #12
0
def setup_loadbalancer_client():
    neutron_client = get_neutron_client()
    if any(ext['alias'] == 'lbaasv2'
           for ext in neutron_client.list_extensions()['extensions']):
        _clients[_LB_CLIENT] = neutron_client
    else:
        # Since Octavia is lbaasv2 API compatible (A superset of it) we'll just
        # wire an extra neutron client instance to point to it
        lbaas_client = utils.get_neutron_client()
        conf_group = utils.kuryr_config.neutron_group.name
        auth_plugin = utils.get_auth_plugin(conf_group)
        octo_httpclient = n_client.construct_http_client(
            session=utils.get_keystone_session(conf_group, auth_plugin),
            service_type='load-balancer')
        lbaas_client.httpclient = octo_httpclient
        _clients[_LB_CLIENT] = lbaas_client
Beispiel #13
0
    def test_get_token(self):
        auth_session, auth_plugin = setup_keystone_v2(self.requests)

        self.client = client.construct_http_client(
            username=USERNAME,
            tenant_name=TENANT_NAME,
            password=PASSWORD,
            auth_url=AUTH_URL,
            region_name=REGION,
            session=auth_session,
            auth=auth_plugin)

        m = self.requests.get(PUBLIC_ENDPOINT_URL + '/resource',
                              request_headers={'X-Auth-Token': TOKENID})
        self.client.do_request('/resource', 'GET')
        self.assertTrue(m.called)
Beispiel #14
0
    def test_v3_auth(self):
        auth_session, auth_plugin = setup_keystone_v3(self.requests)

        self.client = client.construct_http_client(user_id=USER_ID,
                                                   tenant_id=TENANT_ID,
                                                   password=PASSWORD,
                                                   auth_url=V3_URL,
                                                   region_name=REGION,
                                                   session=auth_session,
                                                   auth=auth_plugin)

        m = self.requests.get(PUBLIC_ENDPOINT_URL + '/resource')

        self.client.do_request('/resource', 'GET')

        self.assertTrue(m.called)
Beispiel #15
0
    def setUp(self):
        """Prepare the test environment."""
        super(CLITestAuthKeystone, self).setUp()
        self.mox = mox.Mox()

        for var in ('http_proxy', 'HTTP_PROXY'):
            self.useFixture(fixtures.EnvironmentVariableFixture(var))

        self.client = client.construct_http_client(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)
Beispiel #16
0
    def test_v3_auth(self):
        auth_session, auth_plugin = setup_keystone_v3(self.requests)

        self.client = client.construct_http_client(
            user_id=USER_ID,
            tenant_id=TENANT_ID,
            password=PASSWORD,
            auth_url=V3_URL,
            region_name=REGION,
            session=auth_session,
            auth=auth_plugin)

        m = self.requests.get(PUBLIC_ENDPOINT_URL + '/resource')

        self.client.do_request('/resource', 'GET')

        self.assertTrue(m.called)
Beispiel #17
0
    def test_v3_auth(self, mrequests):
        auth_session, auth_plugin = setup_keystone_v3(mrequests)
        res200 = get_response(200)

        self.client = client.construct_http_client(user_id=USER_ID,
                                                   tenant_id=TENANT_ID,
                                                   password=PASSWORD,
                                                   auth_url=V3_URL,
                                                   region_name=REGION,
                                                   session=auth_session,
                                                   auth=auth_plugin)

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

        self.client.request('/resource', 'GET', authenticated=True).AndReturn(
            (res200, ''))

        self.mox.ReplayAll()
        self.client.do_request('/resource', 'GET')
Beispiel #18
0
    def test_v3_auth(self, mrequests):
        auth_session, auth_plugin = setup_keystone_v3(mrequests)
        res200 = get_response(200)

        self.client = client.construct_http_client(
            user_id=USER_ID,
            tenant_id=TENANT_ID,
            password=PASSWORD,
            auth_url=V3_URL,
            region_name=REGION,
            session=auth_session,
            auth=auth_plugin,
        )

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

        self.client.request("/resource", "GET", authenticated=True).AndReturn((res200, ""))

        self.mox.ReplayAll()
        self.client.do_request("/resource", "GET")
 def initialize(self):
     if not self._url:
         httpclient = client.construct_http_client(
             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,
             timeout=self._timeout,
             session=self._session,
             auth=self._auth,
             log_credentials=self._log_credentials)
         httpclient.authenticate()
         # Populate other password flow attributes
         self._token = httpclient.auth_token
         self._url = httpclient.endpoint_url
    def test_v2_auth(self, mrequests):
        auth_session, auth_plugin = setup_keystone_v2(mrequests)
        res200 = get_response(200)

        self.client = client.construct_http_client(
            username=USERNAME,
            tenant_name=TENANT_NAME,
            password=PASSWORD,
            auth_url=AUTH_URL,
            region_name=REGION,
            session=auth_session,
            auth=auth_plugin)

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

        self.client.request(
            '/resource', 'GET',
            authenticated=True
        ).AndReturn((res200, ''))

        self.mox.ReplayAll()
        self.client.do_request('/resource', 'GET')
 def initialize(self):
     if not self._url:
         httpclient = client.construct_http_client(
             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,
             timeout=self._timeout,
             session=self._session,
             auth=self._auth,
             log_credentials=self._log_credentials)
         httpclient.authenticate()
         # Populate other password flow attributes
         self._token = httpclient.auth_token
         self._url = httpclient.endpoint_url
    def test_get_token(self):
        auth_session, auth_plugin = setup_keystone_v2()

        self.client = client.construct_http_client(
            username=USERNAME,
            tenant_name=TENANT_NAME,
            password=PASSWORD,
            auth_url=AUTH_URL,
            region_name=REGION,
            session=auth_session,
            auth=auth_plugin)

        self.mox.StubOutWithMock(self.client, "request")
        res200 = get_response(200)

        self.client.request(
            '/resource', 'GET',
            authenticated=True
        ).AndReturn((res200, ''))

        self.mox.ReplayAll()

        self.client.do_request('/resource', 'GET')