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',[])
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:
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 = ""
summary += "{}: {}".format(elementType, message)
summary += "TOTAL Exec. Env.: {}".format(n_ee)
return summary
+
logger.debug("")
if filter:
check_client_version(ctx.obj, '--filter')
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:
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'])
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)
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)
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,
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,
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,
# 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:
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'