Capture end organize exceptions. Fix NotFound
[osm/osmclient.git] / osmclient / sol005 / client.py
index a4f952c..3ceb1b3 100644 (file)
@@ -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.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 json
+import logging
 
 
 class Client(object):
 
 
 class Client(object):
@@ -52,6 +55,7 @@ class Client(object):
         self._user = user
         self._password = password
         self._project = project
         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
         self._auth_endpoint = '/admin/v1/tokens'
         self._headers = {}
         self._token = None
@@ -86,21 +90,25 @@ 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.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):
         '''
         self.vca = vca.Vca(http_client, client=self, **kwargs)
         self.utils = utils.Utils(http_client, **kwargs)
         '''
 
     def get_token(self):
+        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 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)
+#            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']
 
             token = json.loads(resp) if resp else None
             self._token = token['id']
@@ -110,3 +118,8 @@ class Client(object):
                 http_header = ['{}: {}'.format(key, val)
                                for (key, val) in list(self._headers.items())]
                 self._http_client.set_http_header(http_header)
                 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"))