Add PROMETHEUS_PORT 72/10572/1 v8.0
authorbeierlm <mark.beierl@canonical.com>
Wed, 11 Nov 2020 12:28:57 +0000 (07:28 -0500)
committerbravof <fbravo@whitestack.com>
Wed, 31 Mar 2021 13:47:25 +0000 (10:47 -0300)
Adds the ability to specify a PROMETHEUS_PORT as well as the
PROMETHEUS_HOSTNAME.

Fixes bug 1286

Change-Id: I61fc55c662b673ee08e440e12b7947da46fcc36a
Signed-off-by: beierlm <mark.beierl@canonical.com>
Signed-off-by: bravof <fbravo@whitestack.com>
robot-systest/resources/basic_01-crud_operations_on_vim_targets_data.py
robot-systest/resources/basic_08-disable_port_security_network_level_data.py
robot-systest/resources/common_helpers.py [new file with mode: 0644]
robot-systest/resources/epa_03-crud_operations_on_sdnc_data.py [new file with mode: 0644]
robot-systest/resources/sa_01-vnf_with_vim_metrics_data.py
robot-systest/resources/sa_02-vnf_with_vim_metrics_and_autoscaling_data.py
robot-systest/resources/sa_07-alarms_from_sa-related_vnfs_data.py
robot-systest/resources/sa_08-vnf_with_vnf_indicators_snmp_data.py

index 58c0382..09e12a5 100644 (file)
 #   limitations under the License.
 
 import os
-import yaml
 from pathlib import Path
+import yaml
+from common_helpers import get_prometheus_info
+
 
 # Prometheus host and port
-if os.environ.get("PROMETHEUS_HOSTNAME", False):
-    prometheus_host = os.environ.get("PROMETHEUS_HOSTNAME")
-    prometheus_port = "9090"
-else:
-    prometheus_host = os.environ.get("OSM_HOSTNAME")
-    prometheus_port = "9091"
+(prometheus_host, prometheus_port) = get_prometheus_info()
 
 # VIM Configuration
 vim_account_type = "openstack"
@@ -30,21 +27,36 @@ os_cloud = os.environ.get("OS_CLOUD")
 clouds_file_paths = ["./clouds.yaml", str(Path.home()) + "/.config/openstack/clouds.yaml", "/etc/openstack/clouds.yaml"]
 for path in clouds_file_paths:
     clouds_file_path = Path(path)
-    if clouds_file_path.exists(): break
-if not clouds_file_path.exists(): raise Exception("Openstack clouds file not found")
+    if clouds_file_path.exists():
+        break
+if not clouds_file_path.exists():
+    raise Exception("Openstack clouds file not found")
 with clouds_file_path.open() as clouds_file:
     clouds = yaml.safe_load(clouds_file)
-    if not os_cloud in clouds["clouds"]: raise Exception("Openstack cloud '" + os_cloud + "' not found")
+    if not os_cloud in clouds["clouds"]:
+        raise Exception("Openstack cloud '" + os_cloud + "' not found")
     cloud = clouds["clouds"][os_cloud]
-    if not "username" in cloud["auth"]: raise Exception("Username not found in Openstack cloud '" + os_cloud + "'")
+    if not "username" in cloud["auth"]:
+        raise Exception("Username not found in Openstack cloud '" + os_cloud + "'")
     vim_user = cloud["auth"]["username"]
-    if not "password" in cloud["auth"]: raise Exception("Password not found in Openstack cloud '" + os_cloud + "'")
+    if not "password" in cloud["auth"]:
+        raise Exception("Password not found in Openstack cloud '" + os_cloud + "'")
     vim_password = cloud["auth"]["password"]
-    if not "auth_url" in cloud["auth"]: raise Exception("Auth url not found in Openstack cloud '" + os_cloud + "'")
+    if not "auth_url" in cloud["auth"]:
+        raise Exception("Auth url not found in Openstack cloud '" + os_cloud + "'")
     vim_auth_url = cloud["auth"]["auth_url"]
-    if not "project_name" in cloud["auth"]: raise Exception("Project name not found in Openstack cloud '" + os_cloud + "'")
+    if not "project_name" in cloud["auth"]:
+        raise Exception("Project name not found in Openstack cloud '" + os_cloud + "'")
     vim_tenant = cloud["auth"]["project_name"]
     vim_user_domain_name = cloud["auth"]["user_domain_name"] if "user_domain_name" in cloud["auth"] else "Default"
     vim_project_domain_name = cloud["auth"]["project_domain_name"] if "project_domain_name" in cloud["auth"] else "Default"
 # Extra config
