Feature 10955: Osmclient changes related to VIM configuration with a Prometheus TSDB... 26/12726/2 release-v13.0-start
authorLuis Vega <lvega@whitestack.com>
Fri, 25 Nov 2022 14:52:25 +0000 (14:52 +0000)
committerLuis Vega <lvega@whitestack.com>
Fri, 25 Nov 2022 18:35:40 +0000 (18:35 +0000)
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 <lvega@whitestack.com>
osmclient/cli_commands/vim.py
osmclient/sol005/vim.py

index c6424ca..ff1bcc6 100755 (executable)
@@ -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
     )
index 72a0822..4962a91 100644 (file)
@@ -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):