using http codes in sol005 client whenever possible
[osm/osmclient.git] / osmclient / sol005 / package.py
index de604c3..172ee45 100644 (file)
@@ -26,6 +26,7 @@ import yaml
 from osmclient.common.exceptions import ClientException
 from osmclient.common.exceptions import NotFound
 from osmclient.common import utils
+import json
 
 
 class Package(object):
@@ -41,9 +42,9 @@ class Package(object):
         if pkg_type is None:
             raise ClientException("Cannot determine package type")
         if pkg_type['type'] == 'nsd':
-            endpoint = '/nsd/v1/ns_descriptors'
+            endpoint = '/nsd/v1/ns_descriptors_content'
         else:
-            endpoint = '/vnfpkgm/v1/vnf_packages'
+            endpoint = '/vnfpkgm/v1/vnf_packages_content'
         #endpoint = '/nsds' if pkg_type['type'] == 'nsd' else '/vnfds'
         #print 'Endpoint: {}'.format(endpoint)
         headers = self._client._headers
@@ -57,12 +58,22 @@ class Package(object):
         http_header = ['{}: {}'.format(key,val)
                       for (key,val) in headers.items()]
         self._http.set_http_header(http_header)
-        resp = self._http.post_cmd(endpoint=endpoint,
-                                   filename=filename)
-        #print 'RESP: {}'.format(yaml.safe_dump(resp))
-        if not resp or 'id' not in resp:
-            raise ClientException("failed to upload package")
-        else:
+        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 delete ns {} - {}".format(name, msg))