-vim_config = "'{project_domain_name: " + vim_project_domain_name + ", user_domain_name: " + vim_user_domain_name + ", vim_network_name: " + os.environ.get("VIM_MGMT_NET") + "}'"
+vim_config_dict = {}
+vim_config_dict["vim_network_name"] = os.environ.get("VIM_MGMT_NET")
+if vim_project_domain_name:
+    vim_config_dict["project_domain_name"] = vim_project_domain_name
+if vim_user_domain_name:
+    vim_config_dict["user_domain_name"] = vim_user_domain_name
+if vim_insecure:
+    vim_config_dict["insecure"] = True
+vim_config = "'{}'".format(yaml.safe_dump(vim_config_dict, default_flow_style=True, width=10000).rstrip('\r\n'))
index 1522e03..5e2557f 100644 (file)
 #   limitations under the License.
 
 import os
-import yaml
 from pathlib import Path
+import yaml
+
+from common_helpers import get_prometheus_info
+
 
 # Prometheus host and port
-if os.environ.get("PROMETHEUS_HOSTNAME", False):
-    prometheus_host = os.environ.get("PROMETHEUS_HOSTNAME")
-    prometheus_port = "9090"
-else:
-    prometheus_host = os.environ.get("OSM_HOSTNAME")
-    prometheus_port = "9091"
+(prometheus_host, prometheus_port) = get_prometheus_info()
 
 # VIM Configuration
 vim_account_type = "openstack"
@@ -30,19 +28,26 @@ os_cloud = os.environ.get("OS_CLOUD")
 clouds_file_paths = ["./clouds.yaml", str(Path.home()) + "/.config/openstack/clouds.yaml", "/etc/openstack/clouds.yaml"]
 for path in clouds_file_paths:
     clouds_file_path = Path(path)
-    if clouds_file_path.exists(): break
-if not clouds_file_path.exists(): raise Exception("Openstack clouds file not found")
+    if clouds_file_path.exists():
+        break
+if not clouds_file_path.exists():
+    raise Exception("Openstack clouds file not found")
 with clouds_file_path.open() as clouds_file:
     clouds = yaml.safe_load(clouds_file)
-    if not os_cloud in clouds["clouds"]: raise Exception("Openstack cloud '" + os_cloud + "' not found")
+    if not os_cloud in clouds["clouds"]:
+        raise Exception("Openstack cloud '" + os_cloud + "' not found")
     cloud = clouds["clouds"][os_cloud]
-    if not "username" in cloud["auth"]: raise Exception("Username not found in Openstack cloud '" + os_cloud + "'")
+    if not "username" in cloud["auth"]:
+        raise Exception("Username not found in Openstack cloud '" + os_cloud + "'")
     vim_user = cloud["auth"]["username"]
-    if not "password" in cloud["auth"]: raise Exception("Password not found in Openstack cloud '" + os_cloud + "'")
+    if not "password" in cloud["auth"]:
+        raise Exception("Password not found in Openstack cloud '" + os_cloud + "'")
     vim_password = cloud["auth"]["password"]
-    if not "auth_url" in cloud["auth"]: raise Exception("Auth url not found in Openstack cloud '" + os_cloud + "'")
+    if not "auth_url" in cloud["auth"]:
+        raise Exception("Auth url not found in Openstack cloud '" + os_cloud + "'")
     vim_auth_url = cloud["auth"]["auth_url"]
-    if not "project_name" in cloud["auth"]: raise Exception("Project name not found in Openstack cloud '" + os_cloud + "'")
+    if not "project_name" in cloud["auth"]:
+        raise Exception("Project name not found in Openstack cloud '" + os_cloud + "'")
     vim_tenant = cloud["auth"]["project_name"]
     vim_user_domain_name = cloud["auth"]["user_domain_name"] if "user_domain_name" in cloud["auth"] else "Default"
     vim_project_domain_name = cloud["auth"]["project_domain_name"] if "project_domain_name" in cloud["auth"] else "Default"
