X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osmclient%2Fcli_commands%2Fvim.py;h=b2a073dc7cafd4e3effe490bf20d12f58c96b3b8;hb=refs%2Fchanges%2F31%2F13531%2F5;hp=c6424caaf208a941388356a0eaa2afbc36e9ce92;hpb=00bc0353583beab960fb853375dc1e8f4a77840d;p=osm%2Fosmclient.git diff --git a/osmclient/cli_commands/vim.py b/osmclient/cli_commands/vim.py index c6424ca..b2a073d 100755 --- a/osmclient/cli_commands/vim.py +++ b/osmclient/cli_commands/vim.py @@ -14,6 +14,7 @@ # under the License. import click +from osmclient.common import print_output from osmclient.cli_commands import utils from prettytable import PrettyTable import yaml @@ -75,6 +76,16 @@ def _check_ca_cert(vim_config: dict) -> None: @click.option( "--creds", default=None, help="credentials file (only applicable for GCP VIM type)" ) +@click.option( + "--prometheus_url", + default=None, + help="PrometheusTSBD URL to get VIM data", +) +@click.option( + "--prometheus_map", + default=None, + help="PrometheusTSBD metrics mapping for VIM data", +) @click.option( "--prometheus_config_file", default=None, @@ -97,6 +108,8 @@ def vim_create( wait, vca, creds, + prometheus_url, + prometheus_map, prometheus_config_file, ): """creates a new VIM account""" @@ -106,11 +119,17 @@ def vim_create( if sdn_port_mapping: utils.check_client_version(ctx.obj, "--sdn_port_mapping") vim = {} + prometheus_config = {} + if prometheus_url: + prometheus_config["prometheus-url"] = prometheus_url + if prometheus_map: + prometheus_config["prometheus-map"] = prometheus_map 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 - + prometheus_config.update(prometheus_config_dict) + if prometheus_config: + vim["prometheus-config"] = prometheus_config vim["vim-username"] = user vim["vim-password"] = password vim["vim-url"] = auth_url @@ -166,6 +185,16 @@ def vim_create( @click.option( "--creds", default=None, help="credentials file (only applicable for GCP VIM type)" ) +@click.option( + "--prometheus_url", + default=None, + help="PrometheusTSBD URL to get VIM data", +) +@click.option( + "--prometheus_map", + default=None, + help="PrometheusTSBD metrics mapping for VIM data", +) @click.option( "--prometheus_config_file", default=None, @@ -188,6 +217,8 @@ def vim_update( sdn_port_mapping, wait, creds, + prometheus_url, + prometheus_map, prometheus_config_file, ): """updates a VIM account @@ -218,11 +249,17 @@ def vim_update( if creds: with open(creds, "r") as cf: vim_config["credentials"] = yaml.safe_load(cf.read()) + prometheus_config = {} + if prometheus_url: + prometheus_config["prometheus-url"] = prometheus_url + if prometheus_map: + prometheus_config["prometheus-map"] = prometheus_map 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}") + prometheus_config.update(prometheus_config_dict) + if prometheus_config: + vim["prometheus-config"] = prometheus_config ctx.obj.vim.update( name, vim, vim_config, sdn_controller, sdn_port_mapping, wait=wait ) @@ -267,8 +304,15 @@ def vim_delete(ctx, name, force, wait): is_flag=True, help="get more details of the NS (project, vim, deployment status, configuration status.", ) +@click.option( + "-o", + default="table", + is_eager=True, + callback=print_output.validate_command_output, + help="get more details of the NS (project, vim, deployment status, configuration status.", +) @click.pass_context -def vim_list(ctx, filter, long): +def vim_list(ctx, filter, long, o): """list all VIM accounts""" logger.debug("") if filter: @@ -312,7 +356,8 @@ def vim_list(ctx, filter, long): [vim["name"], vim["uuid"], vim["_admin"].get("operationalState", "-")] ) table.align = "l" - print(table) + # print(table) + print_output.print_output(o, table.field_names, table._rows) @click.command(name="vim-show", short_help="shows the details of a VIM account") @@ -323,8 +368,15 @@ def vim_list(ctx, filter, long): help="restricts the information to the fields in the filter", ) @click.option("--literal", is_flag=True, help="print literally, no pretty table") +@click.option( + "-o", + default="table", + is_eager=True, + callback=print_output.validate_command_output, + help="adapt the output as table, yaml, csv, json, jsonpath", +) @click.pass_context -def vim_show(ctx, name, filter, literal): +def vim_show(ctx, name, filter, literal, o): """shows the details of a VIM account NAME: name or ID of the VIM account @@ -344,4 +396,5 @@ def vim_show(ctx, name, filter, literal): if not filter or k in filter: table.add_row([k, utils.wrap_text(text=json.dumps(v, indent=2), width=100)]) table.align = "l" - print(table) + # print(table) + print_output.print_output(o, table.field_names, table._rows)