action_name = op['operationParams']['primitive']
detail = "-"
if op['operationState']=='PROCESSING':
- if op['lcmOperationType']=='instantiate':
+ if op['lcmOperationType'] in ('instantiate', 'terminate'):
if op['stage']:
detail = op['stage']
else:
detail = "In queue. Current position: {}".format(op['queuePosition'])
- elif op['operationState']=='FAILED' or op['operationState']=='FAILED_TEMP':
+ elif op['operationState'] in ('FAILED', 'FAILED_TEMP'):
detail = op.get('errorMessage','-')
date = datetime.fromtimestamp(op['startTime']).strftime("%Y-%m-%dT%H:%M:%S")
last_update = datetime.fromtimestamp(op['statusEnteredTime']).strftime("%Y-%m-%dT%H:%M:%S")
wrap_text(text=detail,width=50)])
else:
table.add_row([op['id'], op['lcmOperationType'], action_name,
- op['operationState'], date, wrap_text(text=detail,width=50)])
+ op['operationState'], date, wrap_text(text=detail or "",width=50)])
table.align = 'l'
print(table)
@cli_osm.command(name='ns-delete', short_help='deletes a NS instance')
@click.argument('name')
@click.option('--force', is_flag=True, help='forces the deletion bypassing pre-conditions')
+@click.option('--config', default=None,
+ help="specific yaml configuration for the termination, e.g. '{autoremove: False, timeout_ns_terminate: "
+ "600, skip_terminate_primitives: True}'")
@click.option('--wait',
required=False,
default=False,
help='do not return the control immediately, but keep it '
'until the operation is completed, or timeout')
@click.pass_context
-def ns_delete(ctx, name, force, wait):
+def ns_delete(ctx, name, force, config, wait):
"""deletes a NS instance
NAME: name or ID of the NS instance to be deleted
logger.debug("")
# try:
if not force:
- ctx.obj.ns.delete(name, wait=wait)
+ ctx.obj.ns.delete(name, config=config, wait=wait)
else:
check_client_version(ctx.obj, '--force')
- ctx.obj.ns.delete(name, force, wait=wait)
+ ctx.obj.ns.delete(name, force, config=config, wait=wait)
# except ClientException as e:
# print(str(e))
# exit(1)
help='list of project ids that the user belongs to')
@click.option('--project-role-mappings', 'project_role_mappings',
default=None, multiple=True,
- help='creating user project/role(s) mapping')
+ help="assign role(s) in a project. Can be used several times: 'project,role1[,role2,...]'")
@click.option('--domain-name', 'domain_name',
default=None,
help='assign to a domain')
help='change username')
@click.option('--set-project', 'set_project',
default=None, multiple=True,
- help='create/replace the project,role(s) mapping for this project: \'project,role1,role2,...\'')
+ help="create/replace the roles for this project: 'project,role1[,role2,...]'")
@click.option('--remove-project', 'remove_project',
default=None, multiple=True,
- help='removes project from user: \'project\'')
+ help="removes project from user: 'project'")
@click.option('--add-project-role', 'add_project_role',
default=None, multiple=True,
- help='adds project,role(s) mapping: \'project,role1,role2,...\'')
+ help="assign role(s) in a project. Can be used several times: 'project,role1[,role2,...]'")
@click.option('--remove-project-role', 'remove_project_role',
default=None, multiple=True,
- help='removes project,role(s) mapping: \'project,role1,role2,...\'')
+ help="remove role(s) in a project. Can be used several times: 'project,role1[,role2,...]'")
@click.pass_context
def user_update(ctx, username, password, set_username, set_project, remove_project,
add_project_role, remove_project_role):