예제 #1
0
 def __init__(self, **kwargs):
     """Initialize a new client for the Tacker v1.0 API."""
     super(ClientBase, 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 = '1.0'
     self.format = 'json'
     self.action_prefix = "/v%s" % (self.version)
     self.retry_interval = 1
예제 #2
0
 def __init__(self, **kwargs):
     """Initialize a new client for the Tacker v1.0 API."""
     super(ClientBase, 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 = '1.0'
     self.format = 'json'
     self.action_prefix = "/v%s" % (self.version)
     self.retry_interval = 1
예제 #3
0
파일: tacker.py 프로젝트: cboling/xos
def get_tacker_client(site, service_type='nfv-orchestration', timeout=None, **kwargs):
    """
    Get a client connection to Tacker authenticated with our Keystone credentials

        ie) client = construct_http_client(username='******', password='******', tenant_name='admin',
                                          auth_url='http://192.168.1.121:5000/v2.0')

    :param site: (ControllerSite) Site to get client for
    :param service_type: (string) Service type defined for Tacker service.  For the Liberty
                                  release, this will may be 'servicevm', for Mitaka+, it will
                                  most likely be 'nfv-orchestration'.  Run the following command
                                  on your controller to verify:  'openstack service list' and
                                  look for the'tacker' entry's 'Type'
    :param timeout: (integer) Connection timeout, see keystoneclient.v2_0.client module

    :return: (HttpClient) Tacker HTTP API client
    """
    observer_logger.info('TACKER: get client request: user: %s, tenant: %s, auth: %s' %
                         (site.controller.admin_user, site.controller.admin_tenant, site.controller.auth_url))

    client = construct_http_client(username=site.controller.admin_user,
                                   tenant_name=site.controller.admin_tenant,
                                   password=site.controller.admin_password,
                                   auth_url=site.controller.auth_url,
                                   service_type=service_type,
                                   timeout=timeout, **kwargs)
    if not client:
        observer_logger.info('TACKER: get client failed')
    else:
        observer_logger.info('TACKER: get client results: %s' % client)

        try:
            client.authenticate()
        except Unauthorized as e:
            observer_logger.error('get_tacker_client: (%s of %s) authentication error: %s' % (site.controller.admin_user,
                                                                                              site.controller.admin_tenant,
                                                                                              e.message))
            raise

        except ConnectionFailed:
            # This can happen during unittest if you retry too often
            raise

    return client
예제 #4
0
 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 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