+def nsi_show2(ctx, name, literal, filter):
+ """shows the content of a Network Slice Instance (NSI)
+
+ NAME: name or ID of the Network Slice Instance
+ """
+ logger.debug("")
+ nsi_show(ctx, name, literal, filter)
+
+
+def nsi_op_show(ctx, id, filter):
+ logger.debug("")
+ # try:
+ check_client_version(ctx.obj, ctx.command.name)
+ op_info = ctx.obj.nsi.get_op(id)
+ # except ClientException as e:
+ # print(str(e))
+ # exit(1)
+
+ table = PrettyTable(['field', 'value'])
+ for k, v in list(op_info.items()):
+ if filter is None or filter in k:
+ table.add_row([k, json.dumps(v, indent=2)])
+ table.align = 'l'
+ print(table)
+
+
+@cli_osm.command(name='nsi-op-show', short_help='shows the info of an operation over a Network Slice Instance(NSI)')
+@click.argument('id')
+@click.option('--filter', default=None)
+@click.pass_context
+def nsi_op_show1(ctx, id, filter):
+ """shows the info of an operation over a Network Slice Instance(NSI)
+
+ ID: operation identifier
+ """
+ logger.debug("")
+ nsi_op_show(ctx, id, filter)
+
+
+@cli_osm.command(name='netslice-instance-op-show', short_help='shows the info of an operation over a Network Slice Instance(NSI)')
+@click.argument('id')
+@click.option('--filter', default=None)
+@click.pass_context
+def nsi_op_show2(ctx, id, filter):
+ """shows the info of an operation over a Network Slice Instance(NSI)
+
+ ID: operation identifier
+ """
+ logger.debug("")
+ nsi_op_show(ctx, id, filter)
+
+
+@cli_osm.command(name='pdu-show', short_help='shows the content of a Physical Deployment Unit (PDU)')
+@click.argument('name')
+@click.option('--literal', is_flag=True,
+ help='print literally, no pretty table')
+@click.option('--filter', default=None)
+@click.pass_context
+def pdu_show(ctx, name, literal, filter):
+ """shows the content of a Physical Deployment Unit (PDU)
+
+ NAME: name or ID of the PDU
+ """
+ logger.debug("")
+ # try:
+ check_client_version(ctx.obj, ctx.command.name)
+ pdu = ctx.obj.pdu.get(name)
+ # except ClientException as e:
+ # print(str(e))
+ # exit(1)
+
+ if literal:
+ print(yaml.safe_dump(pdu))
+ return
+
+ table = PrettyTable(['field', 'value'])
+
+ for k, v in list(pdu.items()):
+ if filter is None or filter in k:
+ table.add_row([k, json.dumps(v, indent=2)])
+
+ table.align = 'l'
+ print(table)
+
+
+####################
+# CREATE operations
+####################
+
+def nsd_create(ctx, filename, overwrite, skip_charm_build):
+ logger.debug("")
+ # try:
+ check_client_version(ctx.obj, ctx.command.name)
+ ctx.obj.nsd.create(filename, overwrite=overwrite, skip_charm_build=skip_charm_build)
+ # except ClientException as e:
+ # print(str(e))
+ # exit(1)
+
+
+@cli_osm.command(name='nsd-create', short_help='creates a new NSD/NSpkg')
+@click.argument('filename')
+@click.option('--overwrite', 'overwrite', default=None, # hidden=True,
+ help='Deprecated. Use override')
+@click.option('--override', 'overwrite', default=None,
+ help='overrides fields in descriptor, format: '
+ '"key1.key2...=value[;key3...=value;...]"')
+@click.option('--skip-charm-build', default=False, is_flag=True,
+ 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
+
+ FILENAME: NSD yaml file or NSpkg tar.gz file
+ """
+ logger.debug("")
+ nsd_create(ctx, filename, overwrite=overwrite, skip_charm_build=skip_charm_build)
+
+
+@cli_osm.command(name='nspkg-create', short_help='creates a new NSD/NSpkg')
+@click.argument('filename')
+@click.option('--overwrite', 'overwrite', default=None, # hidden=True,
+ help='Deprecated. Use override')
+@click.option('--override', 'overwrite', default=None,
+ help='overrides fields in descriptor, format: '
+ '"key1.key2...=value[;key3...=value;...]"')
+@click.option('--skip-charm-build', default=False, is_flag=True,
+ 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
+
+ FILENAME: NSD folder, NSD yaml file or NSpkg tar.gz file
+ """
+ logger.debug("")
+ nsd_create(ctx, filename, overwrite=overwrite, skip_charm_build=skip_charm_build)
+
+
+def vnfd_create(ctx, filename, overwrite, skip_charm_build, override_epa, override_nonepa, override_paravirt):
+ logger.debug("")
+ # try:
+ check_client_version(ctx.obj, ctx.command.name)
+ ctx.obj.vnfd.create(filename, overwrite=overwrite, skip_charm_build=skip_charm_build,
+ override_epa=override_epa, override_nonepa=override_nonepa,
+ override_paravirt=override_paravirt)
+ # except ClientException as e:
+ # print(str(e))
+ # exit(1)
+
+
+@cli_osm.command(name='vnfd-create', short_help='creates a new VNFD/VNFpkg')
+@click.argument('filename')
+@click.option('--overwrite', 'overwrite', default=None,
+ help='overwrite deprecated, use override')
+@click.option('--override', 'overwrite', default=None,
+ help='overrides fields in descriptor, format: '
+ '"key1.key2...=value[;key3...=value;...]"')
+@click.option('--skip-charm-build', default=False, is_flag=True,
+ help='The charm will not be compiled, it is assumed to already exist')
+@click.option('--override-epa', required=False, default=False, is_flag=True,
+ help='adds guest-epa parameters to all VDU')
+@click.option('--override-nonepa', required=False, default=False, is_flag=True,
+ help='removes all guest-epa parameters from all VDU')
+@click.option('--override-paravirt', required=False, default=False, is_flag=True,
+ 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
+
+ FILENAME: VNFD yaml file or VNFpkg tar.gz file
+ """
+ logger.debug("")
+ vnfd_create(ctx, filename, overwrite=overwrite, skip_charm_build=skip_charm_build,
+ override_epa=override_epa, override_nonepa=override_nonepa, override_paravirt=override_paravirt)
+
+
+@cli_osm.command(name='vnfpkg-create', short_help='creates a new VNFD/VNFpkg')
+@click.argument('filename')
+@click.option('--overwrite', 'overwrite', default=None, # hidden=True,
+ help='Deprecated. Use override')
+@click.option('--override', 'overwrite', default=None,
+ help='overrides fields in descriptor, format: '
+ '"key1.key2...=value[;key3...=value;...]"')
+@click.option('--skip-charm-build', default=False, is_flag=True,
+ help='The charm will not be compiled, it is assumed to already exist')
+@click.option('--override-epa', required=False, default=False, is_flag=True,
+ help='adds guest-epa parameters to all VDU')
+@click.option('--override-nonepa', required=False, default=False, is_flag=True,
+ help='removes all guest-epa parameters from all VDU')
+@click.option('--override-paravirt', required=False, default=False, is_flag=True,
+ 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
+
+ FILENAME: NF Package Folder, NF Descriptor yaml file or NFpkg tar.gz file
+ """
+ logger.debug("")
+ vnfd_create(ctx, filename, overwrite=overwrite, skip_charm_build=skip_charm_build,
+ override_epa=override_epa, override_nonepa=override_nonepa, override_paravirt=override_paravirt)
+
+
+@cli_osm.command(name='nfpkg-create', short_help='creates a new NFpkg')
+@click.argument('filename')
+@click.option('--overwrite', 'overwrite', default=None, # hidden=True,
+ help='Deprecated. Use override')
+@click.option('--override', 'overwrite', default=None,
+ help='overrides fields in descriptor, format: '
+ '"key1.key2...=value[;key3...=value;...]"')
+@click.option('--skip-charm-build', default=False, is_flag=True,
+ help='The charm will not be compiled, it is assumed to already exist')
+@click.option('--override-epa', required=False, default=False, is_flag=True,
+ help='adds guest-epa parameters to all VDU')
+@click.option('--override-nonepa', required=False, default=False, is_flag=True,
+ help='removes all guest-epa parameters from all VDU')
+@click.option('--override-paravirt', required=False, default=False, is_flag=True,
+ 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
+
+ FILENAME: NF Package Folder, NF Descriptor yaml file or NFpkg tar.gz filems to build
+ """
+ logger.debug("")
+ vnfd_create(ctx, filename, overwrite=overwrite, skip_charm_build=skip_charm_build,
+ override_epa=override_epa, override_nonepa=override_nonepa, override_paravirt=override_paravirt)
+
+
+@cli_osm.command(name='ns-create', short_help='creates a new Network Service instance')
+@click.option('--ns_name',
+ prompt=True, help='name of the NS instance')
+@click.option('--nsd_name',
+ prompt=True, help='name of the NS descriptor')
+@click.option('--vim_account',
+ prompt=True, help='default VIM account id or name for the deployment')
+@click.option('--admin_status',
+ default='ENABLED',
+ help='administration status')
+@click.option('--ssh_keys',
+ default=None,
+ help='comma separated list of public key files to inject to vnfs')
+@click.option('--config',
+ default=None,
+ help='ns specific yaml configuration')
+@click.option('--config_file',
+ default=None,
+ help='ns specific yaml configuration file')
+@click.option('--wait',
+ required=False,
+ default=False,
+ is_flag=True,
+ help='do not return the control immediately, but keep it '
+ 'until the operation is completed, or timeout')
+@click.pass_context
+def ns_create(ctx,
+ nsd_name,
+ ns_name,
+ vim_account,
+ admin_status,