+#@cli.command(name='ns-scaling-show')
+#@click.argument('ns_name')
+#@click.pass_context
+#def show_ns_scaling(ctx, ns_name):
+# """shows the status of a NS scaling operation
+#
+# NS_NAME: name of the NS instance being scaled
+# """
+# try:
+# check_client_version(ctx.obj, ctx.command.name, 'v1')
+# resp = ctx.obj.ns.list()
+# except ClientException as e:
+# print(str(e))
+# exit(1)
+#
+# table = PrettyTable(
+# ['group-name',
+# 'instance-id',
+# 'operational status',
+# 'create-time',
+# 'vnfr ids'])
+#
+# for ns in resp:
+# if ns_name == ns['name']:
+# nsopdata = ctx.obj.ns.get_opdata(ns['id'])
+# scaling_records = nsopdata['nsr:nsr']['scaling-group-record']
+# for record in scaling_records:
+# if 'instance' in record:
+# instances = record['instance']
+# for inst in instances:
+# table.add_row(
+# [record['scaling-group-name-ref'],
+# inst['instance-id'],
+# inst['op-status'],
+# time.strftime('%Y-%m-%d %H:%M:%S',
+# time.localtime(
+# inst['create-time'])),
+# inst['vnfrs']])
+# table.align = 'l'
+# print(table)
+
+
+#@cli.command(name='ns-scale')
+#@click.argument('ns_name')
+#@click.option('--ns_scale_group', prompt=True)
+#@click.option('--index', prompt=True)
+#@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_scale(ctx, ns_name, ns_scale_group, index, wait):
+# """scales NS
+#
+# NS_NAME: name of the NS instance to be scaled
+# """
+# try:
+# check_client_version(ctx.obj, ctx.command.name, 'v1')
+# ctx.obj.ns.scale(ns_name, ns_scale_group, index, wait=wait)
+# except ClientException as e:
+# print(str(e))
+# exit(1)
+
+
+#@cli.command(name='config-agent-list')
+#@click.pass_context
+#def config_agent_list(ctx):
+# """list config agents"""
+# try:
+# check_client_version(ctx.obj, ctx.command.name, 'v1')
+# except ClientException as e:
+# print(str(e))
+# exit(1)
+# table = PrettyTable(['name', 'account-type', 'details'])
+# for account in ctx.obj.vca.list():
+# table.add_row(
+# [account['name'],
+# account['account-type'],
+# account['juju']])
+# table.align = 'l'
+# print(table)
+
+
+#@cli.command(name='config-agent-delete')
+#@click.argument('name')
+#@click.pass_context
+#def config_agent_delete(ctx, name):
+# """deletes a config agent
+#
+# NAME: name of the config agent to be deleted
+# """
+# try:
+# check_client_version(ctx.obj, ctx.command.name, 'v1')
+# ctx.obj.vca.delete(name)
+# except ClientException as e:
+# print(str(e))
+# exit(1)
+
+
+#@cli.command(name='config-agent-add')
+#@click.option('--name',
+# prompt=True)
+#@click.option('--account_type',
+# prompt=True)
+#@click.option('--server',
+# prompt=True)
+#@click.option('--user',
+# prompt=True)
+#@click.option('--secret',
+# prompt=True,
+# hide_input=True,
+# confirmation_prompt=True)
+#@click.pass_context
+#def config_agent_add(ctx, name, account_type, server, user, secret):
+# """adds a config agent"""
+# try:
+# check_client_version(ctx.obj, ctx.command.name, 'v1')
+# ctx.obj.vca.create(name, account_type, server, user, secret)
+# except ClientException as e:
+# print(str(e))
+# exit(1)
+
+
+#@cli.command(name='ro-dump')
+#@click.pass_context
+#def ro_dump(ctx):
+# """shows RO agent information"""
+# check_client_version(ctx.obj, ctx.command.name, 'v1')
+# resp = ctx.obj.vim.get_resource_orchestrator()
+# table = PrettyTable(['key', 'attribute'])
+# for k, v in list(resp.items()):
+# table.add_row([k, json.dumps(v, indent=2)])
+# table.align = 'l'
+# print(table)
+
+
+#@cli.command(name='vcs-list')
+#@click.pass_context
+#def vcs_list(ctx):
+# check_client_version(ctx.obj, ctx.command.name, 'v1')
+# resp = ctx.obj.utils.get_vcs_info()
+# table = PrettyTable(['component name', 'state'])
+# for component in resp:
+# table.add_row([component['component_name'], component['state']])
+# table.align = 'l'
+# print(table)
+
+
+@cli.command(name='ns-action', short_help='executes an action/primitive over a NS instance')