projects
/
osm
/
osmclient.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
retrieve key/val method from pkg
[osm/osmclient.git]
/
osmclient
/
v1
/
package.py
diff --git
a/osmclient/v1/package.py
b/osmclient/v1/package.py
index
16560c3
..
b383003
100644
(file)
--- a/
osmclient/v1/package.py
+++ b/
osmclient/v1/package.py
@@
-15,63
+15,62
@@
# under the License.
"""
# under the License.
"""
-OSM package API handling
+OSM package API handling
"""
"""
-import json
-import pycurl
-from io import BytesIO
import tarfile
import tarfile
-import re
+import re
import yaml
import yaml
-import time
from osmclient.common.exceptions import ClientException
from osmclient.common.exceptions import NotFound
from osmclient.common import utils
class Package(object):
from osmclient.common.exceptions import ClientException
from osmclient.common.exceptions import NotFound
from osmclient.common import utils
class Package(object):
- def __init__(self,
http=None,upload_http=None,
client=None):
- self._client
=
client
- self._http
=
http
- self._upload_http
=
upload_http
+ def __init__(self,
http=None, upload_http=None,
client=None):
+ self._client
=
client
+ self._http
=
http
+ self._upload_http
=
upload_http
- def _wait_for_package(self,pkg_type):
+ def _wait_for_package(self,
pkg_type):
if 'vnfd' in pkg_type['type']:
if 'vnfd' in pkg_type['type']:
- get_method
=
self._client.vnfd.get
+ get_method
=
self._client.vnfd.get
elif 'nsd' in pkg_type['type']:
elif 'nsd' in pkg_type['type']:
- get_method
=
self._client.nsd.get
+ get_method
=
self._client.nsd.get
else:
raise ClientException("no valid package type found")
# helper method to check if pkg exists
else:
raise ClientException("no valid package type found")
# helper method to check if pkg exists
- def check_exists(
func
):
+ def check_exists(
func
):
try:
func()
except NotFound:
return False
return True
try:
func()
except NotFound:
return False
return True
- return utils.wait_for_value(lambda: check_exists(lambda: get_method(pkg_type['name'])))
+ return utils.wait_for_value(lambda:
+ check_exists(lambda:
+ get_method(pkg_type['name'])))
# method opens up a package and finds the name of the resulting
# descriptor (vnfd or nsd name)
# method opens up a package and finds the name of the resulting
# descriptor (vnfd or nsd name)
- def get_
descriptor_type
_from_pkg(self, descriptor_file):
+ def get_
key_val
_from_pkg(self, descriptor_file):
tar = tarfile.open(descriptor_file)
yamlfile = None
for member in tar.getmembers():
tar = tarfile.open(descriptor_file)
yamlfile = None
for member in tar.getmembers():
- if re.match('.*.yaml',member.name) and len(member.name.split('/')) == 2:
+ if (re.match('.*.yaml', member.name) and
+ len(member.name.split('/')) == 2):
yamlfile = member.name
break
if yamlfile is None:
return None
yamlfile = member.name
break
if yamlfile is None:
return None
- dict
=
yaml.load(tar.extractfile(yamlfile))
- result
=
{}
- for k1,v1 in dict.items():
+ dict
=
yaml.load(tar.extractfile(yamlfile))
+ result
=
{}
+ for k1,
v1 in dict.items():
if not k1.endswith('-catalog'):
continue
if not k1.endswith('-catalog'):
continue
- for k2,v2 in v1.items():
+ for k2,
v2 in v1.items():
if not k2.endswith('nsd') and not k2.endswith('vnfd'):
continue
if not k2.endswith('nsd') and not k2.endswith('vnfd'):
continue
@@
-81,27
+80,28
@@
class Package(object):
result['type'] = 'vnfd'
for entry in v2:
result['type'] = 'vnfd'
for entry in v2:
- for k3,v3 in entry.items():
- if k3 == 'name' or k3.endswith(':name'):
- result['name'] = v3
- return result
+ for k3, v3 in entry.items():
+ # strip off preceeding chars before :
+ key_name = k3.split(':').pop()
+
+ result[key_name] = v3
tar.close()
tar.close()
- return
None
+ return
result
- def wait_for_upload(self,filename):
+ def wait_for_upload(self,
filename):
"""wait(block) for an upload to succeed.
"""wait(block) for an upload to succeed.
-
The filename passed is assumed to be a descriptor tarball.
"""
The filename passed is assumed to be a descriptor tarball.
"""
- pkg_type
=self.get_descriptor_type
_from_pkg(filename)
+ pkg_type
= self.get_key_val
_from_pkg(filename)
if pkg_type is None:
raise ClientException("Cannot determine package type")
if not self._wait_for_package(pkg_type):
if pkg_type is None:
raise ClientException("Cannot determine package type")
if not self._wait_for_package(pkg_type):
- raise ClientException("package {} failed to upload".format(filename))
+ raise ClientException("package {} failed to upload"
+ .format(filename))
- def upload(self,filename):
- resp
=self._upload_http.post_cmd(formfile=('package',
filename))
+ def upload(self,
filename):
+ resp
= self._upload_http.post_cmd(formfile=('package',
filename))
if not resp or 'transaction_id' not in resp:
raise ClientException("failed to upload package")
if not resp or 'transaction_id' not in resp:
raise ClientException("failed to upload package")