summaryrefslogtreecommitdiffstats
path: root/ci
diff options
context:
space:
mode:
Diffstat (limited to 'ci')
-rw-r--r--ci/config_functest.yaml241
-rwxr-xr-xci/exec_test.sh5
-rw-r--r--ci/prepare_env.py4
-rw-r--r--ci/run_tests.py25
-rw-r--r--ci/testcases.yaml57
5 files changed, 286 insertions, 46 deletions
diff --git a/ci/config_functest.yaml b/ci/config_functest.yaml
new file mode 100644
index 000000000..e463df202
--- /dev/null
+++ b/ci/config_functest.yaml
@@ -0,0 +1,241 @@
+general:
+ directories:
+ # Relative to the path where the repo is cloned:
+ dir_vping: testcases/vPing/CI/libraries/
+ dir_odl: testcases/Controllers/ODL/CI/
+ dir_rally: testcases/VIM/OpenStack/CI/libraries/
+ dir_rally_scn: testcases/VIM/OpenStack/CI/rally_cert/
+ dir_tempest_cases: testcases/VIM/OpenStack/CI/custom_tests/
+ dir_vIMS: testcases/vIMS/CI/
+ dir_onos: testcases/Controllers/ONOS/Teston/CI/
+
+ # Absolute path
+ dir_repos: /home/opnfv/repos
+ dir_repo_functest: /home/opnfv/repos/functest
+ dir_repo_rally: /home/opnfv/repos/rally
+ dir_repo_tempest: /home/opnfv/repos/tempest
+ dir_repo_releng: /home/opnfv/repos/releng
+ dir_repo_vims_test: /home/opnfv/repos/vims-test
+ dir_repo_bgpvpn: /home/opnfv/repos/bgpvpn
+ dir_repo_onos: /home/opnfv/repos/onos
+ dir_repo_promise: /home/opnfv/repos/promise
+ dir_repo_doctor: /home/opnfv/repos/doctor
+ dir_repo_ovno: /home/opnfv/repos/ovno
+ dir_functest: /home/opnfv/functest
+ dir_results: /home/opnfv/functest/results
+ dir_functest_conf: /home/opnfv/functest/conf
+ dir_rally_res: /home/opnfv/functest/results/rally/
+ dir_functest_data: /home/opnfv/functest/data
+ dir_vIMS_data: /home/opnfv/functest/data/vIMS
+ dir_rally_inst: /home/opnfv/.rally
+
+ openstack:
+ image_name: functest-img
+ image_file_name: cirros-0.3.4-x86_64-disk.img
+ image_disk_format: qcow2
+
+ # Private network for functest. Will be created by config_functest.py
+ neutron_private_net_name: functest-net
+ neutron_private_subnet_name: functest-subnet
+ neutron_private_subnet_cidr: 192.168.120.0/24
+ neutron_private_subnet_start: 192.168.120.2
+ neutron_private_subnet_end: 192.168.120.254
+ neutron_private_subnet_gateway: 192.168.120.254
+ neutron_router_name: functest-router
+
+vping:
+ ping_timeout: 200
+ vm_flavor: m1.small # adapt to your environment
+ vm_name_1: opnfv-vping-1
+ vm_name_2: opnfv-vping-2
+ image_name: functest-vping
+ vping_private_net_name: vping-net
+ vping_private_subnet_name: vping-subnet
+ vping_private_subnet_cidr: 192.168.130.0/24
+ vping_router_name: vping-router
+ vping_sg_name: vPing-sg
+ vping_sg_descr: Security group for vPing test case
+
+tempest:
+ identity:
+ tenant_name: tempest
+ tenant_description: Tenant for Tempest test suite
+ user_name: tempest
+ user_password: tempest
+ input-scenario:
+ ssh_user_regex: '[["^.*[Cc]irros.*$", "cirros"], ["^.*[Tt]est[VvMm].*$", "cirros"], ["^.*rally_verify.*$", "cirros"]]'
+
+rally:
+ deployment_name: opnfv-rally
+
+vIMS:
+ general:
+ tenant_name: vIMS
+ tenant_description: vIMS Functionality Testing
+ images:
+ ubuntu:
+ image_url: 'http://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img'
+ image_name: ubuntu_14.04
+ centos:
+ image_url: 'http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud-1510.qcow2'
+ image_name: centos_7
+ cloudify:
+ blueprint:
+ url: https://github.com/boucherv-orange/cloudify-manager-blueprints.git
+ branch: "3.3-build"
+ requierments:
+ ram_min: 3000
+ os_image: centos_7
+ inputs:
+ keystone_username: ""
+ keystone_password: ""
+ keystone_tenant_name: ""
+ keystone_url: ""
+ manager_public_key_name: 'manager-kp'
+ agent_public_key_name: 'agent-kp'
+ image_id: ""
+ flavor_id: "3"
+ external_network_name: ""
+ ssh_user: centos
+ agents_user: ubuntu
+ clearwater:
+ blueprint:
+ file_name: 'openstack-blueprint.yaml'
+ name: "clearwater-opnfv"
+ destination_folder: "opnfv-cloudify-clearwater"
+ url: 'https://github.com/Orange-OpenSource/opnfv-cloudify-clearwater.git'
+ branch: "stable"
+ deployment-name: 'clearwater-opnfv'
+ requierments:
+ ram_min: 1700
+ os_image: ubuntu_14.04
+ inputs:
+ image_id: ''
+ flavor_id: ''
+ agent_user: 'ubuntu'
+ external_network_name: ''
+ public_domain: clearwater.opnfv
+ONOS:
+ general:
+ onosbench_username: 'root'
+ onosbench_password: 'root'
+ onoscli_username: 'root'
+ onoscli_password: 'root'
+ runtimeout: 300
+ environment:
+ OCT: '10.20.0.1'
+ OC1: '10.20.0.7'
+ OC2: '10.20.0.7'
+ OC3: '10.20.0.7'
+ OCN: '10.20.0.4'
+ OCN2: '10.20.0.5'
+ installer_master: '10.20.0.2'
+ installer_master_username: 'root'
+ installer_master_password: 'r00tme'
+
+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: 512
+ flavor_disk: 0
+
+results:
+ test_db_url: http://testresults.opnfv.org/testapi
+
+# to be maintained...
+# the execution order is important as some tests may be more destructive than others
+# and if vPing is failing is usually not needed to continue...
+test_exec_priority:
+ 1: healthcheck
+ 2: vping_ssh
+ 3: vping_userdata
+ 4: tempest
+ 5: odl
+ 6: onos
+ 7: ovno
+ 8: doctor
+ 9: promise
+ 10: odl-vpnservice
+ 11: bgpvpn
+ #11: openstack-neutron-bgpvpn-api-extension-tests
+ 12: vims
+ 13: rally
+
+
+########################################################################
+# This part lists the dependencies of the tests
+#
+# it is used to manage the complexity of the possible combinations
+#
+# 17 projects have been declared for Brahmaputra (D Milestone)
+# 89 testcases are associated with these 17 projects
+#
+# in B-Release, Functest deals with 6 companion projects:
+# - congress
+# - doctor
+# - ovno
+# - policyTest
+# - promise
+# - sdnvpn
+#
+# constraints may be declared at the testcase or the test project level
+#
+# By default we consider that all the tests can be run on any configuration
+#
+# we defined 2 constraints
+# - installer (e.g. my test can be run only with installer Compass)
+# possible values: apex, compass, fuel, joid
+#
+# - the scenario: it described a specif installation
+# os-<controller>-<nfvfeature>-<mode>[-<extrastuff>]
+# With parameters:
+# controller=(nosdn|odl_l3|odl_l2|onos|ocl)
+# No odl_l3 today
+# nfvfeature=(kvm|ovs|dpdk|nofeature)
+# '_' list separated.
+# mode=(ha|noha)
+# extrastuff=(none)
+# Optional field - Not used today#
+#
+# ref:https://gerrit.opnfv.org/gerrit/#/c/6323/7/jjb/joid/joid-deploy.sh (L72-82)
+# e.g my test is only possible with OVS 2.3.2 on odl
+#
+# in functest, we indicate the regex pattern to be checked towards the scenario
+# e.g. odl-vpn_service-tests can be run if and only if
+# - installer is fuel
+# - scenario contains the name ovs and odl
+#
+#######################################################################
+test-dependencies:
+ doctor:
+ installer: 'apex'
+ functest:
+ vims:
+ scenario: '(ocl)|(nosdn)|^(os-odl)((?!bgpvpn).)*$'
+ healthcheck:
+ vping_ssh:
+ scenario: '^((?!bgpvpn).)*$'
+ vping_userdata:
+ tempest:
+ rally:
+ odl:
+ scenario: 'odl'
+ onos:
+ scenario: 'onos'
+ promise:
+ installer: '(fuel)|(joid)'
+ ovno:
+ scenario: 'ocl'
+ policy-test:
+ scenario: 'odl'
+ sdnvpn:
+ bgpvpn:
+ installer: '(fuel)|(apex)'
+ scenario: 'bgpvpn'
+ # this execute the tempest tests of networking-bgpvpn
diff --git a/ci/exec_test.sh b/ci/exec_test.sh
index c0a6841c1..f778a2fb2 100755
--- a/ci/exec_test.sh
+++ b/ci/exec_test.sh
@@ -149,6 +149,9 @@ bgpvpn = True" >> /etc/tempest/tempest.conf
"ovno")
${repos_dir}/ovno/Testcases/RunTests.sh
;;
+ *)
+ echo "The test case '${test_name}' does not exist."
+ exit 1
esac
}
@@ -183,7 +186,7 @@ done
# Source credentials
-echo "Sourcing Credentials ${FUNCTEST_CONF_DIR}/openstack.creds to run the tests.."
+echo "Sourcing Credentials ${FUNCTEST_CONF_DIR}/openstack.creds to run the test.."
source ${FUNCTEST_CONF_DIR}/openstack.creds
diff --git a/ci/prepare_env.py b/ci/prepare_env.py
index b462f9634..520db44ec 100644
--- a/ci/prepare_env.py
+++ b/ci/prepare_env.py
@@ -171,7 +171,7 @@ def source_rc_file():
logger.debug("Executing command: %s" % cmd)
p = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE)
output = p.communicate()[0]
- logger.debug(output)
+ logger.debug("\n%s" % output)
if p.returncode != 0:
logger.error("Failed to fetch credentials from installer.")
sys.exit(1)
@@ -268,7 +268,7 @@ def main():
sys.exit()
if args.action == "start":
- print ("\n######### Preparing Functest environment #########\n")
+ logger.info("\n######### Preparing Functest environment #########\n")
check_env_variables()
create_directories()
source_rc_file()
diff --git a/ci/run_tests.py b/ci/run_tests.py
index 106214400..5b9309828 100644
--- a/ci/run_tests.py
+++ b/ci/run_tests.py
@@ -33,7 +33,7 @@ args = parser.parse_args()
""" logging configuration """
-logger = ft_logger.Logger("run_test").getLogger()
+logger = ft_logger.Logger("run_tests").getLogger()
""" global variables """
@@ -48,7 +48,6 @@ def print_separator(str, count=45):
line = ""
for i in range(0, count - 1):
line += str
-
logger.info("%s" % line)
@@ -62,16 +61,11 @@ def source_rc_file():
def cleanup():
- print_separator("+")
- logger.info("Cleaning OpenStack resources...")
- print_separator("+")
clean_os.main()
- print_separator("")
def run_test(test):
test_name = test.get_name()
- print_separator("")
print_separator("=")
logger.info("Running test case '%s'..." % test_name)
print_separator("=")
@@ -82,7 +76,6 @@ def run_test(test):
cmd = ("%s%s" % (EXEC_SCRIPT, flags))
logger.debug("Executing command '%s'" % cmd)
- print_separator("")
p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True)
@@ -90,8 +83,9 @@ def run_test(test):
line = p.stdout.readline().rstrip()
logger.debug(line)
- if p != 0:
- logger.error("The command '%s' failed. Cleaning and exiting." % cmd)
+ if p.returncode != 0:
+ logger.error("The test case '%s' failed. Cleaning and exiting."
+ % test_name)
if CLEAN_FLAG:
cleanup()
sys.exit(1)
@@ -100,7 +94,6 @@ def run_test(test):
cleanup()
-
def run_tier(tier):
print_separator("#")
logger.info("Running tier '%s'" % tier.get_name())
@@ -111,10 +104,14 @@ def run_tier(tier):
def run_all(tiers):
- logger.debug("Tiers to be executed:")
+ summary = ""
for tier in tiers.get_tiers():
- logger.info("\n - %s. %s:\n\t%s"
- % (tier.get_order(), tier.get_name(), tier.get_tests()))
+ summary += ("\n - %s. %s:\n\t %s"
+ % (tier.get_order(),
+ tier.get_name(),
+ tier.get_test_names()))
+
+ logger.info("Tiers to be executed:%s" % summary)
for tier in tiers.get_tiers():
run_tier(tier)
diff --git a/ci/testcases.yaml b/ci/testcases.yaml
index 8dc22a640..51c43fcb1 100644
--- a/ci/testcases.yaml
+++ b/ci/testcases.yaml
@@ -26,45 +26,44 @@ tiers:
testcases:
-
name: vping_ssh
- description: |-
- This test case verifies:
- ····1) SSH to an instance using floating IPs over the public network.
- ····2) Connectivity between 2 instances over a private network.
+ description: >-
+ This test case verifies: 1) SSH to an instance using floating
+ IPs over the public network. 2) Connectivity between 2 instances
+ over a private network.
dependencies:
installer: ''
scenario: '^((?!bgpvpn).)*$'
-
name: vping_userdata
- description: |-
- This test case verifies:
- ····1) Boot a VM with given userdata.
- ····2) Connectivity between 2 instances over a private network.
- dependencies:
- installer: ''
- scenario: ''
-
- -
- name: tempest_smoke_serial
- description: >-
- This test case runs the smoke subset of the OpenStack
- Tempest suite. The list of test cases is generated by
- Tempest automatically and depend on the parameters of
- the OpenStack deplopyment.
- dependencies:
- installer: ''
- scenario: ''
-
- -
- name: rally_sanity
description: >-
- This test case runs a sub group of tests of the OpenStack
- Rally suite in smoke mode.
+ This test case verifies: 1) Boot a VM with given userdata.
+ 2) Connectivity between 2 instances over a private network.
dependencies:
installer: ''
scenario: ''
#-
+ # name: tempest_smoke_serial
+ # description: >-
+ # This test case runs the smoke subset of the OpenStack
+ # Tempest suite. The list of test cases is generated by
+ # Tempest automatically and depend on the parameters of
+ # the OpenStack deplopyment.
+ # dependencies:
+ # installer: ''
+ # scenario: ''
+ #
+ #-
+ # name: rally_sanity
+ # description: >-
+ # This test case runs a sub group of tests of the OpenStack
+ # Rally suite in smoke mode.
+ # dependencies:
+ # installer: ''
+ # scenario: ''
+ #
+ #-
# name: security_groups
# description: >-
# This test case verifies the functionality of the OpenStack
@@ -151,7 +150,7 @@ tiers:
This test case runs the full set of the OpenStack Tempest suite.
testcases:
-
- name: tempest_full_parallel
+ name: tempest
description: >-
The list of test cases is generated by
Tempest automatically and depend on the parameters of
@@ -168,7 +167,7 @@ tiers:
Rally suite from the OpenStack community.
testcases:
-
- name: rally_full
+ name: rally
description: >-
This test case runs the full suite of scenarios of the OpenStack
Rally suite using several threads and iterations.