Fix Bug 934. OSM CLI crashes for listing operations with insufficient permissions
[osm/osmclient.git] / osmclient / sol005 / package.py
index 12412e4..27b3ad4 100644 (file)
@@ -20,21 +20,26 @@ OSM package API handling
 
 #from os import stat
 #from os.path import basename
+from osmclient.common.exceptions import OsmHttpException
 from osmclient.common.exceptions import ClientException
 from osmclient.common.exceptions import NotFound
 from osmclient.common import utils
 import json
+import logging
 
 
 class Package(object):
     def __init__(self, http=None, client=None):
         self._client = client
         self._http = http
+        self._logger = logging.getLogger('osmclient')
 
     def get_key_val_from_pkg(self, descriptor_file):
+        self._logger.debug("")
         return utils.get_key_val_from_pkg(descriptor_file)
 
     def _wait_for_package(self, pkg_type):
+        self._logger.debug("")
         if 'vnfd' in pkg_type['type']:
             get_method = self._client.vnfd.get
         elif 'nsd' in pkg_type['type']:
@@ -44,6 +49,7 @@ class Package(object):
 
         # helper method to check if pkg exists
         def check_exists(func):
+            self._logger.debug("")
             try:
                 func()
             except NotFound:
@@ -58,6 +64,8 @@ class Package(object):
         """wait(block) for an upload to succeed.
            The filename passed is assumed to be a descriptor tarball.
         """
+        self._logger.debug("")
+        self._client.get_token()
         pkg_type = utils.get_key_val_from_pkg(filename)
 
         if pkg_type is None:
@@ -68,6 +76,8 @@ class Package(object):
                                   .format(filename))
 
     def upload(self, filename):
+        self._logger.debug("")
+        self._client.get_token()
         pkg_type = utils.get_key_val_from_pkg(filename)
         if pkg_type is None:
             raise ClientException("Cannot determine package type")
@@ -76,7 +86,7 @@ class Package(object):
         else:
             endpoint = '/vnfpkgm/v1/vnf_packages_content'
         #endpoint = '/nsds' if pkg_type['type'] == 'nsd' else '/vnfds'
-        #print 'Endpoint: {}'.format(endpoint)
+        #print('Endpoint: {}'.format(endpoint))
         headers = self._client._headers
         headers['Content-Type'] = 'application/gzip'
         #headers['Content-Type'] = 'application/binary'
@@ -89,21 +99,20 @@ class Package(object):
                       for (key,val) in list(headers.items())]
         self._http.set_http_header(http_header)
         http_code, resp = self._http.post_cmd(endpoint=endpoint, filename=filename)
-        #print 'HTTP CODE: {}'.format(http_code)
-        #print 'RESP: {}'.format(resp)
-        if http_code in (200, 201, 202, 204):
-            if resp:
-                resp = json.loads(resp)
-            if not resp or 'id' not in resp:
-                raise ClientException('unexpected response from server - {}'.format(
-                                      resp))
-            print(resp['id'])
-        else:
-            msg = ""
-            if resp:
-                try:
-                     msg = json.loads(resp)
-                except ValueError:
-                    msg = resp
-            raise ClientException("failed to upload package - {}".format(msg))
-
+        #print('HTTP CODE: {}'.format(http_code))
+        #print('RESP: {}'.format(resp))
+        #if http_code in (200, 201, 202, 204):
+        if resp:
+            resp = json.loads(resp)
+        if not resp or 'id' not in resp:
+            raise OsmHttpException('unexpected response from server - {}'.format(
+                                   resp))
+        print(resp['id'])
+        # else:
+        #     msg = ""
+        #     if resp:
+        #         try:
+        #              msg = json.loads(resp)
+        #         except ValueError:
+        #             msg = resp
+        #     raise ClientException("failed to upload package - {}".format(msg))