diff --git a/robot-systest/resources/common_helpers.py b/robot-systest/resources/common_helpers.py
new file mode 100644 (file)
index 0000000..8ffaffe
--- /dev/null
@@ -0,0 +1,22 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+import os
+
+
+def get_prometheus_info():
+    if os.environ.get('PROMETHEUS_HOSTNAME', False):
+        prometheus_host = os.environ.get('PROMETHEUS_HOSTNAME')
+        prometheus_port = os.environ.get('PROMETHEUS_PORT', 9090)
+    else:
+        prometheus_host = os.environ.get('OSM_HOSTNAME')
+        prometheus_port = os.environ.get('PROMETHEUS_PORT', 9091)
+    return prometheus_host, prometheus_port
diff --git a/robot-systest/resources/epa_03-crud_operations_on_sdnc_data.py b/robot-systest/resources/epa_03-crud_operations_on_sdnc_data.py
new file mode 100644 (file)
index 0000000..9a2b201
--- /dev/null
@@ -0,0 +1,48 @@
+#   Licensed under the Apache License, Version 2.0 (the "License");
+#   you may not use this file except in compliance with the License.
+#   You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+#   Unless required by applicable law or agreed to in writing, software
+#   distributed under the License is distributed on an "AS IS" BASIS,
+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+#   See the License for the specific language governing permissions and
+#   limitations under the License.
+
+import os
+from pathlib import Path
+import yaml
+
+from common_helpers import get_prometheus_info
+
+
+# Prometheus host and port
+(prometheus_host, prometheus_port) = get_prometheus_info()
+
+# VIM Configuration
+sdnc_type = "onos"
+sdnc_name = "epa_03_crud_operations_on_sdnc_test"
+# Get credentials from ONOS SDNCs file
+os_sdnc = os.environ.get("OS_SDNC")
+sdncs_file_paths = ["./sdncs.yaml", str(Path.home()) + "/.config/onos/sdncs.yaml"]
+for path in sdncs_file_paths:
+    sdncs_file_path = Path(path)
+    if sdncs_file_path.exists():
+        break
+if not sdncs_file_path.exists():
+    raise Exception("ONOS sdncs file not found")
+with sdncs_file_path.open() as sdncs_file:
+    sdncs = yaml.safe_load(sdncs_file)
+    if not os_sdnc in sdncs["sdncs"]:
+        raise Exception("SDN controller '" + os_sdnc + "' not found")
+    sdnc = sdncs["sdncs"][os_sdnc]
+    if not "username" in sdnc["auth"]:
+        raise Exception("Username not found in SDN controller '" + os_sdnc + "'")
+    sdnc_user = sdnc["auth"]["username"]
+    if not "password" in sdnc["auth"]:
+        raise Exception("Password not found in SDN controller '" + os_sdnc + "'")
+    sdnc_password = sdnc["auth"]["password"]
+    if not "url" in sdnc["auth"]:
+        raise Exception("URL not found in SDN controller '" + os_sdnc + "'")
+    sdnc_url = sdnc["auth"]["url"]
index 86026f8..b9fbe04 100644 (file)
 #   limitations under the License.
 
 from pathlib import Path
-import os
+
+from common_helpers import get_prometheus_info
+
 
 # Prometheus host and port
-if os.environ.get('PROMETHEUS_HOSTNAME', False):
-    prometheus_host = os.environ.get('PROMETHEUS_HOSTNAME')
-    prometheus_port = '9090'
-else:
-    prometheus_host = os.environ.get('OSM_HOSTNAME')
-    prometheus_port = '9091'
+(prometheus_host, prometheus_port) = get_prometheus_info()
 
 # Prometheus metrics to retrieve
 metric_1_name = 'osm_cpu_utilization'
index 2821a60..7651ff2 100644 (file)
 #   limitations under the License.
 
 from pathlib import Path
-import os
+
+from common_helpers import get_prometheus_info
+
 
 # Prometheus host and port
-if os.environ.get('PROMETHEUS_HOSTNAME', False):
-    prometheus_host = os.environ.get('PROMETHEUS_HOSTNAME')
-    prometheus_port = '9090'
-else:
-    prometheus_host = os.environ.get('OSM_HOSTNAME')
-    prometheus_port = '9091'
+(prometheus_host, prometheus_port) = get_prometheus_info()
 
 # Prometheus metric and threshold
 metric_name = 'osm_cpu_utilization'
@@ -37,4 +34,3 @@ ns_name = 'sa_02-vnf_with_vim_metrics_and_autoscaling_test'
 # SSH keys to be used
 publickey = home + '/.ssh/id_rsa.pub'
 privatekey = home + '/.ssh/id_rsa'
-
index 22fa448..34eef95 100644 (file)
 #   limitations under the License.
 
 from pathlib import Path
-import os
+
+from common_helpers import get_prometheus_info
+
 
 # Prometheus host and port
-if os.environ.get('PROMETHEUS_HOSTNAME', False):
-    prometheus_host = os.environ.get('PROMETHEUS_HOSTNAME')
-    prometheus_port = '9090'
-else:
-    prometheus_host = os.environ.get('OSM_HOSTNAME')
-    prometheus_port = '9091'
+(prometheus_host, prometheus_port) = get_prometheus_info()
 
 # Webhook Service NS and VNF descriptor package folder
 ws_vnfd_pkg = 'hackfest_basic_vnf'
index 449b61e..d9e6d1e 100644 (file)
 #   limitations under the License.
 
 from pathlib import Path
-import os
+
+from common_helpers import get_prometheus_info
+
 
 # Prometheus host and port
-if os.environ.get('PROMETHEUS_HOSTNAME', False):
-    prometheus_host = os.environ.get('PROMETHEUS_HOSTNAME')
-    prometheus_port = '9090'
-else:
-    prometheus_host = os.environ.get('OSM_HOSTNAME')
-    prometheus_port = '9091'
+(prometheus_host, prometheus_port) = get_prometheus_info()
 
 # Prometheus metrics to retrieve
 metric_1_name = 'ifInOctets'