X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fsol005%2Fclient.py;h=3f397f79395068e1e5e81fde42f8b96cf28eee70;hb=refs%2Fchanges%2F85%2F8385%2F14;hp=513e947a94651ecb4073e4981b726d3c23173417;hpb=a63fb3c6887ecf8221e868e0c8d39d51319ea085;p=osm%2Fosmclient.git diff --git a/osmclient/sol005/client.py b/osmclient/sol005/client.py index 513e947..3f397f7 100644 --- a/osmclient/sol005/client.py +++ b/osmclient/sol005/client.py @@ -34,8 +34,11 @@ from osmclient.sol005 import project as projectmodule from osmclient.sol005 import user as usermodule from osmclient.sol005 import role from osmclient.sol005 import pdud -from osmclient.common.exceptions import ClientException +from osmclient.sol005 import k8scluster +from osmclient.sol005 import repo +from osmclient.common import package_tool import json +import logging class Client(object): @@ -52,8 +55,10 @@ class Client(object): self._user = user self._password = password self._project = project + self._logger = logging.getLogger('osmclient') self._auth_endpoint = '/admin/v1/tokens' self._headers = {} + self._token = None if len(host.split(':')) > 1: # backwards compatible, port provided as part of host @@ -71,14 +76,6 @@ class Client(object): for (key, val) in list(self._headers.items())] self._http_client.set_http_header(http_header) - token = self.get_token() - if not token: - raise ClientException( - 'Authentication error: not possible to get auth token') - self._headers['Authorization'] = 'Bearer {}'.format(token) - http_header.append('Authorization: Bearer {}'.format(token)) - self._http_client.set_http_header(http_header) - self.vnfd = vnfd.Vnfd(self._http_client, client=self) self.nsd = nsd.Nsd(self._http_client, client=self) self.nst = nst.Nst(self._http_client, client=self) @@ -93,21 +90,37 @@ class Client(object): self.user = usermodule.User(self._http_client, client=self) self.role = role.Role(self._http_client, client=self) self.pdu = pdud.Pdu(self._http_client, client=self) + self.k8scluster = k8scluster.K8scluster(self._http_client, client=self) + self.repo = repo.Repo(self._http_client, client=self) + self.package_tool = package_tool.PackageTool(client=self) ''' self.vca = vca.Vca(http_client, client=self, **kwargs) self.utils = utils.Utils(http_client, **kwargs) ''' def get_token(self): - postfields_dict = {'username': self._user, - 'password': self._password, - 'project_id': self._project} - http_code, resp = self._http_client.post_cmd(endpoint=self._auth_endpoint, - postfields_dict=postfields_dict) - if http_code not in (200, 201, 202, 204): - raise ClientException(resp) - token = json.loads(resp) if resp else None - if token is not None: - return token['_id'] - return None + self._logger.debug("") + if self._token is None: + postfields_dict = {'username': self._user, + 'password': self._password, + 'project_id': self._project} + http_code, resp = self._http_client.post_cmd(endpoint=self._auth_endpoint, + postfields_dict=postfields_dict) +# if http_code not in (200, 201, 202, 204): +# message ='Authentication error: not possible to get auth token\nresp:\n{}'.format(resp) +# raise ClientException(message) + + token = json.loads(resp) if resp else None + self._token = token['id'] + + if self._token is not None: + self._headers['Authorization'] = 'Bearer {}'.format(self._token) + http_header = ['{}: {}'.format(key, val) + for (key, val) in list(self._headers.items())] + self._http_client.set_http_header(http_header) + + def get_version(self): + _, resp = self._http_client.get2_cmd(endpoint="/version") + resp = json.loads(resp) + return "{} {}".format(resp.get("version"), resp.get("date"))