From: Luis Vega Date: Fri, 25 Nov 2022 14:52:25 +0000 (+0000) Subject: Feature 10955: Osmclient changes related to VIM configuration with a Prometheus TSDB... X-Git-Tag: release-v13.0-start^0 X-Git-Url: https://osm.etsi.org/gitweb/?a=commitdiff_plain;ds=sidebyside;h=166f7b0d516d3e51e2546960dee64453261050e3;p=osm%2Fosmclient.git Feature 10955: Osmclient changes related to VIM configuration with a Prometheus TSDB system This commit should be merged AFTER the revert in the commit https://osm.etsi.org/gerrit/#/c/osm/osmclient/+/12725/ Change-Id: Ifae76a63f6fecf323e63d38daa06196a4ba33345 Signed-off-by: Luis Vega --- diff --git a/osmclient/cli_commands/vim.py b/osmclient/cli_commands/vim.py index c6424ca..ff1bcc6 100755 --- a/osmclient/cli_commands/vim.py +++ b/osmclient/cli_commands/vim.py @@ -75,6 +75,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 +107,8 @@ def vim_create( wait, vca, creds, + prometheus_url, + prometheus_map, prometheus_config_file, ): """creates a new VIM account""" @@ -106,11 +118,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 +184,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 +216,8 @@ def vim_update( sdn_port_mapping, wait, creds, + prometheus_url, + prometheus_map, prometheus_config_file, ): """updates a VIM account @@ -218,11 +248,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 ) diff --git a/osmclient/sol005/vim.py b/osmclient/sol005/vim.py index 72a0822..4962a91 100644 --- a/osmclient/sol005/vim.py +++ b/osmclient/sol005/vim.py @@ -197,6 +197,8 @@ class Vim(object): vim_account["vim_user"] = vim_access["vim-username"] or "null" vim_account["vim_password"] = vim_access["vim-password"] or "null" vim_account["vim_tenant_name"] = vim_access["vim-tenant-name"] or "null" + if "prometheus-config" in vim_access: + vim_account["prometheus-config"] = vim_access["prometheus-config"] return vim_account def get_id(self, name):