X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fscripts%2Fosm.py;h=c5e821266a615a752b15a2d5f4e121e68a849d6d;hb=0c1b375821761f39be1be0e7f42c0a732cc819ac;hp=6161e43420ae5972dff3aaf3fad14217351b9e3d;hpb=8e7a83989eb2264ad9f50c6b92cb7621bd550223;p=osm%2Fosmclient.git diff --git a/osmclient/scripts/osm.py b/osmclient/scripts/osm.py index 6161e43..c5e8212 100755 --- a/osmclient/scripts/osm.py +++ b/osmclient/scripts/osm.py @@ -228,6 +228,8 @@ def ns_list(ctx, filter, long): def summarize_deployment_status(status_dict): #Nets summary = "" + if not status_dict: + return summary n_nets = 0 status_nets = {} net_list = status_dict.get('nets',[]) @@ -278,6 +280,9 @@ def ns_list(ctx, filter, long): return summary def summarize_config_status(ee_list): + summary = "" + if not ee_list: + return summary n_ee = 0 status_ee = {} for ee in ee_list: @@ -290,7 +295,6 @@ def ns_list(ctx, filter, long): status_ee[ee['elementType']][ee['status']] += 1 else: status_ee[ee['elementType']][ee['status']] = 1 - summary = "" for elementType in ["KDU", "VDU", "PDU", "VNF", "NS"]: if elementType in status_ee: message = "" @@ -302,6 +306,7 @@ def ns_list(ctx, filter, long): summary += "{}: {}".format(elementType, message) summary += "TOTAL Exec. Env.: {}".format(n_ee) return summary + logger.debug("") if filter: check_client_version(ctx.obj, '--filter') @@ -334,13 +339,14 @@ def ns_list(ctx, filter, long): fullclassname = ctx.obj.__module__ + "." + ctx.obj.__class__.__name__ if fullclassname == 'osmclient.sol005.client.Client': nsr = ns + logger.debug('NS info: {}'.format(nsr)) nsr_name = nsr['name'] nsr_id = nsr['_id'] date = datetime.fromtimestamp(nsr['create-time']).strftime("%Y-%m-%dT%H:%M:%S") - ns_state = nsr['nsState'] + ns_state = nsr.get('nsState', nsr['_admin']['nsState']) if long: - deployment_status = summarize_deployment_status(nsr['deploymentStatus']) - config_status = summarize_config_status(nsr['configurationStatus']) + deployment_status = summarize_deployment_status(nsr.get('deploymentStatus')) + config_status = summarize_config_status(nsr.get('configurationStatus')) project_id = nsr.get('_admin').get('projects_read')[0] project_name = '-' for p in project_list: @@ -357,9 +363,12 @@ def ns_list(ctx, filter, long): break #vim = '{} ({})'.format(vim_name, vim_id) vim = vim_name - current_operation = "{} ({})".format(nsr['currentOperation'],nsr['currentOperationID']) + if 'currentOperation' in nsr: + current_operation = "{} ({})".format(nsr['currentOperation'],nsr['currentOperationID']) + else: + current_operation = "{} ({})".format(nsr['_admin'].get('current-operation','-'), nsr['_admin']['nslcmop']) error_details = "N/A" - if ns_state == "BROKEN" or ns_state == "DEGRADED" or nsr['errorDescription']: + if ns_state == "BROKEN" or ns_state == "DEGRADED" or nsr.get('errorDescription'): error_details = "{}\nDetail: {}".format(nsr['errorDescription'], nsr['errorDetail']) else: nsopdata = ctx.obj.ns.get_opdata(ns['id']) @@ -1419,9 +1428,12 @@ def nsd_create(ctx, filename, overwrite, skip_charm_build): help='The charm will not be compiled, it is assumed to already exist') @click.pass_context def nsd_create1(ctx, filename, overwrite, skip_charm_build): - """creates a new NSD/NSpkg + """onboards a new NSpkg (alias of nspkg-create) (TO BE DEPRECATED) - FILENAME: NSD yaml file or NSpkg tar.gz file + \b + FILENAME: NF Package tar.gz file, NF Descriptor YAML file or NF Package folder + If FILENAME is a file (NF Package tar.gz or NF Descriptor YAML), it is onboarded. + If FILENAME is an NF Package folder, it is built and then onboarded. """ logger.debug("") nsd_create(ctx, filename, overwrite=overwrite, skip_charm_build=skip_charm_build) @@ -1438,9 +1450,12 @@ def nsd_create1(ctx, filename, overwrite, skip_charm_build): help='The charm will not be compiled, it is assumed to already exist') @click.pass_context def nsd_create2(ctx, filename, overwrite, skip_charm_build): - """creates a new NSD/NSpkg + """onboards a new NSpkg - FILENAME: NSD folder, NSD yaml file or NSpkg tar.gz file + \b + FILENAME: NF Package tar.gz file, NF Descriptor YAML file or NF Package folder + If FILENAME is a file (NF Package tar.gz or NF Descriptor YAML), it is onboarded. + If FILENAME is an NF Package folder, it is built and then onboarded. """ logger.debug("") nsd_create(ctx, filename, overwrite=overwrite, skip_charm_build=skip_charm_build) @@ -1475,9 +1490,12 @@ def vnfd_create(ctx, filename, overwrite, skip_charm_build, override_epa, overri help='overrides all VDU interfaces to PARAVIRT') @click.pass_context def vnfd_create1(ctx, filename, overwrite, skip_charm_build, override_epa, override_nonepa, override_paravirt): - """creates a new VNFD/VNFpkg + """onboards a new NFpkg (alias of nfpkg-create) (TO BE DEPRECATED) - FILENAME: VNFD yaml file or VNFpkg tar.gz file + \b + FILENAME: NF Package tar.gz file, NF Descriptor YAML file or NF Package folder + If FILENAME is a file (NF Package tar.gz or NF Descriptor YAML), it is onboarded. + If FILENAME is an NF Package folder, it is built and then onboarded. """ logger.debug("") vnfd_create(ctx, filename, overwrite=overwrite, skip_charm_build=skip_charm_build, @@ -1501,9 +1519,12 @@ def vnfd_create1(ctx, filename, overwrite, skip_charm_build, override_epa, overr help='overrides all VDU interfaces to PARAVIRT') @click.pass_context def vnfd_create2(ctx, filename, overwrite, skip_charm_build, override_epa, override_nonepa, override_paravirt): - """creates a new VNFD/VNFpkg + """onboards a new NFpkg (alias of nfpkg-create) - FILENAME: NF Package Folder, NF Descriptor yaml file or NFpkg tar.gz file + \b + FILENAME: NF Package tar.gz file, NF Descriptor YAML file or NF Package folder + If FILENAME is a file (NF Package tar.gz or NF Descriptor YAML), it is onboarded. + If FILENAME is an NF Package folder, it is built and then onboarded. """ logger.debug("") vnfd_create(ctx, filename, overwrite=overwrite, skip_charm_build=skip_charm_build, @@ -1527,9 +1548,12 @@ def vnfd_create2(ctx, filename, overwrite, skip_charm_build, override_epa, overr help='overrides all VDU interfaces to PARAVIRT') @click.pass_context def nfpkg_create(ctx, filename, overwrite, skip_charm_build, override_epa, override_nonepa, override_paravirt): - """creates a new NFpkg + """onboards a new NFpkg (alias of nfpkg-create) - FILENAME: NF Package Folder, NF Descriptor yaml file or NFpkg tar.gz filems to build + \b + FILENAME: NF Package tar.gz file, NF Descriptor YAML file or NF Package folder + If FILENAME is a file (NF Package tar.gz or NF Descriptor YAML), it is onboarded. + If FILENAME is an NF Package folder, it is built and then onboarded. """ logger.debug("") vnfd_create(ctx, filename, overwrite=overwrite, skip_charm_build=skip_charm_build, @@ -2297,7 +2321,7 @@ def vim_list(ctx, filter, long): # else: # resp = ctx.obj.vim.list(ro_update) if long: - table = PrettyTable(['vim name', 'uuid', 'operational state', 'error details']) + table = PrettyTable(['vim name', 'uuid', 'project', 'operational state', 'error details']) else: table = PrettyTable(['vim name', 'uuid']) for vim in resp: @@ -2310,7 +2334,18 @@ def vim_list(ctx, filter, long): error_details = 'N/A' if vim_state == 'ERROR': error_details = vim_details['_admin'].get('detailed-status', 'Not found') - table.add_row([vim['name'], vim['uuid'], vim_state, wrap_text(text=error_details, width=80)]) + project_list = ctx.obj.project.list() + vim_project_list = vim_details.get('_admin').get('projects_read') + project_id = 'None' + project_name = 'None' + if vim_project_list: + project_id = vim_project_list[0] + for p in project_list: + if p['_id'] == project_id: + project_name = p['name'] + break + table.add_row([vim['name'], vim['uuid'], '{} ({})'.format(project_name, project_id), + vim_state, wrap_text(text=error_details, width=80)]) else: table.add_row([vim['name'], vim['uuid']]) table.align = 'l'