From 711418c64910b2d506508f286550a2d573f8e9ce Mon Sep 17 00:00:00 2001 From: beierlm Date: Wed, 11 Nov 2020 07:28:57 -0500 Subject: [PATCH] Add PROMETHEUS_PORT Adds the ability to specify a PROMETHEUS_PORT as well as the PROMETHEUS_HOSTNAME. Fixes bug 1286 Change-Id: I61fc55c662b673ee08e440e12b7947da46fcc36a Signed-off-by: beierlm Signed-off-by: bravof --- ..._01-crud_operations_on_vim_targets_data.py | 42 ++++++++++------ ...isable_port_security_network_level_data.py | 33 +++++++------ robot-systest/resources/common_helpers.py | 22 +++++++++ .../epa_03-crud_operations_on_sdnc_data.py | 48 +++++++++++++++++++ .../sa_01-vnf_with_vim_metrics_data.py | 11 ++--- ...f_with_vim_metrics_and_autoscaling_data.py | 12 ++--- .../sa_07-alarms_from_sa-related_vnfs_data.py | 11 ++--- ...sa_08-vnf_with_vnf_indicators_snmp_data.py | 11 ++--- 8 files changed, 132 insertions(+), 58 deletions(-) create mode 100644 robot-systest/resources/common_helpers.py create mode 100644 robot-systest/resources/epa_03-crud_operations_on_sdnc_data.py diff --git a/robot-systest/resources/basic_01-crud_operations_on_vim_targets_data.py b/robot-systest/resources/basic_01-crud_operations_on_vim_targets_data.py index 58c0382..09e12a5 100644 --- a/robot-systest/resources/basic_01-crud_operations_on_vim_targets_data.py +++ b/robot-systest/resources/basic_01-crud_operations_on_vim_targets_data.py @@ -11,16 +11,13 @@ # 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')) diff --git a/robot-systest/resources/basic_08-disable_port_security_network_level_data.py b/robot-systest/resources/basic_08-disable_port_security_network_level_data.py index 1522e03..5e2557f 100644 --- a/robot-systest/resources/basic_08-disable_port_security_network_level_data.py +++ b/robot-systest/resources/basic_08-disable_port_security_network_level_data.py @@ -11,16 +11,14 @@ # 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 index 0000000..8ffaffe --- /dev/null +++ b/robot-systest/resources/common_helpers.py @@ -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 index 0000000..9a2b201 --- /dev/null +++ b/robot-systest/resources/epa_03-crud_operations_on_sdnc_data.py @@ -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"] diff --git a/robot-systest/resources/sa_01-vnf_with_vim_metrics_data.py b/robot-systest/resources/sa_01-vnf_with_vim_metrics_data.py index 86026f8..b9fbe04 100644 --- a/robot-systest/resources/sa_01-vnf_with_vim_metrics_data.py +++ b/robot-systest/resources/sa_01-vnf_with_vim_metrics_data.py @@ -11,15 +11,12 @@ # 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' diff --git a/robot-systest/resources/sa_02-vnf_with_vim_metrics_and_autoscaling_data.py b/robot-systest/resources/sa_02-vnf_with_vim_metrics_and_autoscaling_data.py index 2821a60..7651ff2 100644 --- a/robot-systest/resources/sa_02-vnf_with_vim_metrics_and_autoscaling_data.py +++ b/robot-systest/resources/sa_02-vnf_with_vim_metrics_and_autoscaling_data.py @@ -11,15 +11,12 @@ # 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' - diff --git a/robot-systest/resources/sa_07-alarms_from_sa-related_vnfs_data.py b/robot-systest/resources/sa_07-alarms_from_sa-related_vnfs_data.py index 22fa448..34eef95 100644 --- a/robot-systest/resources/sa_07-alarms_from_sa-related_vnfs_data.py +++ b/robot-systest/resources/sa_07-alarms_from_sa-related_vnfs_data.py @@ -11,15 +11,12 @@ # 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' diff --git a/robot-systest/resources/sa_08-vnf_with_vnf_indicators_snmp_data.py b/robot-systest/resources/sa_08-vnf_with_vnf_indicators_snmp_data.py index 449b61e..d9e6d1e 100644 --- a/robot-systest/resources/sa_08-vnf_with_vnf_indicators_snmp_data.py +++ b/robot-systest/resources/sa_08-vnf_with_vnf_indicators_snmp_data.py @@ -11,15 +11,12 @@ # 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' -- 2.25.1