X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fsol005%2Fclient.py;h=5e28797b99bfc21b5f288e1598eec49996eaffc2;hb=c4959d198c1e6c49465b9bc01f90f1fba40e0a8e;hp=6281ffe766e46f2dc4c09a173edbba7664e0ab6a;hpb=b7463a4821eabd214b2b38d54db38a5a1aae53d6;p=osm%2Fosmclient.git diff --git a/osmclient/sol005/client.py b/osmclient/sol005/client.py index 6281ffe..5e28797 100644 --- a/osmclient/sol005/client.py +++ b/osmclient/sol005/client.py @@ -34,9 +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): @@ -53,10 +55,12 @@ class Client(object): self._user = user self._password = password self._project = project + self._project_domain_name = kwargs.get("project_domain_name") + self._user_domain_name = kwargs.get("user_domain_name") + 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 self._host = host.split(':')[0] @@ -66,7 +70,7 @@ class Client(object): self._so_port = so_port self._http_client = http.Http( - 'https://{}:{}/osm'.format(self._host,self._so_port)) + 'https://{}:{}/osm'.format(self._host,self._so_port), **kwargs) self._headers['Accept'] = 'application/json' self._headers['Content-Type'] = 'application/yaml' http_header = ['{}: {}'.format(key, val) @@ -87,23 +91,30 @@ 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) ''' - self.package_tool = package_tool.PackageTool(client=self) def get_token(self): + self._logger.debug("") if self._token is None: postfields_dict = {'username': self._user, 'password': self._password, 'project_id': self._project} + if self._project_domain_name: + postfields_dict["project_domain_name"] = self._project_domain_name + if self._user_domain_name: + postfields_dict["user_domain_name"] = self._user_domain_name 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) + postfields_dict=postfields_dict, + skip_query_admin=True) +# 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'] @@ -113,3 +124,24 @@ class Client(object): 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", skip_query_admin=True) + #print(http_code, resp) + try: + resp = json.loads(resp) + version = resp.get("version") + date = resp.get("date") + except ValueError: + version = resp.split()[2] + date = resp.split()[4] + return "{} {}".format(version, date) + + def set_default_params(self, **kwargs): + host = kwargs.pop('host', None) + if host != None: + self._host=host + port = kwargs.pop('port', None) + if port != None: + self._so_port=port + self._http_client.set_query_admin(**kwargs)