aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ci/config_functest.yaml27
-rw-r--r--testcases/OpenStack/rally/blacklist.txt7
-rwxr-xr-xtestcases/OpenStack/rally/run_rally-cert.py69
-rw-r--r--testcases/OpenStack/rally/task.yaml20
-rwxr-xr-xtestcases/features/promise.py75
5 files changed, 130 insertions, 68 deletions
diff --git a/ci/config_functest.yaml b/ci/config_functest.yaml
index 2b3317a1..12e78d6d 100644
--- a/ci/config_functest.yaml
+++ b/ci/config_functest.yaml
@@ -162,20 +162,19 @@ multisite:
installer_password: 'root'
multisite_controller_ip: '10.1.0.50'
promise:
- general:
- tenant_name: promise
- tenant_description: promise Functionality Testing
- user_name: promiser
- user_pwd: test
- image_name: promise-img
- flavor_name: promise-flavor
- flavor_vcpus: 1
- flavor_ram: 128
- flavor_disk: 0
- network_name: promise-net
- subnet_name: promise-subnet
- subnet_cidr: 192.168.121.0/24
- router_name: promise-router
+ tenant_name: promise
+ tenant_description: promise Functionality Testing
+ user_name: promiser
+ user_pwd: test
+ image_name: promise-img
+ flavor_name: promise-flavor
+ flavor_vcpus: 1
+ flavor_ram: 128
+ flavor_disk: 0
+ network_name: promise-net
+ subnet_name: promise-subnet
+ subnet_cidr: 192.168.121.0/24
+ router_name: promise-router
example:
example_vm_name: example-vm
diff --git a/testcases/OpenStack/rally/blacklist.txt b/testcases/OpenStack/rally/blacklist.txt
new file mode 100644
index 00000000..e1c83f5b
--- /dev/null
+++ b/testcases/OpenStack/rally/blacklist.txt
@@ -0,0 +1,7 @@
+-
+ scenarios:
+ -
+ installers:
+ -
+ tests:
+ -
diff --git a/testcases/OpenStack/rally/run_rally-cert.py b/testcases/OpenStack/rally/run_rally-cert.py
index 85d21d9b..f1218545 100755
--- a/testcases/OpenStack/rally/run_rally-cert.py
+++ b/testcases/OpenStack/rally/run_rally-cert.py
@@ -20,6 +20,7 @@ import os
import re
import subprocess
import time
+import yaml
import argparse
import functest.utils.functest_logger as ft_logger
@@ -78,6 +79,8 @@ RALLY_DIR = REPO_PATH + '/' + functest_yaml.get("general").get(
"directories").get("dir_rally")
TEMPLATE_DIR = RALLY_DIR + "scenario/templates"
SUPPORT_DIR = RALLY_DIR + "scenario/support"
+TEMP_DIR = RALLY_DIR + "var"
+BLACKLIST_FILE = RALLY_DIR + "blacklist.txt"
FLAVOR_NAME = "m1.tiny"
USERS_AMOUNT = 2
@@ -269,6 +272,64 @@ def get_cmd_output(proc):
return result
+def apply_blacklist(case_file_name, result_file_name):
+ logger.debug("Applying blacklist...")
+ cases_file = open(case_file_name, 'r')
+ result_file = open(result_file_name, 'w')
+ black_tests = []
+
+ try:
+ installer_type = os.getenv('INSTALLER_TYPE')
+ deploy_scenario = os.getenv('DEPLOY_SCENARIO')
+ if (bool(installer_type) * bool(deploy_scenario)):
+ # if INSTALLER_TYPE and DEPLOY_SCENARIO are set we read the file
+ with open(BLACKLIST_FILE, 'r') as black_list_file:
+ black_list_yaml = yaml.safe_load(black_list_file)
+
+ for item in black_list_yaml:
+ scenarios = item['scenarios']
+ installers = item['installers']
+ if (deploy_scenario in scenarios and
+ installer_type in installers):
+ tests = item['tests']
+ black_tests.extend(tests)
+ except:
+ black_tests = []
+ logger.debug("Blacklisting not applied.")
+
+ include = True
+ for cases_line in cases_file:
+ if include:
+ for black_tests_line in black_tests:
+ if black_tests_line == cases_line.strip().rstrip(':'):
+ include = False
+ break
+ else:
+ result_file.write(str(cases_line))
+ else:
+ if cases_line.isspace():
+ include = True
+
+ cases_file.close()
+ result_file.close()
+
+
+def prepare_test_list(test_name):
+ scenario_file_name = '{}opnfv-{}.yaml'.format(RALLY_DIR + "scenario/",
+ test_name)
+ if not os.path.exists(scenario_file_name):
+ logger.info("The scenario '%s' does not exist." % scenario_file_name)
+ exit(-1)
+
+ logger.debug('Scenario fetched from : {}'.format(scenario_file_name))
+ test_file_name = '{}opnfv-{}.yaml'.format(TEMP_DIR + "/", test_name)
+
+ if not os.path.exists(TEMP_DIR):
+ os.makedirs(TEMP_DIR)
+
+ apply_blacklist(scenario_file_name, test_file_name)
+
+
def run_task(test_name):
#
# the "main" function of the script who launch rally for a task
@@ -284,13 +345,7 @@ def run_task(test_name):
logger.error("Task file '%s' does not exist." % task_file)
exit(-1)
- test_file_name = '{}opnfv-{}.yaml'.format(RALLY_DIR + "scenario/",
- test_name)
- if not os.path.exists(test_file_name):
- logger.error("The scenario '%s' does not exist." % test_file_name)
- exit(-1)
-
- logger.debug('Scenario fetched from : {}'.format(test_file_name))
+ prepare_test_list(test_name)
cmd_line = ("rally task start --abort-on-sla-failure " +
"--task {} ".format(task_file) +
diff --git a/testcases/OpenStack/rally/task.yaml b/testcases/OpenStack/rally/task.yaml
index 3dded7db..c482f120 100644
--- a/testcases/OpenStack/rally/task.yaml
+++ b/testcases/OpenStack/rally/task.yaml
@@ -8,41 +8,41 @@
---
{% if "authenticate" in service_list %}
-{%- include "scenario/opnfv-authenticate.yaml"-%}
+{%- include "var/opnfv-authenticate.yaml"-%}
{% endif %}
{% if "cinder" in service_list %}
-{%- include "scenario/opnfv-cinder.yaml"-%}
+{%- include "var/opnfv-cinder.yaml"-%}
{% endif %}
{% if "keystone" in service_list %}
-{%- include "scenario/opnfv-keystone.yaml"-%}
+{%- include "var/opnfv-keystone.yaml"-%}
{% endif %}
{% if "nova" in service_list %}
-{%- include "scenario/opnfv-nova.yaml"-%}
+{%- include "var/opnfv-nova.yaml"-%}
{% endif %}
{% if "glance" in service_list %}
-{%- include "scenario/opnfv-glance.yaml"-%}
+{%- include "var/opnfv-glance.yaml"-%}
{% endif %}
{% if "neutron" in service_list %}
-{%- include "scenario/opnfv-neutron.yaml"-%}
+{%- include "var/opnfv-neutron.yaml"-%}
{% endif %}
{% if "quotas" in service_list %}
-{%- include "scenario/opnfv-quotas.yaml"-%}
+{%- include "var/opnfv-quotas.yaml"-%}
{% endif %}
{% if "requests" in service_list %}
-{%- include "scenario/opnfv-requests.yaml"-%}
+{%- include "var/opnfv-requests.yaml"-%}
{% endif %}
{% if "heat" in service_list %}
-{%- include "scenario/opnfv-heat.yaml"-%}
+{%- include "var/opnfv-heat.yaml"-%}
{% endif %}
{% if "vm" in service_list %}
-{%- include "scenario/opnfv-vm.yaml"-%}
+{%- include "var/opnfv-vm.yaml"-%}
{% endif %}
diff --git a/testcases/features/promise.py b/testcases/features/promise.py
index 47e360ca..a7899fec 100755
--- a/testcases/features/promise.py
+++ b/testcases/features/promise.py
@@ -9,18 +9,19 @@
#
# Maintainer : jose.lausuch@ericsson.com
#
+import argparse
import json
import os
import subprocess
import time
-import argparse
import functest.utils.functest_logger as ft_logger
-import functest.utils.functest_utils as functest_utils
+import functest.utils.functest_utils as ft_utils
import functest.utils.openstack_utils as openstack_utils
import keystoneclient.v2_0.client as ksclient
-import novaclient.client as nvclient
from neutronclient.v2_0 import client as ntclient
+import novaclient.client as nvclient
+
parser = argparse.ArgumentParser()
@@ -30,35 +31,35 @@ parser.add_argument("-r", "--report",
action="store_true")
args = parser.parse_args()
-functest_yaml = functest_utils.get_functest_yaml()
-dirs = functest_yaml.get('general').get('directories')
+dirs = ft_utils.get_parameter_from_yaml('general.directories')
PROMISE_REPO = dirs.get('dir_repo_promise')
-TEST_DB = functest_yaml.get('results').get('test_db_url')
-
-TENANT_NAME = functest_yaml.get('promise').get('general').get('tenant_name')
-TENANT_DESCRIPTION = functest_yaml.get('promise').get(
- 'general').get('tenant_description')
-USER_NAME = functest_yaml.get('promise').get('general').get('user_name')
-USER_PWD = functest_yaml.get('promise').get('general').get('user_pwd')
-IMAGE_NAME = functest_yaml.get('promise').get('general').get('image_name')
-FLAVOR_NAME = functest_yaml.get('promise').get('general').get('flavor_name')
-FLAVOR_VCPUS = functest_yaml.get('promise').get('general').get('flavor_vcpus')
-FLAVOR_RAM = functest_yaml.get('promise').get('general').get('flavor_ram')
-FLAVOR_DISK = functest_yaml.get('promise').get('general').get('flavor_disk')
-
-
-GLANCE_IMAGE_FILENAME = functest_yaml.get('general').get('openstack').get(
- 'image_file_name')
-GLANCE_IMAGE_FORMAT = functest_yaml.get('general').get('openstack').get(
- 'image_disk_format')
-GLANCE_IMAGE_PATH = functest_yaml.get('general').get('directories').get(
- 'dir_functest_data') + "/" + GLANCE_IMAGE_FILENAME
-
-NET_NAME = functest_yaml.get('promise').get('general').get('network_name')
-SUBNET_NAME = functest_yaml.get('promise').get('general').get('subnet_name')
-SUBNET_CIDR = functest_yaml.get('promise').get('general').get('subnet_cidr')
-ROUTER_NAME = functest_yaml.get('promise').get('general').get('router_name')
+RESULTS_DIR = ft_utils.get_parameter_from_yaml(
+ 'general.directories.dir_results')
+
+TENANT_NAME = ft_utils.get_parameter_from_yaml('promise.tenant_name')
+TENANT_DESCRIPTION = ft_utils.get_parameter_from_yaml(
+ 'promise.tenant_description')
+USER_NAME = ft_utils.get_parameter_from_yaml('promise.user_name')
+USER_PWD = ft_utils.get_parameter_from_yaml('promise.user_pwd')
+IMAGE_NAME = ft_utils.get_parameter_from_yaml('promise.image_name')
+FLAVOR_NAME = ft_utils.get_parameter_from_yaml('promise.flavor_name')
+FLAVOR_VCPUS = ft_utils.get_parameter_from_yaml('promise.flavor_vcpus')
+FLAVOR_RAM = ft_utils.get_parameter_from_yaml('promise.flavor_ram')
+FLAVOR_DISK = ft_utils.get_parameter_from_yaml('promise.flavor_disk')
+
+
+GLANCE_IMAGE_FILENAME = ft_utils.get_parameter_from_yaml(
+ 'general.openstack.image_file_name')
+GLANCE_IMAGE_FORMAT = ft_utils.get_parameter_from_yaml(
+ 'general.openstack.image_disk_format')
+GLANCE_IMAGE_PATH = ft_utils.get_parameter_from_yaml(
+ 'general.directories.dir_functest_data') + "/" + GLANCE_IMAGE_FILENAME
+
+NET_NAME = ft_utils.get_parameter_from_yaml('promise.network_name')
+SUBNET_NAME = ft_utils.get_parameter_from_yaml('promise.subnet_name')
+SUBNET_CIDR = ft_utils.get_parameter_from_yaml('promise.subnet_cidr')
+ROUTER_NAME = ft_utils.get_parameter_from_yaml('promise.router_name')
""" logging configuration """
@@ -182,7 +183,7 @@ def main():
os.chdir(PROMISE_REPO)
results_file_name = 'promise-results.json'
- results_file = open(results_file_name, 'w+')
+ results_file = open(RESULTS_DIR + '/' + results_file_name, 'w+')
cmd = 'npm run -s test -- --reporter json'
logger.info("Running command: %s" % cmd)
@@ -240,12 +241,12 @@ def main():
status = "PASS"
exit_code = 0
- functest_utils.push_results_to_db("promise",
- "promise",
- start_time,
- stop_time,
- status,
- json_results)
+ ft_utils.push_results_to_db("promise",
+ "promise",
+ start_time,
+ stop_time,
+ status,
+ json_results)
exit(exit_code)