from osmclient.common.exceptions import ClientException
from osmclient.common.exceptions import NotFound
from osmclient.common import utils
+import json
class Package(object):
self._http = http
def get_key_val_from_pkg(self, descriptor_file):
- utils.get_key_val_from_pkg(descriptor_file)
+ return utils.get_key_val_from_pkg(descriptor_file)
def upload(self, filename):
pkg_type = utils.get_key_val_from_pkg(filename)
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
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))