X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=osmclient%2Fscripts%2Fosm.py;h=3ce02df0d5ad89f0df166546d64db046c7090f7f;hb=refs%2Fchanges%2F53%2F11953%2F4;hp=0e6395820e259a52b246d8654e5d682030de1aaa;hpb=b66761bd5f0c65dcec418a27ebfd83a56eec7e91;p=osm%2Fosmclient.git diff --git a/osmclient/scripts/osm.py b/osmclient/scripts/osm.py index 0e63958..3ce02df 100755 --- a/osmclient/scripts/osm.py +++ b/osmclient/scripts/osm.py @@ -3154,6 +3154,7 @@ def pdu_delete(ctx, name, force): ) @click.option("--vca", default=None, help="VCA to be used in this VIM account") @click.option("--creds", default=None, help="credentials file (only applycable for GCP VIM type)") +@click.option("--prometheus_config_file", default=None, help="Prometheus configuration to get VIM data") @click.pass_context def vim_create( ctx, @@ -3171,6 +3172,7 @@ def vim_create( wait, vca, creds, + prometheus_config_file ): """creates a new VIM account""" logger.debug("") @@ -3180,6 +3182,11 @@ def vim_create( if sdn_port_mapping: check_client_version(ctx.obj, "--sdn_port_mapping") vim = {} + if prometheus_config_file: + with open(prometheus_config_file) as prometheus_file: + prometheus_config_dict = json.load(prometheus_file) + vim["prometheus-config"] = prometheus_config_dict + vim["vim-username"] = user vim["vim-password"] = password vim["vim-url"] = auth_url @@ -3229,6 +3236,7 @@ def vim_create( "until the operation is completed, or timeout", ) @click.option("--creds", default=None, help="credentials file (only applycable for GCP VIM type)") +@click.option("--prometheus_config_file", default=None, help="Prometheus configuration to get VIM data") @click.pass_context def vim_update( ctx, @@ -3246,6 +3254,7 @@ def vim_update( sdn_port_mapping, wait, creds, + prometheus_config_file ): """updates a VIM account @@ -3275,6 +3284,10 @@ def vim_update( if creds: with open(creds, "r") as cf: vim_config["credentials"] = yaml.safe_load(cf.read()) + if prometheus_config_file: + with open(prometheus_config_file) as prometheus_file: + prometheus_config_dict = json.load(prometheus_file) + vim["prometheus-config"] = prometheus_config_dict logger.info(f"VIM: {vim}, VIM config: {vim_config}") ctx.obj.vim.update(name, vim, vim_config, sdn_controller, sdn_port_mapping, wait=wait) # except ClientException as e: @@ -4844,6 +4857,16 @@ def user_create(ctx, username, password, projects, project_role_mappings, domain multiple=True, help="remove role(s) in a project. Can be used several times: 'project,role1[,role2,...]'", ) +@click.option( + "--change_password", + "change_password", + help="user's current password" +) +@click.option( + "--new_password", + "new_password", + help="user's new password to update in expiry condition" +) @click.pass_context def user_update( ctx, @@ -4854,6 +4877,8 @@ def user_update( remove_project, add_project_role, remove_project_role, + change_password, + new_password, ): """Update a user information @@ -4865,6 +4890,8 @@ def user_update( REMOVE_PROJECT: deleting mappings for project/role(s) ADD_PROJECT_ROLE: adding mappings for project/role(s) REMOVE_PROJECT_ROLE: removing mappings for project/role(s) + CHANGE_PASSWORD: user's current password to change + NEW_PASSWORD: user's new password to update in expiry condition """ logger.debug("") user = {} @@ -4874,10 +4901,15 @@ def user_update( user["remove-project"] = remove_project user["add-project-role"] = add_project_role user["remove-project-role"] = remove_project_role + user["change_password"] = change_password + user["new_password"] = new_password # try: check_client_version(ctx.obj, ctx.command.name) - ctx.obj.user.update(username, user) + if not user.get("change_password"): + ctx.obj.user.update(username, user) + else: + ctx.obj.user.update(username, user, pwd_change=True) # except ClientException as e: # print(str(e)) # exit(1) @@ -5532,6 +5564,53 @@ def vnf_scale( # exit(1) +@cli_osm.command( + name="ns-update", short_help="executes an update of a Network Service." +) +@click.argument("ns_name") +@click.option( + "--updatetype", required=True, type=str, help="available types: CHANGE_VNFPKG" +) +@click.option( + "--config", + required=True, + type=str, + help="extra information for update operation as YAML/JSON inline string as --config" + " '{changeVnfPackageData:[{vnfInstanceId: xxx, vnfdId: yyy}]}'", +) +@click.option( + "--timeout", required=False, default=None, type=int, help="timeout in seconds" +) +@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 update(ctx, ns_name, updatetype, config, timeout, wait): + """Executes an update of a Network Service. + + The update will check new revisions of the Network Functions that are part of the + Network Service, and it will update them if needed. + Sample update command: osm ns-update ns_instance_id --updatetype CHANGE_VNFPKG + --config '{changeVnfPackageData: [{vnfInstanceId: id_x,vnfdId: id_y}]}' --timeout 300 --wait + + NS_NAME: Network service instance name or ID. + + """ + op_data = { + "timeout": timeout, + "updateType": updatetype, + } + if config: + op_data["config"] = yaml.safe_load(config) + + check_client_version(ctx.obj, ctx.command.name) + ctx.obj.ns.update(ns_name, op_data, wait=wait) + + @cli_osm.command(name="alarm-show", short_help="show alarm details") @click.argument("uuid") @click.pass_context