X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fcommon%2Futils.py;h=94bd72f9c762c84cca5de6d24cb404301a715b66;hb=b810c6b28c2c927c582a78ef7b4dd7bd3081833b;hp=8ef325fbf570f7f663ba9bc93092193ea70d57a0;hpb=be96096ebd71c8d36c8375387f8e671f12eedfb0;p=osm%2Fosmclient.git diff --git a/osmclient/common/utils.py b/osmclient/common/utils.py index 8ef325f..94bd72f 100644 --- a/osmclient/common/utils.py +++ b/osmclient/common/utils.py @@ -21,6 +21,7 @@ import tarfile import re import yaml + def wait_for_value(func, result=True, wait_time=10, catch_exception=None): maxtime = time.time() + wait_time while time.time() < maxtime: @@ -29,7 +30,7 @@ def wait_for_value(func, result=True, wait_time=10, catch_exception=None): return True except catch_exception: pass - time.sleep(1) + time.sleep(5) try: return func() == result except catch_exception: @@ -53,38 +54,41 @@ def md5(fname): def get_key_val_from_pkg(descriptor_file): -# 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) tar = tarfile.open(descriptor_file) yamlfile = None for member in tar.getmembers(): if (re.match('.*.yaml', member.name) and - len(member.name.split('/')) == 2): + len(member.name.split('/')) == 2): yamlfile = member.name break if yamlfile is None: return None - dict = yaml.load(tar.extractfile(yamlfile)) + dict = yaml.safe_load(tar.extractfile(yamlfile)) result = {} - for k1, v1 in list(dict.items()): - if not k1.endswith('-catalog'): - continue - for k2, v2 in list(v1.items()): - if not k2.endswith('nsd') and not k2.endswith('vnfd'): + for k in dict: + if 'nsd' in k: + result['type'] = 'nsd' + else: + result['type'] = 'vnfd' + if 'type' not in result: + for k1, v1 in list(dict.items()): + if not k1.endswith('-catalog'): continue + for k2, v2 in v1.items(): + if not k2.endswith('nsd') and not k2.endswith('vnfd'): + continue + if 'nsd' in k2: + result['type'] = 'nsd' + else: + result['type'] = 'vnfd' + for entry in v2: + for k3, v3 in list(entry.items()): + # strip off preceeding chars before : + key_name = k3.split(':').pop() + result[key_name] = v3 - if 'nsd' in k2: - result['type'] = 'nsd' - else: - result['type'] = 'vnfd' - - for entry in v2: - for k3, v3 in list(entry.items()): - # strip off preceeding chars before : - key_name = k3.split(':').pop() - - result[key_name] = v3 tar.close() return result -