aboutsummaryrefslogtreecommitdiffstats
path: root/functest/opnfv_tests/openstack
diff options
context:
space:
mode:
authorCédric Ollivier <cedric.ollivier@orange.com>2018-02-27 14:25:49 +0100
committerCédric Ollivier <cedric.ollivier@orange.com>2018-02-27 14:27:57 +0100
commitbaa8f2d5f67d45e5761f92cb93fe22050f08d0fe (patch)
tree05ddb33dc893cad35369b3286db944eac79ffe4d /functest/opnfv_tests/openstack
parent53cd7f8176c996014decb7311d9f546f6b8f2497 (diff)
Clean all OpenStack related modules
Xtesting is only focused on the framework and entry points. Change-Id: I1a4146ed8519438b13810a20ddf1140c35bb6ecd Signed-off-by: Cédric Ollivier <cedric.ollivier@orange.com>
Diffstat (limited to 'functest/opnfv_tests/openstack')
-rw-r--r--functest/opnfv_tests/openstack/__init__.py0
-rw-r--r--functest/opnfv_tests/openstack/rally/__init__.py0
-rw-r--r--functest/opnfv_tests/openstack/rally/blacklist.txt81
-rw-r--r--functest/opnfv_tests/openstack/rally/macro/macro.yaml97
-rw-r--r--functest/opnfv_tests/openstack/rally/rally.py619
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/full/opnfv-ceilometer.yaml458
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/full/opnfv-cinder.yaml345
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/full/opnfv-glance.yaml92
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/full/opnfv-heat.yaml166
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/full/opnfv-neutron.yaml362
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/full/opnfv-nova.yaml416
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/opnfv-authenticate.yaml63
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/opnfv-keystone.yaml92
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/opnfv-quotas.yaml54
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/opnfv-vm.yaml42
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-ceilometer.yaml247
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-cinder.yaml139
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-glance.yaml48
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-heat.yaml50
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-neutron.yaml197
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-nova.yaml144
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/support/instance_dd_test.sh13
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/autoscaling_policy.yaml.template17
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/default.yaml.template1
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/random_strings.yaml.template13
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/resource_group.yaml.template13
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/server_with_ports.yaml.template64
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/server_with_volume.yaml.template43
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/updated_autoscaling_policy_inplace.yaml.template23
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_add.yaml.template19
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_delete.yaml.template11
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_replace.yaml.template19
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/updated_resource_group_increase.yaml.template16
-rw-r--r--functest/opnfv_tests/openstack/rally/scenario/templates/updated_resource_group_reduce.yaml.template16
-rw-r--r--functest/opnfv_tests/openstack/rally/task.yaml48
-rw-r--r--functest/opnfv_tests/openstack/refstack_client/__init__.py0
-rw-r--r--functest/opnfv_tests/openstack/refstack_client/refstack_client.py260
-rw-r--r--functest/opnfv_tests/openstack/snaps/__init__.py0
-rw-r--r--functest/opnfv_tests/openstack/snaps/api_check.py45
-rw-r--r--functest/opnfv_tests/openstack/snaps/connection_check.py44
-rw-r--r--functest/opnfv_tests/openstack/snaps/health_check.py49
-rw-r--r--functest/opnfv_tests/openstack/snaps/smoke.py48
-rw-r--r--functest/opnfv_tests/openstack/snaps/snaps_suite_builder.py446
-rw-r--r--functest/opnfv_tests/openstack/snaps/snaps_test_runner.py58
-rw-r--r--functest/opnfv_tests/openstack/snaps/snaps_utils.py61
-rw-r--r--functest/opnfv_tests/openstack/tempest/__init__.py0
-rw-r--r--functest/opnfv_tests/openstack/tempest/conf_utils.py313
-rw-r--r--functest/opnfv_tests/openstack/tempest/custom_tests/blacklist.txt2
-rw-r--r--functest/opnfv_tests/openstack/tempest/custom_tests/defcore_req.txt249
-rw-r--r--functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml13
-rw-r--r--functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt4
-rw-r--r--functest/opnfv_tests/openstack/tempest/tempest.py484
-rw-r--r--functest/opnfv_tests/openstack/vping/__init__.py0
-rw-r--r--functest/opnfv_tests/openstack/vping/ping.sh10
-rw-r--r--functest/opnfv_tests/openstack/vping/vping_base.py204
-rw-r--r--functest/opnfv_tests/openstack/vping/vping_ssh.py235
-rw-r--r--functest/opnfv_tests/openstack/vping/vping_userdata.py143
57 files changed, 0 insertions, 6696 deletions
diff --git a/functest/opnfv_tests/openstack/__init__.py b/functest/opnfv_tests/openstack/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/openstack/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/openstack/rally/__init__.py b/functest/opnfv_tests/openstack/rally/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/openstack/rally/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/openstack/rally/blacklist.txt b/functest/opnfv_tests/openstack/rally/blacklist.txt
deleted file mode 100644
index fe08b5b9..00000000
--- a/functest/opnfv_tests/openstack/rally/blacklist.txt
+++ /dev/null
@@ -1,81 +0,0 @@
-scenario:
- -
- scenarios:
- - '^os-nosdn-lxd-(no)?ha$'
- installers:
- - '.+' # all installers
- tests:
- - NovaServers.boot_server_from_volume_and_delete
- -
- scenarios:
- - '^os-' # all scenarios
- installers:
- - '.+' # all installers
- tests:
- # Following tests currently fail due to required Gnocchi API:
- # HTTP 410: "This telemetry installation is configured to use
- # Gnocchi. Please use the Gnocchi API available on the
- # metric endpoint to retrieve data."
- # Issue: https://bugs.launchpad.net/rally/+bug/1704322
- - CeilometerMeters.list_matched_meters
- - CeilometerMeters.list_meters
- - CeilometerQueries.create_and_query_samples
- - CeilometerResource.get_tenant_resources
- - CeilometerResource.list_matched_resources
- - CeilometerResource.list_resources
- - CeilometerSamples.list_matched_samples
- - CeilometerSamples.list_samples
- - CeilometerStats.create_meter_and_get_stats
- - CeilometerStats.get_stats
- -
- scenarios:
- - '^os-' # all scenarios
- installers:
- - '.+' # all installers
- tests:
- # Following test currently fails due to but in
- # python-ceilometerclient during fetching of event_types
- # Bug: https://bugs.launchpad.net/ubuntu/+bug/1704138
- # Fix: https://review.openstack.org/#/c/483402/
- - CeilometerEvents.create_user_and_list_event_types
- -
- scenarios:
- - '^os-' # all scenarios
- installers:
- - '.+' # all installers
- tests:
- # Starting from ocata, following tests require the presence of
- # panko in the deployment. This is not currently fulfilled
- # Ref: https://docs.openstack.org/releasenotes/ceilometer/ocata.html
- - 'CeilometerEvents..*'
- - 'CeilometerTraits..*'
- -
- scenarios:
- - '^os-' # all scenarios
- installers:
- - '.+' # all installers
- tests:
- # Rally is still utilizing Ceilometer API which is deprecated
- # in Pike.
- # Ref: https://docs.openstack.org/releasenotes/ceilometer/pike.html
- - 'Ceilometer..*'
- -
- scenarios:
- - '^os-' # all scenarios
- installers:
- - '.+' # all installers
- tests:
- # Following test occasionally fails due to race condition issue on
- # quota manipulation in nova.
- # Ref: https://bugs.launchpad.net/nova/+bug/1552622
- - 'Quotas.nova_update_and_delete'
-
-functionality:
- -
- functions:
- - no_migration
- tests:
- - NovaServers.boot_and_live_migrate_server
- - NovaServers.boot_server_attach_created_volume_and_live_migrate
- - NovaServers.boot_server_from_volume_and_live_migrate
- - NovaServers.boot_and_migrate_server
diff --git a/functest/opnfv_tests/openstack/rally/macro/macro.yaml b/functest/opnfv_tests/openstack/rally/macro/macro.yaml
deleted file mode 100644
index 48c0333e..00000000
--- a/functest/opnfv_tests/openstack/rally/macro/macro.yaml
+++ /dev/null
@@ -1,97 +0,0 @@
-{%- macro user_context(tenants,users_per_tenant, use_existing_users) -%}
-{%- if use_existing_users and caller is not defined -%} {}
-{%- else %}
- {%- if not use_existing_users %}
- users:
- tenants: {{ tenants }}
- users_per_tenant: {{ users_per_tenant }}
- {%- endif %}
- {%- if caller is defined %}
- {{ caller() }}
- {%- endif %}
-{%- endif %}
-{%- endmacro %}
-
-{%- macro vm_params(image=none, flavor=none, size=none) %}
-{%- if flavor is not none %}
- flavor:
- name: {{ flavor }}
-{%- endif %}
-{%- if image is not none %}
- image:
- name: {{ image }}
-{%- endif %}
-{%- if size is not none %}
- size: {{ size }}
-{%- endif %}
-{%- endmacro %}
-
-{%- macro unlimited_volumes() %}
- cinder:
- gigabytes: -1
- snapshots: -1
- volumes: -1
-{%- endmacro %}
-
-{%- macro constant_runner(concurrency=1, times=1, is_smoke=True) %}
- type: "constant"
- {%- if is_smoke %}
- concurrency: 1
- times: 1
- {%- else %}
- concurrency: {{ concurrency }}
- times: {{ times }}
- {%- endif %}
-{%- endmacro %}
-
-{%- macro rps_runner(rps=1, times=1, is_smoke=True) %}
- type: rps
- {%- if is_smoke %}
- rps: 1
- times: 1
- {%- else %}
- rps: {{ rps }}
- times: {{ times }}
- {%- endif %}
-{%- endmacro %}
-
-{%- macro no_failures_sla() %}
- failure_rate:
- max: 0
-{%- endmacro %}
-
-{%- macro volumes(size=1, volumes_per_tenant=1) %}
- volumes:
- size: {{ size }}
- volumes_per_tenant: {{ volumes_per_tenant }}
-{%- endmacro %}
-
-{%- macro unlimited_nova(keypairs=false) %}
- nova:
- cores: -1
- floating_ips: -1
- instances: -1
- {%- if keypairs %}
- key_pairs: -1
- {%- endif %}
- ram: -1
- security_group_rules: -1
- security_groups: -1
-{%- endmacro %}
-
-{%- macro unlimited_neutron(secgroups=false) %}
- neutron:
- network: -1
- port: -1
- subnet: -1
- {%- if secgroups %}
- security_group: -1
- security_group_rule: -1
- {%- endif %}
-{%- endmacro %}
-
-{%- macro glance_args(location, container="bare", type="qcow2") %}
- container_format: {{ container }}
- disk_format: {{ type }}
- image_location: {{ location }}
-{%- endmacro %}
diff --git a/functest/opnfv_tests/openstack/rally/rally.py b/functest/opnfv_tests/openstack/rally/rally.py
deleted file mode 100644
index b2213c94..00000000
--- a/functest/opnfv_tests/openstack/rally/rally.py
+++ /dev/null
@@ -1,619 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c) 2015 All rights reserved
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-
-"""Rally testcases implementation."""
-
-from __future__ import division
-
-import json
-import logging
-import os
-import re
-import subprocess
-import time
-import uuid
-
-import pkg_resources
-import prettytable
-import yaml
-
-from functest.core import testcase
-from functest.energy import energy
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-from functest.opnfv_tests.openstack.tempest import conf_utils
-from functest.utils import config
-from functest.utils import env
-
-from snaps.config.flavor import FlavorConfig
-from snaps.config.image import ImageConfig
-from snaps.config.network import NetworkConfig, SubnetConfig
-from snaps.config.router import RouterConfig
-
-from snaps.openstack.create_flavor import OpenStackFlavor
-from snaps.openstack.utils import deploy_utils
-
-LOGGER = logging.getLogger(__name__)
-
-
-class RallyBase(testcase.TestCase):
- """Base class form Rally testcases implementation."""
-
- # pylint: disable=too-many-instance-attributes
- TESTS = ['authenticate', 'glance', 'ceilometer', 'cinder', 'heat',
- 'keystone', 'neutron', 'nova', 'quotas', 'vm', 'all']
- GLANCE_IMAGE_NAME = getattr(config.CONF, 'openstack_image_name')
- GLANCE_IMAGE_FILENAME = getattr(config.CONF, 'openstack_image_file_name')
- GLANCE_IMAGE_PATH = os.path.join(getattr(
- config.CONF, 'dir_functest_images'), GLANCE_IMAGE_FILENAME)
- GLANCE_IMAGE_FORMAT = getattr(config.CONF, 'openstack_image_disk_format')
- GLANCE_IMAGE_USERNAME = getattr(config.CONF, 'openstack_image_username')
- GLANCE_IMAGE_EXTRA_PROPERTIES = getattr(
- config.CONF, 'openstack_extra_properties', {})
- FLAVOR_NAME = getattr(config.CONF, 'rally_flavor_name')
- FLAVOR_ALT_NAME = getattr(config.CONF, 'rally_flavor_alt_name')
- FLAVOR_RAM = 512
- FLAVOR_RAM_ALT = 1024
- FLAVOR_EXTRA_SPECS = getattr(config.CONF, 'flavor_extra_specs', None)
- if FLAVOR_EXTRA_SPECS:
- FLAVOR_RAM = 1024
- FLAVOR_RAM_ALT = 2048
-
- RALLY_DIR = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/openstack/rally')
- RALLY_SCENARIO_DIR = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/openstack/rally/scenario')
- TEMPLATE_DIR = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/openstack/rally/scenario/templates')
- SUPPORT_DIR = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/openstack/rally/scenario/support')
- USERS_AMOUNT = 2
- TENANTS_AMOUNT = 3
- ITERATIONS_AMOUNT = 10
- CONCURRENCY = 4
- RESULTS_DIR = os.path.join(getattr(config.CONF, 'dir_results'), 'rally')
- BLACKLIST_FILE = os.path.join(RALLY_DIR, "blacklist.txt")
- TEMP_DIR = os.path.join(RALLY_DIR, "var")
-
- RALLY_PRIVATE_NET_NAME = getattr(config.CONF, 'rally_network_name')
- RALLY_PRIVATE_SUBNET_NAME = getattr(config.CONF, 'rally_subnet_name')
- RALLY_PRIVATE_SUBNET_CIDR = getattr(config.CONF, 'rally_subnet_cidr')
- RALLY_ROUTER_NAME = getattr(config.CONF, 'rally_router_name')
-
- def __init__(self, **kwargs):
- """Initialize RallyBase object."""
- super(RallyBase, self).__init__(**kwargs)
- self.os_creds = kwargs.get('os_creds') or snaps_utils.get_credentials()
- self.guid = '-' + str(uuid.uuid4())
- self.creators = []
- self.mode = ''
- self.summary = []
- self.scenario_dir = ''
- self.image_name = None
- self.ext_net_name = None
- self.priv_net_id = None
- self.flavor_name = None
- self.flavor_alt_name = None
- self.smoke = None
- self.test_name = None
- self.start_time = None
- self.result = None
- self.details = None
- self.compute_cnt = 0
-
- def _build_task_args(self, test_file_name):
- """Build arguments for the Rally task."""
- task_args = {'service_list': [test_file_name]}
- task_args['image_name'] = self.image_name
- task_args['flavor_name'] = self.flavor_name
- task_args['flavor_alt_name'] = self.flavor_alt_name
- task_args['glance_image_location'] = self.GLANCE_IMAGE_PATH
- task_args['glance_image_format'] = self.GLANCE_IMAGE_FORMAT
- task_args['tmpl_dir'] = self.TEMPLATE_DIR
- task_args['sup_dir'] = self.SUPPORT_DIR
- task_args['users_amount'] = self.USERS_AMOUNT
- task_args['tenants_amount'] = self.TENANTS_AMOUNT
- task_args['use_existing_users'] = False
- task_args['iterations'] = self.ITERATIONS_AMOUNT
- task_args['concurrency'] = self.CONCURRENCY
- task_args['smoke'] = self.smoke
-
- ext_net = self.ext_net_name
- if ext_net:
- task_args['floating_network'] = str(ext_net)
- else:
- task_args['floating_network'] = ''
-
- net_id = self.priv_net_id
- if net_id:
- task_args['netid'] = str(net_id)
- else:
- task_args['netid'] = ''
-
- return task_args
-
- def _prepare_test_list(self, test_name):
- """Build the list of test cases to be executed."""
- test_yaml_file_name = 'opnfv-{}.yaml'.format(test_name)
- scenario_file_name = os.path.join(self.RALLY_SCENARIO_DIR,
- test_yaml_file_name)
-
- if not os.path.exists(scenario_file_name):
- scenario_file_name = os.path.join(self.scenario_dir,
- test_yaml_file_name)
-
- if not os.path.exists(scenario_file_name):
- raise Exception("The scenario '%s' does not exist."
- % scenario_file_name)
-
- LOGGER.debug('Scenario fetched from : %s', scenario_file_name)
- test_file_name = os.path.join(self.TEMP_DIR, test_yaml_file_name)
-
- if not os.path.exists(self.TEMP_DIR):
- os.makedirs(self.TEMP_DIR)
-
- self._apply_blacklist(scenario_file_name, test_file_name)
- return test_file_name
-
- @staticmethod
- def get_task_id(cmd_raw):
- """
- Get task id from command rally result.
-
- :param cmd_raw:
- :return: task_id as string
- """
- taskid_re = re.compile('^Task +(.*): started$')
- for line in cmd_raw.splitlines(True):
- line = line.strip()
- match = taskid_re.match(line)
- if match:
- return match.group(1)
- return None
-
- @staticmethod
- def task_succeed(json_raw):
- """
- Parse JSON from rally JSON results.
-
- :param json_raw:
- :return: Bool
- """
- rally_report = json.loads(json_raw)
- for report in rally_report:
- if report is None or report.get('result') is None:
- return False
-
- for result in report.get('result'):
- if result is None or len(result.get('error')) > 0:
- return False
-
- return True
-
- def _migration_supported(self):
- """Determine if migration is supported."""
- if self.compute_cnt > 1:
- return True
-
- return False
-
- @staticmethod
- def get_cmd_output(proc):
- """Get command stdout."""
- result = ""
- for line in proc.stdout:
- result += line
- return result
-
- @staticmethod
- def excl_scenario():
- """Exclude scenario."""
- black_tests = []
- try:
- with open(RallyBase.BLACKLIST_FILE, 'r') as black_list_file:
- black_list_yaml = yaml.safe_load(black_list_file)
-
- installer_type = env.get('INSTALLER_TYPE')
- deploy_scenario = env.get('DEPLOY_SCENARIO')
- if (bool(installer_type) and bool(deploy_scenario) and
- 'scenario' in black_list_yaml.keys()):
- for item in black_list_yaml['scenario']:
- scenarios = item['scenarios']
- installers = item['installers']
- in_it = RallyBase.in_iterable_re
- if (in_it(deploy_scenario, scenarios) and
- in_it(installer_type, installers)):
- tests = item['tests']
- black_tests.extend(tests)
- except Exception: # pylint: disable=broad-except
- LOGGER.debug("Scenario exclusion not applied.")
-
- return black_tests
-
- @staticmethod
- def in_iterable_re(needle, haystack):
- """
- Check if given needle is in the iterable haystack, using regex.
-
- :param needle: string to be matched
- :param haystack: iterable of strings (optionally regex patterns)
- :return: True if needle is eqial to any of the elements in haystack,
- or if a nonempty regex pattern in haystack is found in needle.
- """
- # match without regex
- if needle in haystack:
- return True
-
- for pattern in haystack:
- # match if regex pattern is set and found in the needle
- if pattern and re.search(pattern, needle) is not None:
- return True
-
- return False
-
- def excl_func(self):
- """Exclude functionalities."""
- black_tests = []
- func_list = []
-
- try:
- with open(RallyBase.BLACKLIST_FILE, 'r') as black_list_file:
- black_list_yaml = yaml.safe_load(black_list_file)
-
- if not self._migration_supported():
- func_list.append("no_migration")
-
- if 'functionality' in black_list_yaml.keys():
- for item in black_list_yaml['functionality']:
- functions = item['functions']
- for func in func_list:
- if func in functions:
- tests = item['tests']
- black_tests.extend(tests)
- except Exception: # pylint: disable=broad-except
- LOGGER.debug("Functionality exclusion not applied.")
-
- return black_tests
-
- def _apply_blacklist(self, case_file_name, result_file_name):
- """Apply blacklist."""
- LOGGER.debug("Applying blacklist...")
- cases_file = open(case_file_name, 'r')
- result_file = open(result_file_name, 'w')
-
- black_tests = list(set(self.excl_func() +
- self.excl_scenario()))
-
- if black_tests:
- LOGGER.debug("Blacklisted tests: " + str(black_tests))
-
- include = True
- for cases_line in cases_file:
- if include:
- for black_tests_line in black_tests:
- if re.search(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()
-
- @staticmethod
- def file_is_empty(file_name):
- """Determine is a file is empty."""
- try:
- if os.stat(file_name).st_size > 0:
- return False
- except Exception: # pylint: disable=broad-except
- pass
-
- return True
-
- def _run_task(self, test_name):
- """Run a task."""
- LOGGER.info('Starting test scenario "%s" ...', test_name)
-
- task_file = os.path.join(self.RALLY_DIR, 'task.yaml')
- if not os.path.exists(task_file):
- LOGGER.error("Task file '%s' does not exist.", task_file)
- raise Exception("Task file '%s' does not exist.", task_file)
-
- file_name = self._prepare_test_list(test_name)
- if self.file_is_empty(file_name):
- LOGGER.info('No tests for scenario "%s"', test_name)
- return
-
- cmd = (["rally", "task", "start", "--abort-on-sla-failure", "--task",
- task_file, "--task-args",
- str(self._build_task_args(test_name))])
- LOGGER.debug('running command: %s', cmd)
-
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- output = self.get_cmd_output(proc)
- task_id = self.get_task_id(output)
-
- LOGGER.debug('task_id : %s', task_id)
-
- if task_id is None:
- LOGGER.error('Failed to retrieve task_id, validating task...')
- cmd = (["rally", "task", "validate", "--task", task_file,
- "--task-args", str(self._build_task_args(test_name))])
- LOGGER.debug('running command: %s', cmd)
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- output = self.get_cmd_output(proc)
- LOGGER.error("Task validation result:" + "\n" + output)
- return
-
- # check for result directory and create it otherwise
- if not os.path.exists(self.RESULTS_DIR):
- LOGGER.debug('%s does not exist, we create it.',
- self.RESULTS_DIR)
- os.makedirs(self.RESULTS_DIR)
-
- # get and save rally operation JSON result
- cmd = (["rally", "task", "detailed", task_id])
- LOGGER.debug('running command: %s', cmd)
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- json_detailed = self.get_cmd_output(proc)
- LOGGER.info('%s', json_detailed)
-
- cmd = (["rally", "task", "results", task_id])
- LOGGER.debug('running command: %s', cmd)
- proc = subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- json_results = self.get_cmd_output(proc)
- self._append_summary(json_results, test_name)
- report_json_name = 'opnfv-{}.json'.format(test_name)
- report_json_dir = os.path.join(self.RESULTS_DIR, report_json_name)
- with open(report_json_dir, 'w') as r_file:
- LOGGER.debug('saving json file')
- r_file.write(json_results)
-
- # write html report file
- report_html_name = 'opnfv-{}.html'.format(test_name)
- report_html_dir = os.path.join(self.RESULTS_DIR, report_html_name)
- cmd = (["rally", "task", "report", task_id, "--out", report_html_dir])
- LOGGER.debug('running command: %s', cmd)
- subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
-
- # parse JSON operation result
- if self.task_succeed(json_results):
- LOGGER.info('Test scenario: "{}" OK.'.format(test_name) + "\n")
- else:
- LOGGER.info('Test scenario: "{}" Failed.'.format(test_name) + "\n")
-
- def _append_summary(self, json_raw, test_name):
- """Update statistics summary info."""
- nb_tests = 0
- nb_success = 0
- overall_duration = 0.0
-
- rally_report = json.loads(json_raw)
- for report in rally_report:
- if report.get('full_duration'):
- overall_duration += report.get('full_duration')
-
- if report.get('result'):
- for result in report.get('result'):
- nb_tests += 1
- if not result.get('error'):
- nb_success += 1
-
- scenario_summary = {'test_name': test_name,
- 'overall_duration': overall_duration,
- 'nb_tests': nb_tests,
- 'nb_success': nb_success}
- self.summary.append(scenario_summary)
-
- def _prepare_env(self):
- """Create resources needed by test scenarios."""
- LOGGER.debug('Validating the test name...')
- if self.test_name not in self.TESTS:
- raise Exception("Test name '%s' is invalid" % self.test_name)
-
- network_name = self.RALLY_PRIVATE_NET_NAME + self.guid
- subnet_name = self.RALLY_PRIVATE_SUBNET_NAME + self.guid
- router_name = self.RALLY_ROUTER_NAME + self.guid
- self.image_name = self.GLANCE_IMAGE_NAME + self.guid
- self.flavor_name = self.FLAVOR_NAME + self.guid
- self.flavor_alt_name = self.FLAVOR_ALT_NAME + self.guid
- self.ext_net_name = snaps_utils.get_ext_net_name(self.os_creds)
- self.compute_cnt = snaps_utils.get_active_compute_cnt(self.os_creds)
-
- LOGGER.debug("Creating image '%s'...", self.image_name)
- image_creator = deploy_utils.create_image(
- self.os_creds, ImageConfig(
- name=self.image_name,
- image_file=self.GLANCE_IMAGE_PATH,
- img_format=self.GLANCE_IMAGE_FORMAT,
- image_user=self.GLANCE_IMAGE_USERNAME,
- public=True,
- extra_properties=self.GLANCE_IMAGE_EXTRA_PROPERTIES))
- if image_creator is None:
- raise Exception("Failed to create image")
- self.creators.append(image_creator)
-
- LOGGER.debug("Creating network '%s'...", network_name)
-
- rally_network_type = getattr(config.CONF, 'rally_network_type', None)
- rally_physical_network = getattr(
- config.CONF, 'rally_physical_network', None)
- rally_segmentation_id = getattr(
- config.CONF, 'rally_segmentation_id', None)
-
- network_creator = deploy_utils.create_network(
- self.os_creds, NetworkConfig(
- name=network_name,
- shared=True,
- network_type=rally_network_type,
- physical_network=rally_physical_network,
- segmentation_id=rally_segmentation_id,
- subnet_settings=[SubnetConfig(
- name=subnet_name,
- cidr=self.RALLY_PRIVATE_SUBNET_CIDR)]))
- if network_creator is None:
- raise Exception("Failed to create private network")
- self.priv_net_id = network_creator.get_network().id
- self.creators.append(network_creator)
-
- LOGGER.debug("Creating router '%s'...", router_name)
- router_creator = deploy_utils.create_router(
- self.os_creds, RouterConfig(
- name=router_name,
- external_gateway=self.ext_net_name,
- internal_subnets=[subnet_name]))
- if router_creator is None:
- raise Exception("Failed to create router")
- self.creators.append(router_creator)
-
- LOGGER.debug("Creating flavor '%s'...", self.flavor_name)
- flavor_creator = OpenStackFlavor(
- self.os_creds, FlavorConfig(
- name=self.flavor_name, ram=self.FLAVOR_RAM, disk=1, vcpus=1,
- metadata=self.FLAVOR_EXTRA_SPECS))
- if flavor_creator is None or flavor_creator.create() is None:
- raise Exception("Failed to create flavor")
- self.creators.append(flavor_creator)
-
- LOGGER.debug("Creating flavor '%s'...", self.flavor_alt_name)
- flavor_alt_creator = OpenStackFlavor(
- self.os_creds, FlavorConfig(
- name=self.flavor_alt_name, ram=self.FLAVOR_RAM_ALT, disk=1,
- vcpus=1, metadata=self.FLAVOR_EXTRA_SPECS))
- if flavor_alt_creator is None or flavor_alt_creator.create() is None:
- raise Exception("Failed to create flavor")
- self.creators.append(flavor_alt_creator)
-
- def _run_tests(self):
- """Execute tests."""
- if self.test_name == 'all':
- for test in self.TESTS:
- if test == 'all' or test == 'vm':
- continue
- self._run_task(test)
- else:
- self._run_task(self.test_name)
-
- def _generate_report(self):
- """Generate test execution summary report."""
- total_duration = 0.0
- total_nb_tests = 0
- total_nb_success = 0
- payload = []
-
- res_table = prettytable.PrettyTable(
- padding_width=2,
- field_names=['Module', 'Duration', 'nb. Test Run', 'Success'])
- res_table.align['Module'] = "l"
- res_table.align['Duration'] = "r"
- res_table.align['Success'] = "r"
-
- # for each scenario we draw a row for the table
- for item in self.summary:
- total_duration += item['overall_duration']
- total_nb_tests += item['nb_tests']
- total_nb_success += item['nb_success']
- try:
- success_avg = 100 * item['nb_success'] / item['nb_tests']
- except ZeroDivisionError:
- success_avg = 0
- success_str = str("{:0.2f}".format(success_avg)) + '%'
- duration_str = time.strftime("%M:%S",
- time.gmtime(item['overall_duration']))
- res_table.add_row([item['test_name'], duration_str,
- item['nb_tests'], success_str])
- payload.append({'module': item['test_name'],
- 'details': {'duration': item['overall_duration'],
- 'nb tests': item['nb_tests'],
- 'success': success_str}})
-
- total_duration_str = time.strftime("%H:%M:%S",
- time.gmtime(total_duration))
- try:
- self.result = 100 * total_nb_success / total_nb_tests
- except ZeroDivisionError:
- self.result = 100
- success_rate = "{:0.2f}".format(self.result)
- success_rate_str = str(success_rate) + '%'
- res_table.add_row(["", "", "", ""])
- res_table.add_row(["TOTAL:", total_duration_str, total_nb_tests,
- success_rate_str])
-
- LOGGER.info("Rally Summary Report:\n\n%s\n", res_table.get_string())
- LOGGER.info("Rally '%s' success_rate is %s%%",
- self.case_name, success_rate)
- payload.append({'summary': {'duration': total_duration,
- 'nb tests': total_nb_tests,
- 'nb success': success_rate}})
- self.details = payload
-
- def _clean_up(self):
- """Cleanup all OpenStack objects. Should be called on completion."""
- for creator in reversed(self.creators):
- try:
- creator.clean()
- except Exception as exc: # pylint: disable=broad-except
- LOGGER.error('Unexpected error cleaning - %s', exc)
-
- @energy.enable_recording
- def run(self, **kwargs):
- """Run testcase."""
- self.start_time = time.time()
- try:
- conf_utils.create_rally_deployment()
- self._prepare_env()
- self._run_tests()
- self._generate_report()
- res = testcase.TestCase.EX_OK
- except Exception as exc: # pylint: disable=broad-except
- LOGGER.error('Error with run: %s', exc)
- res = testcase.TestCase.EX_RUN_ERROR
- finally:
- self._clean_up()
-
- self.stop_time = time.time()
- return res
-
-
-class RallySanity(RallyBase):
- """Rally sanity testcase implementation."""
-
- def __init__(self, **kwargs):
- """Initialize RallySanity object."""
- if "case_name" not in kwargs:
- kwargs["case_name"] = "rally_sanity"
- super(RallySanity, self).__init__(**kwargs)
- self.mode = 'sanity'
- self.test_name = 'all'
- self.smoke = True
- self.scenario_dir = os.path.join(self.RALLY_SCENARIO_DIR, 'sanity')
-
-
-class RallyFull(RallyBase):
- """Rally full testcase implementation."""
-
- def __init__(self, **kwargs):
- """Initialize RallyFull object."""
- if "case_name" not in kwargs:
- kwargs["case_name"] = "rally_full"
- super(RallyFull, self).__init__(**kwargs)
- self.mode = 'full'
- self.test_name = 'all'
- self.smoke = False
- self.scenario_dir = os.path.join(self.RALLY_SCENARIO_DIR, 'full')
diff --git a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-ceilometer.yaml b/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-ceilometer.yaml
deleted file mode 100644
index 7efb5a83..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-ceilometer.yaml
+++ /dev/null
@@ -1,458 +0,0 @@
- CeilometerMeters.list_meters:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "benchmark_meter"
- counter_type: "gauge"
- counter_unit: "%"
- counter_volume: 100
- resources_per_tenant: 100
- samples_per_resource: 100
- timestamp_interval: 10
- metadata_list:
- -
- status: "active"
- name: "rally benchmark on"
- deleted: "false"
- -
- status: "terminated"
- name: "rally benchmark off"
- deleted: "true"
- {% endcall %}
- args:
- limit: 50
- metadata_query:
- status: "terminated"
- sla:
- {{ no_failures_sla() }}
-
- CeilometerResource.list_resources:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "benchmark_meter"
- counter_type: "gauge"
- counter_unit: "%"
- counter_volume: 100
- resources_per_tenant: 100
- samples_per_resource: 100
- timestamp_interval: 10
- metadata_list:
- -
- status: "active"
- name: "rally benchmark on"
- deleted: "false"
- -
- status: "terminated"
- name: "rally benchmark off"
- deleted: "true"
- {% endcall %}
- args:
- limit: 50
- metadata_query:
- status: "terminated"
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_alarm_and_get_history:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- state: "ok"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_and_delete_alarm:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_and_get_alarm:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_and_list_alarm:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerQueries.create_and_query_alarm_history:
- -
- args:
- orderby: !!null
- limit: !!null
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerQueries.create_and_query_alarms:
- -
- args:
- filter: {"and": [{"!=": {"state": "dummy_state"}},{"=": {"type": "threshold"}}]}
- orderby: !!null
- limit: 10
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerQueries.create_and_query_samples:
- -
- args:
- filter: {"=": {"counter_unit": "instance"}}
- orderby: !!null
- limit: 10
- counter_name: "cpu_util"
- counter_type: "gauge"
- counter_unit: "instance"
- counter_volume: 1.0
- resource_id: "resource_id"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_and_update_alarm:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerStats.create_meter_and_get_stats:
- -
- args:
- user_id: "user-id"
- resource_id: "resource-id"
- counter_volume: 1.0
- counter_unit: ""
- counter_type: "cumulative"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerEvents.create_user_and_get_event:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerEvents.create_user_and_list_events:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerEvents.create_user_and_list_event_types:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerTraits.create_user_and_list_trait_descriptions:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerTraits.create_user_and_list_traits:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerStats.get_stats:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "benchmark_meter"
- counter_type: "gauge"
- counter_unit: "%"
- counter_volume: 100
- resources_per_tenant: 100
- samples_per_resource: 100
- timestamp_interval: 10
- metadata_list:
- -
- status: "active"
- name: "rally benchmark on"
- deleted: "false"
- -
- status: "terminated"
- name: "rally benchmark off"
- deleted: "true"
- {% endcall %}
- args:
- meter_name: "benchmark_meter"
- filter_by_user_id: true
- filter_by_project_id: true
- filter_by_resource_id: true
- metadata_query:
- status: "terminated"
- period: 300
- groupby: "resource_id"
- sla:
- {{ no_failures_sla() }}
-
- CeilometerResource.get_tenant_resources:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "cpu_util"
- counter_type: "gauge"
- counter_volume: 1.0
- counter_unit: "instance"
- {% endcall %}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.list_alarms:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerSamples.list_matched_samples:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "cpu_util"
- counter_type: "gauge"
- counter_unit: "instance"
- counter_volume: 1.0
- resources_per_tenant: 100
- samples_per_resource: 100
- timestamp_interval: 60
- metadata_list:
- - status: "active"
- name: "fake_resource"
- deleted: "False"
- created_at: "2015-09-04T12:34:19.000000"
- - status: "not_active"
- name: "fake_resource_1"
- deleted: "False"
- created_at: "2015-09-10T06:55:12.000000"
- {% endcall %}
- args:
- limit: 50
- filter_by_user_id: true
- filter_by_project_id: true
- filter_by_resource_id: true
- metadata_query:
- status: "not_active"
- sla:
- {{ no_failures_sla() }}
-
- CeilometerMeters.list_matched_meters:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "benchmark_meter"
- counter_type: "gauge"
- counter_unit: "%"
- counter_volume: 100
- resources_per_tenant: 100
- samples_per_resource: 100
- timestamp_interval: 10
- metadata_list:
- -
- status: "active"
- name: "rally benchmark on"
- deleted: "false"
- -
- status: "terminated"
- name: "rally benchmark off"
- deleted: "true"
- {% endcall %}
- args:
- limit: 50
- filter_by_user_id: true
- filter_by_project_id: true
- filter_by_resource_id: true
- metadata_query:
- status: "terminated"
- sla:
- {{ no_failures_sla() }}
-
- CeilometerResource.list_matched_resources:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "benchmark_meter"
- counter_type: "gauge"
- counter_unit: "%"
- counter_volume: 100
- resources_per_tenant: 100
- samples_per_resource: 100
- timestamp_interval: 10
- metadata_list:
- -
- status: "active"
- name: "rally benchmark on"
- deleted: "false"
- -
- status: "terminated"
- name: "rally benchmark off"
- deleted: "true"
- {% endcall %}
- args:
- limit: 50
- filter_by_user_id: true
- filter_by_project_id: true
- metadata_query:
- status: "terminated"
- sla:
- {{ no_failures_sla() }}
-
- CeilometerSamples.list_samples:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "cpu_util"
- counter_type: "gauge"
- counter_unit: "instance"
- counter_volume: 1.0
- resources_per_tenant: 100
- samples_per_resource: 100
- timestamp_interval: 60
- metadata_list:
- - status: "active"
- name: "fake_resource"
- deleted: "False"
- created_at: "2015-09-04T12:34:19.000000"
- - status: "not_active"
- name: "fake_resource_1"
- deleted: "False"
- created_at: "2015-09-10T06:55:12.000000"
- batch_size: 5
- {% endcall %}
- args:
- limit: 50
- metadata_query:
- status: "not_active"
- sla:
- {{ no_failures_sla() }}
-
diff --git a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-cinder.yaml b/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-cinder.yaml
deleted file mode 100644
index f36d0b2d..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-cinder.yaml
+++ /dev/null
@@ -1,345 +0,0 @@
- CinderVolumes.create_and_attach_volume:
- -
- args:
- {{ vm_params(image_name,flavor_name,1) }}
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_and_list_snapshots:
- -
- args:
- detailed: true
- force: false
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {{ volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_and_list_volume:
- -
- args:
- detailed: true
- {{ vm_params(image_name,none,1) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- detailed: true
- size: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_and_upload_volume_to_image:
- -
- args:
- container_format: "bare"
- disk_format: "raw"
- do_delete: true
- force: false
- size: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_nested_snapshots_and_attach_volume:
- -
- args:
- {{ vm_params(image_name,flavor_name) }}
- nested_level: 1
- size:
- max: 1
- min: 1
- create_vm_params:
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_snapshot_and_attach_volume:
- -
- args:
- {{ vm_params(image_name,flavor_name) }}
- size:
- min: 1
- max: 5
- create_vm_params:
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_volume:
- -
- args:
- size: 1
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- -
- args:
- size:
- min: 1
- max: 5
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.list_volumes:
- -
- args:
- detailed: True
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- volumes:
- size: 1
- volumes_per_tenant: 4
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_and_delete_snapshot:
- -
- args:
- force: false
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {{ volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_and_delete_volume:
- -
- args:
- size:
- max: 1
- min: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- {{ vm_params(image_name,none,1) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- size: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_and_extend_volume:
- -
- args:
- new_size: 2
- size: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_from_volume_and_delete_volume:
- -
- args:
- size: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {{ volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderQos.create_and_get_qos:
- -
- args:
- consumer: "both"
- write_iops_sec: "10"
- read_iops_sec: "1000"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderQos.create_and_list_qos:
- -
- args:
- consumer: "both"
- write_iops_sec: "10"
- read_iops_sec: "1000"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderQos.create_and_set_qos:
- -
- args:
- consumer: "back-end"
- write_iops_sec: "10"
- read_iops_sec: "1000"
- set_consumer: "both"
- set_write_iops_sec: "11"
- set_read_iops_sec: "1001"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumeTypes.create_and_get_volume_type:
- -
- args:
- description: "rally tests creating types"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumeTypes.create_and_list_volume_types:
- -
- args:
- description: "rally tests creating types"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumeTypes.create_and_update_volume_type:
- -
- args:
- description: "test"
- update_description: "test update"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumeTypes.create_volume_type_and_encryption_type:
- -
- args:
- description: "rally tests creating types"
- provider: "LuksEncryptor"
- cipher: "aes-xts-plain64"
- key_size: 512
- control_location: "front-end"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumeTypes.create_volume_type_add_and_list_type_access:
- -
- args:
- description: "rally tests creating types"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-glance.yaml b/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-glance.yaml
deleted file mode 100644
index dfc1fc15..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-glance.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
- GlanceImages.create_and_delete_image:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.create_and_list_image:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.list_images:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.create_image_and_boot_instances:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- flavor:
- name: {{ flavor_name }}
- number_instances: 2
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- quotas:
- {{ unlimited_nova() }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.create_and_deactivate_image:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.create_and_download_image:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.create_and_get_image:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.create_and_update_image:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-heat.yaml b/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-heat.yaml
deleted file mode 100644
index 3adf8f7f..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-heat.yaml
+++ /dev/null
@@ -1,166 +0,0 @@
- HeatStacks.create_and_delete_stack:
- -
- args:
- template_path: "{{ tmpl_dir }}/default.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- template_path: "{{ tmpl_dir }}/server_with_ports.yaml.template"
- parameters:
- public_net: {{ floating_network }}
- image: {{ image_name }}
- flavor: {{ flavor_name }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- template_path: "{{ tmpl_dir }}/server_with_volume.yaml.template"
- parameters:
- image: {{ image_name }}
- flavor: {{ flavor_name }}
- network_id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- HeatStacks.create_and_list_stack:
- -
- args:
- template_path: "{{ tmpl_dir }}/default.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- HeatStacks.create_update_delete_stack:
- -
- args:
- template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_random_strings_add.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_random_strings_delete.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- template_path: "{{ tmpl_dir }}/resource_group.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_resource_group_increase.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- template_path: "{{ tmpl_dir }}/autoscaling_policy.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_autoscaling_policy_inplace.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- template_path: "{{ tmpl_dir }}/resource_group.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_resource_group_reduce.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_random_strings_replace.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- HeatStacks.create_check_delete_stack:
- -
- args:
- template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- HeatStacks.create_suspend_resume_delete_stack:
- -
- args:
- template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- HeatStacks.list_stacks_and_resources:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-neutron.yaml b/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-neutron.yaml
deleted file mode 100644
index 2951e953..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-neutron.yaml
+++ /dev/null
@@ -1,362 +0,0 @@
- NeutronNetworks.create_and_update_networks:
- -
- args:
- network_create_args: {}
- network_update_args:
- admin_state_up: false
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- network: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_update_ports:
- -
- args:
- network_create_args: {}
- port_create_args: {}
- port_update_args:
- admin_state_up: false
- device_id: "dummy_id"
- device_owner: "dummy_owner"
- ports_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- port: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_update_routers:
- -
- args:
- network_create_args: {}
- router_create_args: {}
- router_update_args:
- admin_state_up: false
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- port: -1
- router: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_update_subnets:
- -
- args:
- network_create_args: {}
- subnet_cidr_start: "1.4.0.0/16"
- subnet_create_args: {}
- subnet_update_args:
- enable_dhcp: false
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_delete_networks:
- -
- args:
- network_create_args: {}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- network: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_delete_ports:
- -
- args:
- network_create_args: {}
- port_create_args: {}
- ports_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- port: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_delete_routers:
- -
- args:
- network_create_args: {}
- router_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- port: -1
- router: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_delete_subnets:
- -
- args:
- network_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_list_networks:
- -
- args:
- network_create_args: {}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- network: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_list_ports:
- -
- args:
- network_create_args: {}
- port_create_args: {}
- ports_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- port: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_list_routers:
- -
- args:
- network_create_args: {}
- router_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- router: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_list_subnets:
- -
- args:
- network_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronSecurityGroup.create_and_delete_security_groups:
- -
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- security_group: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronSecurityGroup.create_and_delete_security_group_rule:
- -
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- security_group: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronSecurityGroup.create_and_list_security_group_rules:
- -
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- security_group: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronSecurityGroup.create_and_show_security_group:
- -
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- security_group: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.set_and_clear_router_gateway:
- -
- args:
- network_create_args:
- router:external: True
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- network: -1
- router: -1
- roles:
- - "admin"
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_show_ports:
- -
- args:
- ports_per_network: 2
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- router: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_show_routers:
- -
- args:
- subnets_per_network: 2
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- router: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_show_subnets:
- -
- args:
- subnets_per_network: 2
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-nova.yaml b/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-nova.yaml
deleted file mode 100644
index 512448fd..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/full/opnfv-nova.yaml
+++ /dev/null
@@ -1,416 +0,0 @@
- NovaKeypair.create_and_delete_keypair:
- -
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_nova(keypairs=true) }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaKeypair.create_and_list_keypairs:
- -
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_nova(keypairs=true) }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_bounce_server:
- -
- args:
- actions:
- -
- hard_reboot: 1
- -
- soft_reboot: 1
- -
- stop_start: 1
- -
- rescue_unrescue: 1
- {{ vm_params(image_name, flavor_name) }}
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_delete_server:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_list_server:
- -
- args:
- detailed: true
- {{ vm_params(image_name, flavor_name) }}
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_rebuild_server:
- -
- args:
- {{ vm_params(flavor=flavor_name) }}
- from_image:
- name: {{ image_name }}
- to_image:
- name: {{ image_name }}
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.snapshot_server:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_from_volume:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- volume_size: 10
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.list_servers:
- -
- args:
- detailed: True
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- servers:
- {{ vm_params(image_name,flavor_name,none)|indent(2,true) }}
- servers_per_tenant: 2
- auto_assign_nic: true
- network: {}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.resize_server:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- to_flavor:
- name: {{ flavor_alt_name }}
- confirm: true
- force_delete: false
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_live_migrate_server:
- - args:
- {{ vm_params(image_name, flavor_name) }}
- block_migration: false
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_attach_created_volume_and_live_migrate:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- size: 10
- block_migration: false
- boot_server_kwargs:
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_from_volume_and_live_migrate:
- - args:
- {{ vm_params(image_name, flavor_name) }}
- block_migration: false
- volume_size: 10
- force_delete: false
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaKeypair.boot_and_delete_server_with_keypair:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- server_kwargs:
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova(keypairs=true) }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_from_volume_and_delete:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- volume_size: 5
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_volumes() }}
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.pause_and_unpause_server:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- force_delete: false
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_migrate_server:
- - args:
- {{ vm_params(image_name, flavor_name) }}
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_and_list_interfaces:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- auto_assign_nic: true
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_get_console_url:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- console_type: "novnc"
- auto_assign_nic: true
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_and_attach_interface:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- network_create_args: {}
- subnet_create_args: {}
- boot_server_args:
- auto_assign_nic: true
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_attach_volume_and_list_attachments:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- volume_size: 1
- volume_num: 1
- create_volume_kwargs: {}
- boot_server_kwargs:
- auto_assign_nic: true
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServerGroups.create_and_delete_server_group:
- -
- args:
- policies: ["affinity"]
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServerGroups.create_and_get_server_group:
- -
- args:
- policies: ["affinity"]
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServerGroups.create_and_list_server_groups:
- -
- args:
- policies: ["affinity"]
- all_projects: false
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/opnfv-authenticate.yaml b/functest/opnfv_tests/openstack/rally/scenario/opnfv-authenticate.yaml
deleted file mode 100644
index a04e4c1c..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/opnfv-authenticate.yaml
+++ /dev/null
@@ -1,63 +0,0 @@
- Authenticate.keystone:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Authenticate.validate_cinder:
- -
- args:
- repetitions: 2
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Authenticate.validate_glance:
- -
- args:
- repetitions: 2
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Authenticate.validate_heat:
- -
- args:
- repetitions: 2
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Authenticate.validate_neutron:
- -
- args:
- repetitions: 2
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Authenticate.validate_nova:
- -
- args:
- repetitions: 2
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/opnfv-keystone.yaml b/functest/opnfv_tests/openstack/rally/scenario/opnfv-keystone.yaml
deleted file mode 100644
index bfc9948b..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/opnfv-keystone.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
- KeystoneBasic.add_and_remove_user_role:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_add_and_list_user_roles:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_and_list_tenants:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_and_delete_role:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_and_delete_service:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.get_entities:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_update_and_delete_tenant:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_user:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_tenant:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_and_list_users:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- KeystoneBasic.create_tenant_with_users:
- -
- args:
- users_per_tenant: 10
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/opnfv-quotas.yaml b/functest/opnfv_tests/openstack/rally/scenario/opnfv-quotas.yaml
deleted file mode 100644
index a0682acc..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/opnfv-quotas.yaml
+++ /dev/null
@@ -1,54 +0,0 @@
- Quotas.cinder_update_and_delete:
- -
- args:
- max_quota: 1024
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Quotas.cinder_update:
- -
- args:
- max_quota: 1024
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Quotas.neutron_update:
- -
- args:
- max_quota: 1024
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Quotas.nova_update_and_delete:
- -
- args:
- max_quota: 1024
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- Quotas.nova_update:
- -
- args:
- max_quota: 1024
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/opnfv-vm.yaml b/functest/opnfv_tests/openstack/rally/scenario/opnfv-vm.yaml
deleted file mode 100644
index 74f50992..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/opnfv-vm.yaml
+++ /dev/null
@@ -1,42 +0,0 @@
- VMTasks.boot_runcommand_delete:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- floating_network: {{ floating_network }}
- force_delete: false
- command:
- interpreter: /bin/sh
- script_file: {{ sup_dir }}/instance_dd_test.sh
- username: cirros
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- fixed_network: private
- floating_network: {{ floating_network }}
- force_delete: false
- command:
- interpreter: /bin/sh
- script_file: {{ sup_dir }}/instance_dd_test.sh
- use_floatingip: true
- username: cirros
- nics:
- - net-id: {{ netid }}
- volume_args:
- size: 2
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-ceilometer.yaml b/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-ceilometer.yaml
deleted file mode 100644
index bb070cd3..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-ceilometer.yaml
+++ /dev/null
@@ -1,247 +0,0 @@
- CeilometerAlarms.create_alarm_and_get_history:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- state: "ok"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_and_delete_alarm:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_and_get_alarm:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_and_list_alarm:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerQueries.create_and_query_alarm_history:
- -
- args:
- orderby: !!null
- limit: !!null
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerQueries.create_and_query_alarms:
- -
- args:
- filter: {"and": [{"!=": {"state": "dummy_state"}},{"=": {"type": "threshold"}}]}
- orderby: !!null
- limit: 10
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerQueries.create_and_query_samples:
- -
- args:
- filter: {"=": {"counter_unit": "instance"}}
- orderby: !!null
- limit: 10
- counter_name: "cpu_util"
- counter_type: "gauge"
- counter_unit: "instance"
- counter_volume: 1.0
- resource_id: "resource_id"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.create_and_update_alarm:
- -
- args:
- meter_name: "ram_util"
- threshold: 10.0
- type: "threshold"
- statistic: "avg"
- alarm_actions: ["http://localhost:8776/alarm"]
- ok_actions: ["http://localhost:8776/ok"]
- insufficient_data_actions: ["http://localhost:8776/notok"]
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerEvents.create_user_and_get_event:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerEvents.create_user_and_list_events:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerEvents.create_user_and_list_event_types:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerTraits.create_user_and_list_trait_descriptions:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerTraits.create_user_and_list_traits:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerStats.get_stats:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "benchmark_meter"
- counter_type: "gauge"
- counter_unit: "%"
- counter_volume: 100
- resources_per_tenant: 100
- samples_per_resource: 100
- timestamp_interval: 10
- metadata_list:
- -
- status: "active"
- name: "rally benchmark on"
- deleted: "false"
- -
- status: "terminated"
- name: "rally benchmark off"
- deleted: "true"
- {% endcall %}
- args:
- meter_name: "benchmark_meter"
- filter_by_user_id: true
- filter_by_project_id: true
- filter_by_resource_id: true
- metadata_query:
- status: "terminated"
- period: 300
- groupby: "resource_id"
- sla:
- {{ no_failures_sla() }}
-
- CeilometerResource.get_tenant_resources:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- ceilometer:
- counter_name: "cpu_util"
- counter_type: "gauge"
- counter_volume: 1.0
- counter_unit: "instance"
- {% endcall %}
- sla:
- {{ no_failures_sla() }}
-
- CeilometerAlarms.list_alarms:
- -
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-cinder.yaml b/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-cinder.yaml
deleted file mode 100644
index 83235807..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-cinder.yaml
+++ /dev/null
@@ -1,139 +0,0 @@
- CinderVolumes.create_and_delete_snapshot:
- -
- args:
- force: false
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {{ volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_and_delete_volume:
- -
- args:
- size:
- max: 1
- min: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- {{ vm_params(image_name,none,1) }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
- -
- args:
- size: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_and_extend_volume:
- -
- args:
- new_size: 2
- size: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumes.create_from_volume_and_delete_volume:
- -
- args:
- size: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- {{ unlimited_volumes() }}
- {{ volumes() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderQos.create_and_list_qos:
- -
- args:
- consumer: "both"
- write_iops_sec: "10"
- read_iops_sec: "1000"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderQos.create_and_set_qos:
- -
- args:
- consumer: "back-end"
- write_iops_sec: "10"
- read_iops_sec: "1000"
- set_consumer: "both"
- set_write_iops_sec: "11"
- set_read_iops_sec: "1001"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumeTypes.create_and_list_volume_types:
- -
- args:
- description: "rally tests creating types"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- CinderVolumeTypes.create_volume_type_and_encryption_type:
- -
- args:
- description: "rally tests creating types"
- provider: "LuksEncryptor"
- cipher: "aes-xts-plain64"
- key_size: 512
- control_location: "front-end"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-glance.yaml b/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-glance.yaml
deleted file mode 100644
index 1b61762f..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-glance.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
- GlanceImages.create_and_delete_image:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.create_and_list_image:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.list_images:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- GlanceImages.create_image_and_boot_instances:
- -
- args:
- {{ glance_args(location=glance_image_location, type=glance_image_format) }}
- flavor:
- name: {{ flavor_name }}
- number_instances: 2
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- quotas:
- {{ unlimited_nova() }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-heat.yaml b/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-heat.yaml
deleted file mode 100644
index 5df49aaa..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-heat.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
- HeatStacks.create_update_delete_stack:
- -
- args:
- template_path: "{{ tmpl_dir }}/autoscaling_policy.yaml.template"
- updated_template_path: "{{ tmpl_dir }}/updated_autoscaling_policy_inplace.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- HeatStacks.create_check_delete_stack:
- -
- args:
- template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- HeatStacks.create_suspend_resume_delete_stack:
- -
- args:
- template_path: "{{ tmpl_dir }}/random_strings.yaml.template"
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- HeatStacks.list_stacks_and_resources:
- -
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- roles:
- - "heat_stack_owner"
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-neutron.yaml b/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-neutron.yaml
deleted file mode 100644
index da99a48b..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-neutron.yaml
+++ /dev/null
@@ -1,197 +0,0 @@
- NeutronNetworks.create_and_delete_networks:
- -
- args:
- network_create_args: {}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- network: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_delete_ports:
- -
- args:
- network_create_args: {}
- port_create_args: {}
- ports_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- port: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_delete_routers:
- -
- args:
- network_create_args: {}
- router_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- port: -1
- router: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_delete_subnets:
- -
- args:
- network_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_list_networks:
- -
- args:
- network_create_args: {}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- network: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_list_ports:
- -
- args:
- network_create_args: {}
- port_create_args: {}
- ports_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- port: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_list_routers:
- -
- args:
- network_create_args: {}
- router_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- router: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.create_and_list_subnets:
- -
- args:
- network_create_args: {}
- subnet_cidr_start: "1.1.0.0/30"
- subnet_create_args: {}
- subnets_per_network: 1
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- quotas:
- neutron:
- network: -1
- subnet: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronSecurityGroup.create_and_delete_security_groups:
- -
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- security_group: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronSecurityGroup.create_and_delete_security_group_rule:
- -
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- security_group: -1
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NeutronNetworks.set_and_clear_router_gateway:
- -
- args:
- network_create_args:
- router:external: True
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- quotas:
- neutron:
- network: -1
- router: -1
- roles:
- - "admin"
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-nova.yaml b/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-nova.yaml
deleted file mode 100644
index 801938c4..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/sanity/opnfv-nova.yaml
+++ /dev/null
@@ -1,144 +0,0 @@
- NovaServers.boot_and_live_migrate_server:
- - args:
- {{ vm_params(image_name, flavor_name) }}
- block_migration: false
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_attach_created_volume_and_live_migrate:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- size: 10
- block_migration: false
- boot_server_kwargs:
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_from_volume_and_live_migrate:
- - args:
- {{ vm_params(image_name, flavor_name) }}
- block_migration: false
- volume_size: 10
- force_delete: false
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaKeypair.boot_and_delete_server_with_keypair:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- server_kwargs:
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova(keypairs=true) }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_from_volume_and_delete:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- volume_size: 5
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_volumes() }}
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.pause_and_unpause_server:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- force_delete: false
- nics:
- - net-id: {{ netid }}
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network:
- networks_per_tenant: 1
- start_cidr: "100.1.0.0/25"
- quotas:
- {{ unlimited_neutron() }}
- {{ unlimited_nova() }}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_and_migrate_server:
- - args:
- {{ vm_params(image_name, flavor_name) }}
- nics:
- - net-id: {{ netid }}
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServers.boot_server_and_list_interfaces:
- -
- args:
- {{ vm_params(image_name, flavor_name) }}
- auto_assign_nic: true
- context:
- {% call user_context(tenants_amount, users_amount, use_existing_users) %}
- network: {}
- {% endcall %}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
-
- NovaServerGroups.create_and_delete_server_group:
- -
- args:
- policies: ["affinity"]
- context:
- {{ user_context(tenants_amount, users_amount, use_existing_users) }}
- runner:
- {{ constant_runner(concurrency=concurrency, times=iterations, is_smoke=smoke) }}
- sla:
- {{ no_failures_sla() }}
diff --git a/functest/opnfv_tests/openstack/rally/scenario/support/instance_dd_test.sh b/functest/opnfv_tests/openstack/rally/scenario/support/instance_dd_test.sh
deleted file mode 100644
index e3bf2340..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/support/instance_dd_test.sh
+++ /dev/null
@@ -1,13 +0,0 @@
-#!/bin/sh
-time_seconds(){ (time -p $1 ) 2>&1 |awk '/real/{print $2}'; }
-file=/tmp/test.img
-c=${1:-$SIZE}
-c=${c:-1000} #default is 1GB
-write_seq=$(time_seconds "dd if=/dev/zero of=$file bs=1M count=$c")
-read_seq=$(time_seconds "dd if=$file of=/dev/null bs=1M count=$c")
-[ -f $file ] && rm $file
-
-echo "{
- \"write_seq_${c}m\": $write_seq,
- \"read_seq_${c}m\": $read_seq
- }"
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/autoscaling_policy.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/autoscaling_policy.yaml.template
deleted file mode 100644
index a22487e3..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/autoscaling_policy.yaml.template
+++ /dev/null
@@ -1,17 +0,0 @@
-heat_template_version: 2013-05-23
-
-resources:
- test_group:
- type: OS::Heat::AutoScalingGroup
- properties:
- desired_capacity: 0
- max_size: 0
- min_size: 0
- resource:
- type: OS::Heat::RandomString
- test_policy:
- type: OS::Heat::ScalingPolicy
- properties:
- adjustment_type: change_in_capacity
- auto_scaling_group_id: { get_resource: test_group }
- scaling_adjustment: 1 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/default.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/default.yaml.template
deleted file mode 100644
index eb4f2f2d..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/default.yaml.template
+++ /dev/null
@@ -1 +0,0 @@
-heat_template_version: 2014-10-16 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/random_strings.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/random_strings.yaml.template
deleted file mode 100644
index 2dd676c1..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/random_strings.yaml.template
+++ /dev/null
@@ -1,13 +0,0 @@
-heat_template_version: 2014-10-16
-
-description: Test template for rally create-update-delete scenario
-
-resources:
- test_string_one:
- type: OS::Heat::RandomString
- properties:
- length: 20
- test_string_two:
- type: OS::Heat::RandomString
- properties:
- length: 20 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/resource_group.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/resource_group.yaml.template
deleted file mode 100644
index b3f505fa..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/resource_group.yaml.template
+++ /dev/null
@@ -1,13 +0,0 @@
-heat_template_version: 2014-10-16
-
-description: Test template for rally create-update-delete scenario
-
-resources:
- test_group:
- type: OS::Heat::ResourceGroup
- properties:
- count: 2
- resource_def:
- type: OS::Heat::RandomString
- properties:
- length: 20 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/server_with_ports.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/server_with_ports.yaml.template
deleted file mode 100644
index 35b10783..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/server_with_ports.yaml.template
+++ /dev/null
@@ -1,64 +0,0 @@
-heat_template_version: 2013-05-23
-
-parameters:
- # set all correct defaults for parameters before launch test
- public_net:
- type: string
- default: public
- image:
- type: string
- default: cirros-0.4.0-x86_64-uec
- flavor:
- type: string
- default: m1.tiny
- cidr:
- type: string
- default: 11.11.11.0/24
-
-resources:
- server:
- type: OS::Nova::Server
- properties:
- image: {get_param: image}
- flavor: {get_param: flavor}
- networks:
- - port: { get_resource: server_port }
-
- router:
- type: OS::Neutron::Router
- properties:
- external_gateway_info:
- network: {get_param: public_net}
-
- router_interface:
- type: OS::Neutron::RouterInterface
- properties:
- router_id: { get_resource: router }
- subnet_id: { get_resource: private_subnet }
-
- private_net:
- type: OS::Neutron::Net
-
- private_subnet:
- type: OS::Neutron::Subnet
- properties:
- network: { get_resource: private_net }
- cidr: {get_param: cidr}
-
- port_security_group:
- type: OS::Neutron::SecurityGroup
- properties:
- name: default_port_security_group
- description: >
- Default security group assigned to port. The neutron default group is not
- used because neutron creates several groups with the same name=default and
- nova cannot chooses which one should it use.
-
- server_port:
- type: OS::Neutron::Port
- properties:
- network: {get_resource: private_net}
- fixed_ips:
- - subnet: { get_resource: private_subnet }
- security_groups:
- - { get_resource: port_security_group }
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/server_with_volume.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/server_with_volume.yaml.template
deleted file mode 100644
index 5c9a86b7..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/server_with_volume.yaml.template
+++ /dev/null
@@ -1,43 +0,0 @@
-heat_template_version: 2013-05-23
-
-parameters:
- # set all correct defaults for parameters before launch test
- image:
- type: string
- default: cirros-0.4.0-x86_64-uec
- flavor:
- type: string
- default: m1.tiny
- availability_zone:
- type: string
- description: The Availability Zone to launch the instance.
- default: nova
- volume_size:
- type: number
- description: Size of the volume to be created.
- default: 1
- constraints:
- - range: { min: 1, max: 1024 }
- description: must be between 1 and 1024 Gb.
- network_id:
- type: string
-
-resources:
- server:
- type: OS::Nova::Server
- properties:
- image: {get_param: image}
- flavor: {get_param: flavor}
- networks:
- - network: { get_param: network_id }
- cinder_volume:
- type: OS::Cinder::Volume
- properties:
- size: { get_param: volume_size }
- availability_zone: { get_param: availability_zone }
- volume_attachment:
- type: OS::Cinder::VolumeAttachment
- properties:
- volume_id: { get_resource: cinder_volume }
- instance_uuid: { get_resource: server}
- mountpoint: /dev/vdc
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_autoscaling_policy_inplace.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/updated_autoscaling_policy_inplace.yaml.template
deleted file mode 100644
index cf34879c..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_autoscaling_policy_inplace.yaml.template
+++ /dev/null
@@ -1,23 +0,0 @@
-heat_template_version: 2013-05-23
-
-description: >
- Test template for create-update-delete-stack scenario in rally.
- The template updates resource parameters without resource re-creation(replacement)
- in the stack defined by autoscaling_policy.yaml.template. It allows to measure
- performance of "pure" resource update operation only.
-
-resources:
- test_group:
- type: OS::Heat::AutoScalingGroup
- properties:
- desired_capacity: 0
- max_size: 0
- min_size: 0
- resource:
- type: OS::Heat::RandomString
- test_policy:
- type: OS::Heat::ScalingPolicy
- properties:
- adjustment_type: change_in_capacity
- auto_scaling_group_id: { get_resource: test_group }
- scaling_adjustment: -1 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_add.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_add.yaml.template
deleted file mode 100644
index e06d42e0..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_add.yaml.template
+++ /dev/null
@@ -1,19 +0,0 @@
-heat_template_version: 2014-10-16
-
-description: >
- Test template for create-update-delete-stack scenario in rally.
- The template updates the stack defined by random_strings.yaml.template with additional resource.
-
-resources:
- test_string_one:
- type: OS::Heat::RandomString
- properties:
- length: 20
- test_string_two:
- type: OS::Heat::RandomString
- properties:
- length: 20
- test_string_three:
- type: OS::Heat::RandomString
- properties:
- length: 20 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_delete.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_delete.yaml.template
deleted file mode 100644
index d02593e3..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_delete.yaml.template
+++ /dev/null
@@ -1,11 +0,0 @@
-heat_template_version: 2014-10-16
-
-description: >
- Test template for create-update-delete-stack scenario in rally.
- The template deletes one resource from the stack defined by random_strings.yaml.template.
-
-resources:
- test_string_one:
- type: OS::Heat::RandomString
- properties:
- length: 20 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_replace.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_replace.yaml.template
deleted file mode 100644
index 46d8bff4..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_random_strings_replace.yaml.template
+++ /dev/null
@@ -1,19 +0,0 @@
-heat_template_version: 2014-10-16
-
-description: >
- Test template for create-update-delete-stack scenario in rally.
- The template deletes one resource from the stack defined by
- random_strings.yaml.template and re-creates it with the updated parameters
- (so-called update-replace). That happens because some parameters cannot be
- changed without resource re-creation. The template allows to measure performance
- of update-replace operation.
-
-resources:
- test_string_one:
- type: OS::Heat::RandomString
- properties:
- length: 20
- test_string_two:
- type: OS::Heat::RandomString
- properties:
- length: 40 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_resource_group_increase.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/updated_resource_group_increase.yaml.template
deleted file mode 100644
index 891074eb..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_resource_group_increase.yaml.template
+++ /dev/null
@@ -1,16 +0,0 @@
-heat_template_version: 2014-10-16
-
-description: >
- Test template for create-update-delete-stack scenario in rally.
- The template updates one resource from the stack defined by resource_group.yaml.template
- and adds children resources to that resource.
-
-resources:
- test_group:
- type: OS::Heat::ResourceGroup
- properties:
- count: 3
- resource_def:
- type: OS::Heat::RandomString
- properties:
- length: 20 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_resource_group_reduce.yaml.template b/functest/opnfv_tests/openstack/rally/scenario/templates/updated_resource_group_reduce.yaml.template
deleted file mode 100644
index b4d1d173..00000000
--- a/functest/opnfv_tests/openstack/rally/scenario/templates/updated_resource_group_reduce.yaml.template
+++ /dev/null
@@ -1,16 +0,0 @@
-heat_template_version: 2014-10-16
-
-description: >
- Test template for create-update-delete-stack scenario in rally.
- The template updates one resource from the stack defined by resource_group.yaml.template
- and deletes children resources from that resource.
-
-resources:
- test_group:
- type: OS::Heat::ResourceGroup
- properties:
- count: 1
- resource_def:
- type: OS::Heat::RandomString
- properties:
- length: 20 \ No newline at end of file
diff --git a/functest/opnfv_tests/openstack/rally/task.yaml b/functest/opnfv_tests/openstack/rally/task.yaml
deleted file mode 100644
index 65f101fb..00000000
--- a/functest/opnfv_tests/openstack/rally/task.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-{%- if smoke %}
-{%- set users_amount = 1 %}
-{%- set tenants_amount = 1 %}
-{%- endif %}
-
-{%- from "macro/macro.yaml" import user_context, vm_params, unlimited_volumes, constant_runner, rps_runner, no_failures_sla -%}
-{%- from "macro/macro.yaml" import volumes, unlimited_nova, unlimited_neutron, glance_args -%}
-
----
-{% if "authenticate" in service_list %}
-{%- include "var/opnfv-authenticate.yaml"-%}
-{% endif %}
-
-{% if "cinder" in service_list %}
-{%- include "var/opnfv-cinder.yaml"-%}
-{% endif %}
-
-{% if "keystone" in service_list %}
-{%- include "var/opnfv-keystone.yaml"-%}
-{% endif %}
-
-{% if "nova" in service_list %}
-{%- include "var/opnfv-nova.yaml"-%}
-{% endif %}
-
-{% if "glance" in service_list %}
-{%- include "var/opnfv-glance.yaml"-%}
-{% endif %}
-
-{% if "neutron" in service_list %}
-{%- include "var/opnfv-neutron.yaml"-%}
-{% endif %}
-
-{% if "ceilometer" in service_list %}
-{%- include "var/opnfv-ceilometer.yaml"-%}
-{% endif %}
-
-{% if "quotas" in service_list %}
-{%- include "var/opnfv-quotas.yaml"-%}
-{% endif %}
-
-{% if "heat" in service_list %}
-{%- include "var/opnfv-heat.yaml"-%}
-{% endif %}
-
-{% if "vm" in service_list %}
-{%- include "var/opnfv-vm.yaml"-%}
-{% endif %}
diff --git a/functest/opnfv_tests/openstack/refstack_client/__init__.py b/functest/opnfv_tests/openstack/refstack_client/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/openstack/refstack_client/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/openstack/refstack_client/refstack_client.py b/functest/opnfv_tests/openstack/refstack_client/refstack_client.py
deleted file mode 100644
index ada6ebab..00000000
--- a/functest/opnfv_tests/openstack/refstack_client/refstack_client.py
+++ /dev/null
@@ -1,260 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""Refstack client testcase implemenation."""
-
-from __future__ import division
-
-import argparse
-import ConfigParser
-import logging
-import os
-import re
-import sys
-import subprocess
-import time
-
-from functest.core import testcase
-from functest.energy import energy
-from functest.opnfv_tests.openstack.tempest import conf_utils
-from functest.opnfv_tests.openstack.tempest import tempest
-from functest.utils import config
-from functest.utils import functest_utils
-
-
-__author__ = ("Matthew Li <matthew.lijun@huawei.com>,"
- "Linda Wang <wangwulin@huawei.com>")
-
-# logging configuration """
-LOGGER = logging.getLogger(__name__)
-
-
-class RefstackClient(testcase.TestCase):
- """RefstackClient testcase implementation class."""
- # pylint: disable=too-many-instance-attributes
-
- defcorelist = os.path.join(
- getattr(config.CONF, 'dir_refstack_data'), 'defcore.txt')
-
- def __init__(self, **kwargs):
- """Initialize RefstackClient testcase object."""
- if "case_name" not in kwargs:
- kwargs["case_name"] = "refstack_defcore"
- super(RefstackClient, self).__init__(**kwargs)
- self.resdir = os.path.join(
- getattr(config.CONF, 'dir_results'), 'refstack')
- self.conf_path = os.path.join(self.resdir, 'refstack_tempest.conf')
-
- @staticmethod
- def run_defcore(conf, testlist):
- """Run defcore sys command."""
- insecure = ''
- if ('https' in os.environ['OS_AUTH_URL'] and
- os.getenv('OS_INSECURE', '').lower() == 'true'):
- insecure = '-k'
- cmd = ("refstack-client test {0} -c {1} -v --test-list {2}"
- .format(insecure, conf, testlist))
- LOGGER.info("Starting Refstack_defcore test case: '%s'.", cmd)
- functest_utils.execute_command(cmd)
-
- def run_defcore_default(self):
- """Run default defcore sys command."""
- insecure = ''
- if ('https' in os.environ['OS_AUTH_URL'] and
- os.getenv('OS_INSECURE', '').lower() == 'true'):
- insecure = '-k'
- options = ["-v"] if not insecure else ["-v", insecure]
- cmd = (["refstack-client", "test", "-c", self.conf_path] +
- options + ["--test-list", self.defcorelist])
- LOGGER.info("Starting Refstack_defcore test case: '%s'.", cmd)
- with open(os.path.join(self.resdir, "refstack.log"), 'w+') as f_stdout:
- subprocess.call(cmd, shell=False, stdout=f_stdout,
- stderr=subprocess.STDOUT)
-
- def parse_refstack_result(self):
- """Parse Refstack results."""
- try:
- with open(os.path.join(self.resdir,
- "refstack.log"), 'r') as logfile:
- for line in logfile.readlines():
- if 'Tests' in line:
- break
- if re.search(r"\} tempest\.", line):
- LOGGER.info(line.replace('\n', ''))
-
- with open(os.path.join(self.resdir,
- "refstack.log"), 'r') as logfile:
- output = logfile.read()
-
- for match in re.findall(r"Ran: (\d+) tests in (\d+\.\d{4}) sec.",
- output):
- num_tests = match[0]
- LOGGER.info("Ran: %s tests in %s sec.", num_tests, match[1])
- for match in re.findall(r"(- Passed: )(\d+)", output):
- num_success = match[1]
- LOGGER.info("".join(match))
- for match in re.findall(r"(- Skipped: )(\d+)", output):
- num_skipped = match[1]
- LOGGER.info("".join(match))
- for match in re.findall(r"(- Failed: )(\d+)", output):
- num_failures = match[1]
- LOGGER.info("".join(match))
- success_testcases = []
- for match in re.findall(r"\{0\} (.*?) \.{3} ok", output):
- success_testcases.append(match)
- failed_testcases = []
- for match in re.findall(r"\{0\} (.*?) \.{3} FAILED", output):
- failed_testcases.append(match)
- skipped_testcases = []
- for match in re.findall(r"\{0\} (.*?) \.{3} SKIPPED:", output):
- skipped_testcases.append(match)
-
- num_executed = int(num_tests) - int(num_skipped)
-
- try:
- self.result = 100 * int(num_success) / int(num_executed)
- except ZeroDivisionError:
- LOGGER.error("No test has been executed")
-
- self.details = {"tests": int(num_tests),
- "failures": int(num_failures),
- "success": success_testcases,
- "errors": failed_testcases,
- "skipped": skipped_testcases}
- except Exception: # pylint: disable=broad-except
- self.result = 0
- LOGGER.info("Testcase %s success_rate is %s%%",
- self.case_name, self.result)
-
- def configure_tempest_defcore(self):
- # pylint: disable=too-many-arguments
- """
- Add/update needed parameters into tempest.conf file
- """
- resources = tempest.TempestResourcesManager().create(
- create_project=True, use_custom_images=True,
- use_custom_flavors=True)
- verifier_id = conf_utils.get_verifier_id()
- deployment_id = conf_utils.get_verifier_deployment_id()
- deployment_dir = conf_utils.get_verifier_deployment_dir(
- verifier_id, deployment_id)
- conf_file = conf_utils.configure_verifier(deployment_dir)
- conf_utils.configure_tempest_update_params(
- conf_file, resources.get("network_name"),
- resources.get("image_id"), resources.get("flavor_id"))
- LOGGER.debug(
- "Updating selected tempest.conf parameters for defcore...")
- rconfig = ConfigParser.RawConfigParser()
- rconfig.read(conf_file)
- rconfig.set(
- 'DEFAULT', 'log_file', '{}/tempest.log'.format(deployment_dir))
- rconfig.set('oslo_concurrency', 'lock_path',
- '{}/lock_files'.format(deployment_dir))
- conf_utils.generate_test_accounts_file(
- tenant_id=resources.get("project_id"))
- rconfig.set('auth', 'test_accounts_file',
- conf_utils.TEST_ACCOUNTS_FILE)
- rconfig.set('scenario', 'img_dir', '{}'.format(deployment_dir))
- rconfig.set('scenario', 'img_file', 'tempest-image')
- rconfig.set('compute', 'image_ref', resources.get("image_id"))
- rconfig.set('compute', 'image_ref_alt', resources.get("image_id_alt"))
- rconfig.set('compute', 'flavor_ref', resources.get("flavor_id"))
- rconfig.set('compute', 'flavor_ref_alt',
- resources.get("flavor_id_alt"))
- if not os.path.exists(self.resdir):
- os.makedirs(self.resdir)
- with open(self.conf_path, 'w') as config_fd:
- rconfig.write(config_fd)
-
- @energy.enable_recording
- def run(self, **kwargs):
- """
- Start RefstackClient testcase.
-
- used for functest command line,
- functest testcase run refstack_defcore
- """
- self.start_time = time.time()
- try:
- # Make sure that Tempest is configured
- self.configure_tempest_defcore()
- self.run_defcore_default()
- self.parse_refstack_result()
- res = testcase.TestCase.EX_OK
- except Exception: # pylint: disable=broad-except
- LOGGER.exception("Error with run")
- res = testcase.TestCase.EX_RUN_ERROR
- self.stop_time = time.time()
- return res
-
- @staticmethod
- def main(**kwargs):
- """
- Execute RefstackClient testcase manually.
-
- used for manually running,
- python refstack_client.py -c <tempest_conf_path>
- --testlist <testlist_path>
- can generate a reference refstack_tempest.conf by
- python tempest_conf.py
- """
- try:
- conf_path = kwargs['config']
- if not os.path.isfile(conf_path):
- LOGGER.error("Conf file not valid: %s", conf_path)
- return testcase.TestCase.EX_RUN_ERROR
- testlist = kwargs['testlist']
- if not os.path.isfile(testlist):
- LOGGER.error("testlist file not valid: %s", testlist)
- return testcase.TestCase.EX_RUN_ERROR
- except KeyError as exc:
- LOGGER.error("Cannot run refstack client. Please check "
- "%s", exc)
- return testcase.TestCase.EX_RUN_ERROR
- try:
- RefstackClient.run_defcore(conf_path, testlist)
- except Exception as exc: # pylint: disable=broad-except
- LOGGER.error('Error with run: %s', exc)
- return testcase.TestCase.EX_RUN_ERROR
- return testcase.TestCase.EX_OK
-
-
-class RefstackClientParser(object): # pylint: disable=too-few-public-methods
- """Command line argument parser helper."""
-
- def __init__(self):
- """Initialize helper object."""
- self.parser = argparse.ArgumentParser()
- self.parser.add_argument(
- '-c', '--config',
- help='the file path of refstack_tempest.conf')
- self.parser.add_argument(
- '-t', '--testlist',
- help='Specify the file path or URL of a test list text file. '
- 'This test list will contain specific test cases that '
- 'should be tested.',
- default=RefstackClient.defcorelist)
-
- def parse_args(self, argv=None):
- """Parse command line arguments."""
- return vars(self.parser.parse_args(argv))
-
-
-def main():
- """Run RefstackClient testcase with CLI."""
- logging.basicConfig()
- refstackclient = RefstackClient()
- parser = RefstackClientParser()
- args = parser.parse_args(sys.argv[1:])
- try:
- result = refstackclient.main(**args)
- if result != testcase.TestCase.EX_OK:
- return result
- except Exception: # pylint: disable=broad-except
- return testcase.TestCase.EX_RUN_ERROR
diff --git a/functest/opnfv_tests/openstack/snaps/__init__.py b/functest/opnfv_tests/openstack/snaps/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/openstack/snaps/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/openstack/snaps/api_check.py b/functest/opnfv_tests/openstack/snaps/api_check.py
deleted file mode 100644
index b8cd4fdd..00000000
--- a/functest/opnfv_tests/openstack/snaps/api_check.py
+++ /dev/null
@@ -1,45 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""api_check test case implementation"""
-
-import unittest
-
-from functest.opnfv_tests.openstack.snaps import snaps_suite_builder
-from functest.opnfv_tests.openstack.snaps.snaps_test_runner import \
- SnapsTestRunner
-
-
-class ApiCheck(SnapsTestRunner):
- """
- This test executes the Python Tests included with the SNAPS libraries
- that exercise many of the OpenStack APIs within Keystone, Glance, Neutron,
- and Nova
- """
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = "api_check"
- super(ApiCheck, self).__init__(**kwargs)
-
- self.suite = unittest.TestSuite()
-
- def run(self, **kwargs):
- """
- Builds the test suite then calls super.run()
- :param kwargs: the arguments to pass on
- :return:
- """
- snaps_suite_builder.add_openstack_api_tests(
- suite=self.suite,
- os_creds=self.os_creds,
- ext_net_name=self.ext_net_name,
- use_keystone=self.use_keystone,
- image_metadata=self.image_metadata)
- return super(ApiCheck, self).run()
diff --git a/functest/opnfv_tests/openstack/snaps/connection_check.py b/functest/opnfv_tests/openstack/snaps/connection_check.py
deleted file mode 100644
index f8bf8852..00000000
--- a/functest/opnfv_tests/openstack/snaps/connection_check.py
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-# pylint: disable=missing-docstring
-
-import unittest
-
-from functest.opnfv_tests.openstack.snaps import snaps_suite_builder
-from functest.opnfv_tests.openstack.snaps.snaps_test_runner import \
- SnapsTestRunner
-
-
-class ConnectionCheck(SnapsTestRunner):
- """
- This test executes the Python Tests included with the SNAPS libraries
- that simply obtain the different OpenStack clients and may perform
- simple queries
- """
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = "connection_check"
- super(ConnectionCheck, self).__init__(**kwargs)
-
- self.suite = unittest.TestSuite()
-
- def run(self, **kwargs):
- """
- Builds the test suite then calls super.run()
- :param kwargs: the arguments to pass on
- :return:
- """
- snaps_suite_builder.add_openstack_client_tests(
- suite=self.suite,
- os_creds=self.os_creds,
- ext_net_name=self.ext_net_name,
- use_keystone=self.use_keystone)
- return super(ConnectionCheck, self).run()
diff --git a/functest/opnfv_tests/openstack/snaps/health_check.py b/functest/opnfv_tests/openstack/snaps/health_check.py
deleted file mode 100644
index 8a88ac6b..00000000
--- a/functest/opnfv_tests/openstack/snaps/health_check.py
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""snaps_health_check test case implementation"""
-
-import unittest
-
-from functest.opnfv_tests.openstack.snaps.snaps_test_runner import (
- SnapsTestRunner)
-
-from snaps.openstack.tests.os_source_file_test import OSIntegrationTestCase
-from snaps.openstack.tests.create_instance_tests import SimpleHealthCheck
-
-
-class HealthCheck(SnapsTestRunner):
- """
- This test executes the SNAPS Python Test case SimpleHealthCheck which
- creates a VM with a single port with an IPv4 address that is assigned by
- DHCP. This test then validates the expected IP with the actual
- """
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = "snaps_images_cirros"
- super(HealthCheck, self).__init__(**kwargs)
-
- self.suite = unittest.TestSuite()
-
- def run(self, **kwargs):
- """
- Builds the test suite then calls super.run()
- :param kwargs: the arguments to pass on
- :return:
- """
- self.suite.addTest(
- OSIntegrationTestCase.parameterize(
- SimpleHealthCheck, os_creds=self.os_creds,
- ext_net_name=self.ext_net_name,
- use_keystone=self.use_keystone,
- flavor_metadata=self.flavor_metadata,
- image_metadata=self.image_metadata,
- netconf_override=self.netconf_override))
- return super(HealthCheck, self).run()
diff --git a/functest/opnfv_tests/openstack/snaps/smoke.py b/functest/opnfv_tests/openstack/snaps/smoke.py
deleted file mode 100644
index bc678118..00000000
--- a/functest/opnfv_tests/openstack/snaps/smoke.py
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""snaps_smoke test case implementation"""
-
-import unittest
-
-from functest.opnfv_tests.openstack.snaps import snaps_suite_builder
-from functest.opnfv_tests.openstack.snaps.snaps_test_runner import (
- SnapsTestRunner)
-
-
-class SnapsSmoke(SnapsTestRunner):
- """
- This test executes the Python Tests included with the SNAPS libraries
- that exercise many of the OpenStack APIs within Keystone, Glance, Neutron,
- and Nova
- """
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = "snaps_smoke"
- super(SnapsSmoke, self).__init__(**kwargs)
-
- self.suite = unittest.TestSuite()
-
- def run(self, **kwargs):
- """
- Builds the test suite then calls super.run()
- :param kwargs: the arguments to pass on
- :return:
- """
- snaps_suite_builder.add_openstack_integration_tests(
- suite=self.suite,
- os_creds=self.os_creds,
- ext_net_name=self.ext_net_name,
- use_keystone=self.use_keystone,
- flavor_metadata=self.flavor_metadata,
- image_metadata=self.image_metadata,
- use_floating_ips=self.use_fip,
- netconf_override=self.netconf_override)
- return super(SnapsSmoke, self).run()
diff --git a/functest/opnfv_tests/openstack/snaps/snaps_suite_builder.py b/functest/opnfv_tests/openstack/snaps/snaps_suite_builder.py
deleted file mode 100644
index ed3b2825..00000000
--- a/functest/opnfv_tests/openstack/snaps/snaps_suite_builder.py
+++ /dev/null
@@ -1,446 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""
-Snaps test suite including openstack client tests, api tests and
-integration tests.
-add_openstack_client_tests: for connection_check
-add_openstack_api_tests: for api_check
-add_openstack_integration_tests: for snaps_smoke
-"""
-
-import logging
-
-from snaps.openstack.tests.create_flavor_tests import (
- CreateFlavorTests)
-from snaps.openstack.tests.create_image_tests import (
- CreateImageSuccessTests, CreateImageNegativeTests,
- CreateMultiPartImageTests)
-from snaps.openstack.tests.create_instance_tests import (
- CreateInstanceSingleNetworkTests, CreateInstanceOnComputeHost,
- CreateInstanceSimpleTests, InstanceSecurityGroupTests,
- CreateInstancePortManipulationTests, SimpleHealthCheck,
- CreateInstanceFromThreePartImage, CreateInstanceTwoNetTests,
- CreateInstanceVolumeTests)
-from snaps.openstack.tests.create_keypairs_tests import (
- CreateKeypairsTests, CreateKeypairsCleanupTests)
-from snaps.openstack.tests.create_network_tests import (
- CreateNetworkSuccessTests)
-from snaps.openstack.tests.create_project_tests import (
- CreateProjectSuccessTests, CreateProjectUserTests)
-from snaps.openstack.tests.create_qos_tests import (
- CreateQoSTests)
-from snaps.openstack.tests.create_router_tests import (
- CreateRouterSuccessTests, CreateRouterNegativeTests)
-from snaps.openstack.tests.create_security_group_tests import (
- CreateSecurityGroupTests)
-from snaps.openstack.tests.create_stack_tests import (
- CreateStackSuccessTests, CreateStackNegativeTests,
- CreateStackFlavorTests, CreateStackFloatingIpTests,
- CreateStackKeypairTests, CreateStackVolumeTests,
- CreateStackSecurityGroupTests)
-from snaps.openstack.tests.create_user_tests import (
- CreateUserSuccessTests)
-from snaps.openstack.tests.create_volume_tests import (
- CreateSimpleVolumeSuccessTests,
- CreateVolumeWithTypeTests, CreateVolumeWithImageTests,
- CreateSimpleVolumeFailureTests)
-from snaps.openstack.tests.create_volume_type_tests import (
- CreateSimpleVolumeTypeSuccessTests,
- CreateVolumeTypeComplexTests)
-from snaps.openstack.tests.os_source_file_test import (
- OSComponentTestCase, OSIntegrationTestCase)
-from snaps.openstack.utils.tests.cinder_utils_tests import (
- CinderSmokeTests, CinderUtilsQoSTests, CinderUtilsSimpleVolumeTypeTests,
- CinderUtilsAddEncryptionTests, CinderUtilsVolumeTypeCompleteTests,
- CinderUtilsVolumeTests)
-from snaps.openstack.utils.tests.glance_utils_tests import (
- GlanceSmokeTests, GlanceUtilsTests)
-from snaps.openstack.utils.tests.heat_utils_tests import (
- HeatSmokeTests, HeatUtilsCreateSimpleStackTests,
- HeatUtilsCreateComplexStackTests, HeatUtilsFlavorTests,
- HeatUtilsKeypairTests, HeatUtilsSecurityGroupTests)
-from snaps.openstack.utils.tests.keystone_utils_tests import (
- KeystoneSmokeTests, KeystoneUtilsTests)
-from snaps.openstack.utils.tests.neutron_utils_tests import (
- NeutronSmokeTests, NeutronUtilsNetworkTests, NeutronUtilsSubnetTests,
- NeutronUtilsRouterTests, NeutronUtilsSecurityGroupTests,
- NeutronUtilsFloatingIpTests)
-from snaps.openstack.utils.tests.nova_utils_tests import (
- NovaSmokeTests, NovaUtilsKeypairTests, NovaUtilsFlavorTests,
- NovaUtilsInstanceTests, NovaUtilsInstanceVolumeTests)
-from snaps.provisioning.tests.ansible_utils_tests import (
- AnsibleProvisioningTests)
-
-
-def add_openstack_client_tests(suite, os_creds, ext_net_name,
- use_keystone=True, log_level=logging.INFO):
- """
- Adds tests written to exercise OpenStack client retrieval
-
- :param suite: the unittest.TestSuite object to which to add the tests
- :param os_creds: and instance of OSCreds that holds the credentials
- required by OpenStack
- :param ext_net_name: the name of an external network on the cloud under
- test
- :param use_keystone: when True, tests requiring direct access to Keystone
- are added as these need to be running on a host that
- has access to the cloud's private network
- :param log_level: the logging level
- :return: None as the tests will be adding to the 'suite' parameter object
- """
- # Basic connection tests
- suite.addTest(
- OSComponentTestCase.parameterize(
- GlanceSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
-
- if use_keystone:
- suite.addTest(
- OSComponentTestCase.parameterize(
- KeystoneSmokeTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level))
-
- suite.addTest(
- OSComponentTestCase.parameterize(
- NeutronSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(
- OSComponentTestCase.parameterize(
- NovaSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(
- OSComponentTestCase.parameterize(
- HeatSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(
- OSComponentTestCase.parameterize(
- CinderSmokeTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
-
-
-def add_openstack_api_tests(suite, os_creds, ext_net_name, use_keystone=True,
- image_metadata=None, log_level=logging.INFO):
- # pylint: disable=too-many-arguments
- """
- Adds tests written to exercise all existing OpenStack APIs
-
- :param suite: the unittest.TestSuite object to which to add the tests
- :param os_creds: Instance of OSCreds that holds the credentials
- required by OpenStack
- :param ext_net_name: the name of an external network on the cloud under
- test
- :param use_keystone: when True, tests requiring direct access to Keystone
- are added as these need to be running on a host that
- has access to the cloud's private network
- :param image_metadata: dict() object containing metadata for creating an
- image with custom config
- (see YAML files in examples/image-metadata)
- :param log_level: the logging level
- :return: None as the tests will be adding to the 'suite' parameter object
- """
- # Tests the OpenStack API calls
- if use_keystone:
- suite.addTest(OSComponentTestCase.parameterize(
- KeystoneUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- CreateUserSuccessTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- CreateProjectSuccessTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- CreateProjectUserTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level))
-
- suite.addTest(OSComponentTestCase.parameterize(
- GlanceUtilsTests, os_creds=os_creds, ext_net_name=ext_net_name,
- image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- NeutronUtilsNetworkTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- NeutronUtilsSubnetTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- NeutronUtilsRouterTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- NeutronUtilsSecurityGroupTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- NeutronUtilsFloatingIpTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- NovaUtilsKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- NovaUtilsFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- NovaUtilsInstanceTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level, image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- NovaUtilsInstanceVolumeTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- CreateFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
- log_level=log_level))
- suite.addTest(OSComponentTestCase.parameterize(
- HeatUtilsCreateSimpleStackTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- HeatUtilsCreateComplexStackTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- HeatUtilsFlavorTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- HeatUtilsKeypairTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- HeatUtilsSecurityGroupTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- CinderUtilsQoSTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- CinderUtilsVolumeTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- CinderUtilsSimpleVolumeTypeTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- CinderUtilsAddEncryptionTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
- suite.addTest(OSComponentTestCase.parameterize(
- CinderUtilsVolumeTypeCompleteTests, os_creds=os_creds,
- ext_net_name=ext_net_name, log_level=log_level,
- image_metadata=image_metadata))
-
-
-def add_openstack_integration_tests(suite, os_creds, ext_net_name,
- use_keystone=True, flavor_metadata=None,
- image_metadata=None, use_floating_ips=True,
- netconf_override=None,
- log_level=logging.INFO):
- # pylint: disable=too-many-arguments
- """
- Adds tests written to exercise all long-running OpenStack integration tests
- meaning they will be creating VM instances and potentially performing some
- SSH functions through floatingIPs
-
- :param suite: the unittest.TestSuite object to which to add the tests
- :param os_creds: and instance of OSCreds that holds the credentials
- required by OpenStack
- :param ext_net_name: the name of an external network on the cloud under
- test
- :param use_keystone: when True, tests requiring direct access to Keystone
- are added as these need to be running on a host that
- has access to the cloud's private network
- :param image_metadata: dict() object containing metadata for creating an
- image with custom config
- (see YAML files in examples/image-metadata)
- :param flavor_metadata: dict() object containing the metadata required by
- your flavor based on your configuration:
- (i.e. {'hw:mem_page_size': 'large'})
- :param use_floating_ips: when true, all tests requiring Floating IPs will
- be added to the suite
- :param netconf_override: dict() containing the reconfigured network_type,
- physical_network and segmentation_id
- :param log_level: the logging level
- :return: None as the tests will be adding to the 'suite' parameter object
- """
- # Tests the OpenStack API calls via a creator. If use_keystone, objects
- # will be created with a custom user and project
-
- # Creator Object tests
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateSecurityGroupTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateImageSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateImageNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateMultiPartImageTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateKeypairsTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateKeypairsCleanupTests, os_creds=os_creds,
- ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateNetworkSuccessTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateRouterSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateRouterNegativeTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateQoSTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateSimpleVolumeTypeSuccessTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateVolumeTypeComplexTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateSimpleVolumeSuccessTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateSimpleVolumeFailureTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateVolumeWithTypeTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateVolumeWithImageTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
-
- # VM Instances
- suite.addTest(OSIntegrationTestCase.parameterize(
- SimpleHealthCheck, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateInstanceTwoNetTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateInstanceSimpleTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- netconf_override=netconf_override, log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateInstancePortManipulationTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- netconf_override=netconf_override, log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- InstanceSecurityGroupTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- netconf_override=netconf_override, log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateInstanceOnComputeHost, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- netconf_override=netconf_override, log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateInstanceFromThreePartImage, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- netconf_override=netconf_override, log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateInstanceVolumeTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- netconf_override=netconf_override, log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateStackSuccessTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateStackVolumeTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateStackFlavorTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateStackKeypairTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateStackSecurityGroupTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateStackNegativeTests, os_creds=os_creds, ext_net_name=ext_net_name,
- use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
-
- if use_floating_ips:
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateInstanceSingleNetworkTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- CreateStackFloatingIpTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
- suite.addTest(OSIntegrationTestCase.parameterize(
- AnsibleProvisioningTests, os_creds=os_creds,
- ext_net_name=ext_net_name, use_keystone=use_keystone,
- flavor_metadata=flavor_metadata, image_metadata=image_metadata,
- log_level=log_level))
diff --git a/functest/opnfv_tests/openstack/snaps/snaps_test_runner.py b/functest/opnfv_tests/openstack/snaps/snaps_test_runner.py
deleted file mode 100644
index 4de44371..00000000
--- a/functest/opnfv_tests/openstack/snaps/snaps_test_runner.py
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""configuration params to run snaps tests"""
-
-import logging
-
-from functest.core import unit
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-from functest.utils import config
-from functest.utils import env
-
-from snaps.openstack import create_flavor
-
-
-class SnapsTestRunner(unit.Suite):
- # pylint: disable=too-many-instance-attributes
- """
- This test executes the SNAPS Python Tests
- """
-
- def __init__(self, **kwargs):
- super(SnapsTestRunner, self).__init__(**kwargs)
- self.logger = logging.getLogger(__name__)
- self.os_creds = kwargs.get('os_creds') or snaps_utils.get_credentials()
-
- if 'ext_net_name' in kwargs:
- self.ext_net_name = kwargs['ext_net_name']
- else:
- self.ext_net_name = snaps_utils.get_ext_net_name(self.os_creds)
-
- self.netconf_override = None
- if hasattr(config.CONF, 'snaps_network_config'):
- self.netconf_override = getattr(
- config.CONF, 'snaps_network_config')
-
- self.use_fip = (
- getattr(config.CONF, 'snaps_use_floating_ips') == 'True')
- self.use_keystone = (
- getattr(config.CONF, 'snaps_use_keystone') == 'True')
- scenario = env.get('DEPLOY_SCENARIO')
-
- self.flavor_metadata = None
- if 'ovs' in scenario or 'fdio' in scenario:
- self.flavor_metadata = create_flavor.MEM_PAGE_SIZE_LARGE
-
- self.logger.info("Using flavor metadata '%s'", self.flavor_metadata)
-
- self.image_metadata = None
- if hasattr(config.CONF, 'snaps_images'):
- self.image_metadata = getattr(config.CONF, 'snaps_images')
diff --git a/functest/opnfv_tests/openstack/snaps/snaps_utils.py b/functest/opnfv_tests/openstack/snaps/snaps_utils.py
deleted file mode 100644
index fa1005ea..00000000
--- a/functest/opnfv_tests/openstack/snaps/snaps_utils.py
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2015 All rights reserved
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""Some common utils wrapping snaps functions """
-
-from functest.utils import config
-from functest.utils import constants
-from functest.utils import env
-
-from snaps.openstack.tests import openstack_tests
-from snaps.openstack.utils import neutron_utils, nova_utils
-
-
-def get_ext_net_name(os_creds):
- """
- Returns the configured external network name or
- the first retrieved external network name
- :param: os_creds: an instance of snaps OSCreds object
- :return:
- """
- neutron = neutron_utils.neutron_client(os_creds)
- ext_nets = neutron_utils.get_external_networks(neutron)
- if env.get('EXTERNAL_NETWORK'):
- extnet_config = env.get('EXTERNAL_NETWORK')
- for ext_net in ext_nets:
- if ext_net.name == extnet_config:
- return extnet_config
- return ext_nets[0].name if ext_nets else ""
-
-
-def get_active_compute_cnt(os_creds):
- """
- Returns the number of active compute servers
- :param: os_creds: an instance of snaps OSCreds object
- :return: the number of active compute servers
- """
- nova = nova_utils.nova_client(os_creds)
- computes = nova_utils.get_availability_zone_hosts(nova, zone_name='nova')
- return len(computes)
-
-
-def get_credentials(proxy_settings_str=None, ssh_proxy_cmd=None):
- """
- Returns snaps OSCreds object instance
- :param: proxy_settings_str: proxy settings string <host>:<port>
- :param: ssh_proxy_cmd: the SSH proxy command for the environment
- :return: an instance of snaps OSCreds object
- """
- creds_override = None
- if hasattr(config.CONF, 'snaps_os_creds_override'):
- creds_override = getattr(config.CONF, 'snaps_os_creds_override')
- os_creds = openstack_tests.get_credentials(
- os_env_file=constants.ENV_FILE, proxy_settings_str=proxy_settings_str,
- ssh_proxy_cmd=ssh_proxy_cmd, overrides=creds_override)
- return os_creds
diff --git a/functest/opnfv_tests/openstack/tempest/__init__.py b/functest/opnfv_tests/openstack/tempest/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/openstack/tempest/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/openstack/tempest/conf_utils.py b/functest/opnfv_tests/openstack/tempest/conf_utils.py
deleted file mode 100644
index 786a7c5b..00000000
--- a/functest/opnfv_tests/openstack/tempest/conf_utils.py
+++ /dev/null
@@ -1,313 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c) 2015 All rights reserved
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-
-"""Tempest configuration utilities."""
-
-import ConfigParser
-import logging
-import fileinput
-import os
-import shutil
-import subprocess
-
-import pkg_resources
-import yaml
-
-from functest.utils import config
-from functest.utils import env
-import functest.utils.functest_utils as ft_utils
-
-
-IMAGE_ID_ALT = None
-FLAVOR_ID_ALT = None
-RALLY_CONF_PATH = "/etc/rally/rally.conf"
-RALLY_AARCH64_PATCH_PATH = pkg_resources.resource_filename(
- 'functest', 'ci/rally_aarch64_patch.conf')
-GLANCE_IMAGE_PATH = os.path.join(
- getattr(config.CONF, 'dir_functest_images'),
- getattr(config.CONF, 'openstack_image_file_name'))
-TEMPEST_RESULTS_DIR = os.path.join(
- getattr(config.CONF, 'dir_results'), 'tempest')
-TEMPEST_CUSTOM = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/openstack/tempest/custom_tests/test_list.txt')
-TEMPEST_BLACKLIST = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/openstack/tempest/custom_tests/blacklist.txt')
-TEMPEST_RAW_LIST = os.path.join(TEMPEST_RESULTS_DIR, 'test_raw_list.txt')
-TEMPEST_LIST = os.path.join(TEMPEST_RESULTS_DIR, 'test_list.txt')
-TEMPEST_CONF_YAML = pkg_resources.resource_filename(
- 'functest', 'opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml')
-TEST_ACCOUNTS_FILE = pkg_resources.resource_filename(
- 'functest',
- 'opnfv_tests/openstack/tempest/custom_tests/test_accounts.yaml')
-
-CI_INSTALLER_TYPE = env.get('INSTALLER_TYPE')
-
-""" logging configuration """
-LOGGER = logging.getLogger(__name__)
-
-
-def create_rally_deployment():
- """Create new rally deployment"""
- # set the architecture to default
- pod_arch = env.get("POD_ARCH")
- arch_filter = ['aarch64']
-
- if pod_arch and pod_arch in arch_filter:
- LOGGER.info("Apply aarch64 specific to rally config...")
- with open(RALLY_AARCH64_PATCH_PATH, "r") as pfile:
- rally_patch_conf = pfile.read()
-
- for line in fileinput.input(RALLY_CONF_PATH, inplace=1):
- print line,
- if "cirros|testvm" in line:
- print rally_patch_conf
-
- LOGGER.info("Creating Rally environment...")
-
- cmd = "rally deployment destroy opnfv-rally"
- ft_utils.execute_command(cmd, error_msg=(
- "Deployment %s does not exist."
- % getattr(config.CONF, 'rally_deployment_name')), verbose=False)
-
- cmd = ("rally deployment create --fromenv --name={0}"
- .format(getattr(config.CONF, 'rally_deployment_name')))
- error_msg = "Problem while creating Rally deployment"
- ft_utils.execute_command_raise(cmd, error_msg=error_msg)
-
- cmd = "rally deployment check"
- error_msg = "OpenStack not responding or faulty Rally deployment."
- ft_utils.execute_command_raise(cmd, error_msg=error_msg)
-
-
-def create_verifier():
- """Create new verifier"""
- LOGGER.info("Create verifier from existing repo...")
- cmd = ("rally verify delete-verifier --id '{0}' --force").format(
- getattr(config.CONF, 'tempest_verifier_name'))
- ft_utils.execute_command(cmd, error_msg=(
- "Verifier %s does not exist."
- % getattr(config.CONF, 'tempest_verifier_name')),
- verbose=False)
- cmd = ("rally verify create-verifier --source {0} "
- "--name {1} --type tempest --system-wide"
- .format(getattr(config.CONF, 'dir_repo_tempest'),
- getattr(config.CONF, 'tempest_verifier_name')))
- ft_utils.execute_command_raise(cmd,
- error_msg='Problem while creating verifier')
-
-
-def get_verifier_id():
- """
- Returns verifier id for current Tempest
- """
- create_rally_deployment()
- create_verifier()
- cmd = ("rally verify list-verifiers | awk '/" +
- getattr(config.CONF, 'tempest_verifier_name') +
- "/ {print $2}'")
- proc = subprocess.Popen(cmd, shell=True,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- deployment_uuid = proc.stdout.readline().rstrip()
- if deployment_uuid == "":
- LOGGER.error("Tempest verifier not found.")
- raise Exception('Error with command:%s' % cmd)
- return deployment_uuid
-
-
-def get_verifier_deployment_id():
- """
- Returns deployment id for active Rally deployment
- """
- cmd = ("rally deployment list | awk '/" +
- getattr(config.CONF, 'rally_deployment_name') +
- "/ {print $2}'")
- proc = subprocess.Popen(cmd, shell=True,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- deployment_uuid = proc.stdout.readline().rstrip()
- if deployment_uuid == "":
- LOGGER.error("Rally deployment not found.")
- raise Exception('Error with command:%s' % cmd)
- return deployment_uuid
-
-
-def get_verifier_repo_dir(verifier_id):
- """
- Returns installed verifier repo directory for Tempest
- """
- if not verifier_id:
- verifier_id = get_verifier_id()
-
- return os.path.join(getattr(config.CONF, 'dir_rally_inst'),
- 'verification',
- 'verifier-{}'.format(verifier_id),
- 'repo')
-
-
-def get_verifier_deployment_dir(verifier_id, deployment_id):
- """
- Returns Rally deployment directory for current verifier
- """
- if not verifier_id:
- verifier_id = get_verifier_id()
-
- if not deployment_id:
- deployment_id = get_verifier_deployment_id()
-
- return os.path.join(getattr(config.CONF, 'dir_rally_inst'),
- 'verification',
- 'verifier-{}'.format(verifier_id),
- 'for-deployment-{}'.format(deployment_id))
-
-
-def backup_tempest_config(conf_file):
- """
- Copy config file to tempest results directory
- """
- if not os.path.exists(TEMPEST_RESULTS_DIR):
- os.makedirs(TEMPEST_RESULTS_DIR)
- shutil.copyfile(conf_file,
- os.path.join(TEMPEST_RESULTS_DIR, 'tempest.conf'))
-
-
-def configure_tempest(deployment_dir, network_name=None, image_id=None,
- flavor_id=None, compute_cnt=None):
- """
- Calls rally verify and updates the generated tempest.conf with
- given parameters
- """
- conf_file = configure_verifier(deployment_dir)
- configure_tempest_update_params(conf_file, network_name, image_id,
- flavor_id, compute_cnt)
-
-
-def generate_test_accounts_file(tenant_id):
- """
- Add needed tenant and user params into test_accounts.yaml
- """
-
- LOGGER.debug("Add needed params into test_accounts.yaml...")
- accounts_list = [
- {
- 'tenant_name': getattr(
- config.CONF, 'tempest_identity_tenant_name'),
- 'tenant_id': str(tenant_id),
- 'username': getattr(config.CONF, 'tempest_identity_user_name'),
- 'password': getattr(config.CONF, 'tempest_identity_user_password')
- }
- ]
-
- with open(TEST_ACCOUNTS_FILE, "w") as tfile:
- yaml.dump(accounts_list, tfile, default_flow_style=False)
-
-
-def update_tempest_conf_file(conf_file, rconfig):
- """Update defined paramters into tempest config file"""
- with open(TEMPEST_CONF_YAML) as yfile:
- conf_yaml = yaml.safe_load(yfile)
- if conf_yaml:
- sections = rconfig.sections()
- for section in conf_yaml:
- if section not in sections:
- rconfig.add_section(section)
- sub_conf = conf_yaml.get(section)
- for key, value in sub_conf.items():
- rconfig.set(section, key, value)
-
- with open(conf_file, 'wb') as config_file:
- rconfig.write(config_file)
-
-
-def configure_tempest_update_params(tempest_conf_file, network_name=None,
- image_id=None, flavor_id=None,
- compute_cnt=1):
- """
- Add/update needed parameters into tempest.conf file
- """
- LOGGER.debug("Updating selected tempest.conf parameters...")
- rconfig = ConfigParser.RawConfigParser()
- rconfig.read(tempest_conf_file)
- rconfig.set('compute', 'fixed_network_name', network_name)
- rconfig.set('compute', 'volume_device_name',
- getattr(config.CONF, 'tempest_volume_device_name'))
-
- if image_id is not None:
- rconfig.set('compute', 'image_ref', image_id)
- if IMAGE_ID_ALT is not None:
- rconfig.set('compute', 'image_ref_alt', IMAGE_ID_ALT)
- if getattr(config.CONF, 'tempest_use_custom_flavors'):
- if flavor_id is not None:
- rconfig.set('compute', 'flavor_ref', flavor_id)
- if FLAVOR_ID_ALT is not None:
- rconfig.set('compute', 'flavor_ref_alt', FLAVOR_ID_ALT)
- if compute_cnt > 1:
- # enable multinode tests
- rconfig.set('compute', 'min_compute_nodes', compute_cnt)
- rconfig.set('compute-feature-enabled', 'live_migration', True)
-
- rconfig.set('identity', 'region', os.environ.get('OS_REGION_NAME'))
- identity_api_version = os.environ.get("OS_IDENTITY_API_VERSION", '3')
- if identity_api_version == '3':
- auth_version = 'v3'
- rconfig.set('identity-feature-enabled', 'api_v2', False)
- else:
- auth_version = 'v2'
- rconfig.set('identity', 'auth_version', auth_version)
- rconfig.set(
- 'validation', 'ssh_timeout',
- getattr(config.CONF, 'tempest_validation_ssh_timeout'))
- rconfig.set('object-storage', 'operator_role',
- getattr(config.CONF, 'tempest_object_storage_operator_role'))
-
- if os.environ.get('OS_ENDPOINT_TYPE') is not None:
- rconfig.set('identity', 'v3_endpoint_type',
- os.environ.get('OS_ENDPOINT_TYPE'))
-
- if os.environ.get('OS_ENDPOINT_TYPE') is not None:
- sections = rconfig.sections()
- services_list = [
- 'compute', 'volume', 'image', 'network', 'data-processing',
- 'object-storage', 'orchestration']
- for service in services_list:
- if service not in sections:
- rconfig.add_section(service)
- rconfig.set(service, 'endpoint_type',
- os.environ.get('OS_ENDPOINT_TYPE'))
-
- LOGGER.debug('Add/Update required params defined in tempest_conf.yaml '
- 'into tempest.conf file')
- update_tempest_conf_file(tempest_conf_file, rconfig)
-
- backup_tempest_config(tempest_conf_file)
-
-
-def configure_verifier(deployment_dir):
- """
- Execute rally verify configure-verifier, which generates tempest.conf
- """
- tempest_conf_file = os.path.join(deployment_dir, "tempest.conf")
- if os.path.isfile(tempest_conf_file):
- LOGGER.debug("Verifier is already configured.")
- LOGGER.debug("Reconfiguring the current verifier...")
- cmd = "rally verify configure-verifier --reconfigure"
- else:
- LOGGER.info("Configuring the verifier...")
- cmd = "rally verify configure-verifier"
- ft_utils.execute_command(cmd)
-
- LOGGER.debug("Looking for tempest.conf file...")
- if not os.path.isfile(tempest_conf_file):
- LOGGER.error("Tempest configuration file %s NOT found.",
- tempest_conf_file)
- raise Exception("Tempest configuration file %s NOT found."
- % tempest_conf_file)
- else:
- return tempest_conf_file
diff --git a/functest/opnfv_tests/openstack/tempest/custom_tests/blacklist.txt b/functest/opnfv_tests/openstack/tempest/custom_tests/blacklist.txt
deleted file mode 100644
index bb1aed33..00000000
--- a/functest/opnfv_tests/openstack/tempest/custom_tests/blacklist.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-
--
diff --git a/functest/opnfv_tests/openstack/tempest/custom_tests/defcore_req.txt b/functest/opnfv_tests/openstack/tempest/custom_tests/defcore_req.txt
deleted file mode 100644
index fbbee2ff..00000000
--- a/functest/opnfv_tests/openstack/tempest/custom_tests/defcore_req.txt
+++ /dev/null
@@ -1,249 +0,0 @@
-# Set of DefCore tempest test cases not flagged and required. It only contains OpenStack core (no object storage)
-# The approved guidelines (2016.08) are valid for Kilo, Liberty, Mitaka and Newton releases of OpenStack
-# The list can be generated using the Rest API from RefStack project:
-# https://refstack.openstack.org/api/v1/guidelines/2017.01/tests?target=compute&type=required&alias=true&flag=false
-tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_delete_image[id-3731d080-d4c5-4872-b41a-64d0d0021314]
-tempest.api.compute.images.test_images_oneserver.ImagesOneServerTestJSON.test_create_image_specify_multibyte_character_image_name[id-3b7c6fe4-dfe7-477c-9243-b06359db51e6]
-tempest.api.compute.servers.test_create_server.ServersTestJSON.test_host_name_is_same_as_server_name[id-ac1ad47f-984b-4441-9274-c9079b7a0666]
-tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers[id-9a438d88-10c6-4bcd-8b5b-5b6e25e1346f]
-tempest.api.compute.servers.test_create_server.ServersTestJSON.test_list_servers_with_detail[id-585e934c-448e-43c4-acbf-d06a9b899997]
-tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_created_server_vcpus[id-cbc0f52f-05aa-492b-bdc1-84b575ca294b]
-tempest.api.compute.servers.test_create_server.ServersTestJSON.test_verify_server_details[id-5de47127-9977-400a-936f-abcfbec1218f]
-tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_host_name_is_same_as_server_name[id-ac1ad47f-984b-4441-9274-c9079b7a0666]
-tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers[id-9a438d88-10c6-4bcd-8b5b-5b6e25e1346f]
-tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_list_servers_with_detail[id-585e934c-448e-43c4-acbf-d06a9b899997]
-tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_created_server_vcpus[id-cbc0f52f-05aa-492b-bdc1-84b575ca294b]
-tempest.api.compute.servers.test_create_server.ServersTestManualDisk.test_verify_server_details[id-5de47127-9977-400a-936f-abcfbec1218f]
-tempest.api.compute.servers.test_delete_server.DeleteServersTestJSON.test_delete_active_server[id-925fdfb4-5b13-47ea-ac8a-c36ae6fddb05]
-tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_get_instance_action[id-aacc71ca-1d70-4aa5-bbf6-0ff71470e43c]
-tempest.api.compute.servers.test_instance_actions.InstanceActionsTestJSON.test_list_instance_actions[id-77ca5cc5-9990-45e0-ab98-1de8fead201a]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_flavor[id-80c574cc-0925-44ba-8602-299028357dd9]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_image[id-b3304c3b-97df-46d2-8cd3-e2b6659724e7]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_server_name[id-f9eb2b70-735f-416c-b260-9914ac6181e4]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_filter_by_server_status[id-de2612ab-b7dd-4044-b0b1-d2539601911f]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_detailed_limit_results[id-67aec2d0-35fe-4503-9f92-f13272b867ed]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_active_status[id-ca78e20e-fddb-4ce6-b7f7-bcbf8605e66e]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_flavor[id-573637f5-7325-47bb-9144-3476d0416908]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_image[id-05e8a8e7-9659-459a-989d-92c2f501f4ba]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_limit[id-614cdfc1-d557-4bac-915b-3e67b48eee76]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_server_name[id-9b067a7b-7fee-4f6a-b29c-be43fe18fc5a]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filter_by_server_status[id-ca78e20e-fddb-4ce6-b7f7-bcbf8605e66e]
-tempest.api.compute.servers.test_list_server_filters.ListServerFiltersTestJSON.test_list_servers_filtered_by_name_wildcard[id-e9f624ee-92af-4562-8bec-437945a18dcb]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_changes_since_future_date[id-74745ad8-b346-45b5-b9b8-509d7447fc1f]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_changes_since_invalid_date[id-87d12517-e20a-4c9c-97b6-dd1628d6d6c9]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits[id-12c80a9f-2dec-480e-882b-98ba15757659]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_greater_than_actual_count[id-d47c17fb-eebd-4287-8e95-f20a7e627b18]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_pass_negative_value[id-62610dd9-4713-4ee0-8beb-fd2c1aa7f950]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_limits_pass_string[id-679bc053-5e70-4514-9800-3dfab1a380a6]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_flavor[id-5913660b-223b-44d4-a651-a0fbfd44ca75]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_image[id-ff01387d-c7ad-47b4-ae9e-64fa214638fe]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_by_non_existing_server_name[id-e2c77c4a-000a-4af3-a0bd-629a328bde7c]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_detail_server_is_deleted[id-93055106-2d34-46fe-af68-d9ddbf7ee570]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_status_non_existing[id-fcdf192d-0f74-4d89-911f-1ec002b822c4]
-tempest.api.compute.servers.test_list_servers_negative.ListServersNegativeTestJSON.test_list_servers_with_a_deleted_server[id-24a26f1a-1ddc-4eea-b0d7-a90cc874ad8f]
-tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_lock_unlock_server[id-80a8094c-211e-440a-ab88-9e59d556c7ee]
-tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_reboot_server_hard[id-2cb1baf6-ac8d-4429-bf0d-ba8a0ba53e32]
-tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_rebuild_server[id-aaa6cdf3-55a7-461a-add9-1c8596b9a07c]
-tempest.api.compute.servers.test_server_actions.ServerActionsTestJSON.test_stop_start_server[id-af8eafd4-38a7-4a4b-bdbc-75145a580560]
-tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_delete_server_metadata_item[id-127642d6-4c7b-4486-b7cd-07265a378658]
-tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_get_server_metadata_item[id-3043c57d-7e0e-49a6-9a96-ad569c265e6a]
-tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_list_server_metadata[id-479da087-92b3-4dcf-aeb3-fd293b2d14ce]
-tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_set_server_metadata[id-211021f6-21de-4657-a68f-908878cfe251]
-tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_set_server_metadata_item[id-58c02d4f-5c67-40be-8744-d3fa5982eb1c]
-tempest.api.compute.servers.test_server_metadata.ServerMetadataTestJSON.test_update_server_metadata[id-344d981e-0c33-4997-8a5d-6c1d803e4134]
-tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_server_with_admin_password[id-b92d5ec7-b1dd-44a2-87e4-45e888c46ef0]
-tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_specify_keypair[id-f9e15296-d7f9-4e62-b53f-a04e89160833]
-tempest.api.compute.servers.test_servers.ServersTestJSON.test_create_with_existing_server_name[id-8fea6be7-065e-47cf-89b8-496e6f96c699]
-tempest.api.compute.servers.test_servers.ServersTestJSON.test_update_access_server_address[id-89b90870-bc13-4b73-96af-f9d4f2b70077]
-tempest.api.compute.servers.test_servers.ServersTestJSON.test_update_server_name[id-5e6ccff8-349d-4852-a8b3-055df7988dd2]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_numeric_server_name[id-fd57f159-68d6-4c2a-902b-03070828a87e]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_server_metadata_exceeds_length_limit[id-7fc74810-0bd2-4cd7-8244-4f33a9db865a]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_server_name_length_exceeds_256[id-c3e0fb12-07fc-4d76-a22e-37409887afe8]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_flavor[id-18f5227f-d155-4429-807c-ccb103887537]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_image[id-fcba1052-0a50-4cf3-b1ac-fae241edf02f]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_create_with_invalid_network_uuid[id-4e72dc2d-44c5-4336-9667-f7972e95c402]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_delete_server_pass_id_exceeding_length_limit[id-f4d7279b-5fd2-4bf2-9ba4-ae35df0d18c5]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_delete_server_pass_negative_id[id-75f79124-277c-45e6-a373-a1d6803f4cc4]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_get_non_existent_server[id-3436b02f-1b1e-4f03-881e-c6a602327439]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_invalid_ip_v6_address[id-5226dd80-1e9c-4d8a-b5f9-b26ca4763fd0]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_reboot_non_existent_server[id-d4c023a0-9c55-4747-9dd5-413b820143c7]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_deleted_server[id-98fa0458-1485-440f-873b-fe7f0d714930]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_non_existent_server[id-d86141a7-906e-4731-b187-d64a2ea61422]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_rebuild_reboot_deleted_server[id-98fa0458-1485-440f-873b-fe7f0d714930]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_server_name_blank[id-dbbfd247-c40c-449e-8f6c-d2aa7c7da7cf]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_stop_non_existent_server[id-a31460a9-49e1-42aa-82ee-06e0bb7c2d03]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_name_of_non_existent_server[id-aa8eed43-e2cb-4ebf-930b-da14f6a21d81]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_name_length_exceeds_256[id-5c8e244c-dada-4590-9944-749c455b431f]
-tempest.api.compute.servers.test_servers_negative.ServersNegativeTestJSON.test_update_server_set_empty_name[id-38204696-17c6-44da-9590-40f87fb5a899]
-tempest.api.compute.test_quotas.QuotasTestJSON.test_get_default_quotas[id-9bfecac7-b966-4f47-913f-1a9e2c12134a]
-tempest.api.compute.test_quotas.QuotasTestJSON.test_get_quotas[id-f1ef0a97-dbbb-4cca-adc5-c9fbc4f76107]
-tempest.api.compute.test_versions.TestVersions.test_list_api_versions[id-6c0a0990-43b6-4529-9b61-5fd8daf7c55c]
-tempest.api.compute.volumes.test_attach_volume.AttachVolumeTestJSON.test_attach_detach_volume[id-52e9045a-e90d-4c0d-9087-79d657faffff]
-tempest.api.compute.volumes.test_attach_volume.AttachVolumeTestJSON.test_list_get_volume_attachments[id-7fa563fe-f0f7-43eb-9e22-a1ece036b513]
-tempest.api.identity.v3.TestApiDiscovery.test_api_media_types[id-657c1970-4722-4189-8831-7325f3bc4265]
-tempest.api.identity.v3.TestApiDiscovery.test_api_version_resources[id-b9232f5e-d9e5-4d97-b96c-28d3db4de1bd]
-tempest.api.identity.v3.TestApiDiscovery.test_api_version_statuses[id-8879a470-abfb-47bb-bb8d-5a7fd279ad1e]
-tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_media_types[id-657c1970-4722-4189-8831-7325f3bc4265]
-tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_version_resources[id-b9232f5e-d9e5-4d97-b96c-28d3db4de1bd]
-tempest.api.identity.v3.test_api_discovery.TestApiDiscovery.test_api_version_statuses[id-8879a470-abfb-47bb-bb8d-5a7fd279ad1e]
-tempest.api.identity.v3.test_tokens.TokensV3Test.test_create_token[id-6f8e4436-fc96-4282-8122-e41df57197a9]
-tempest.api.image.v2.test_images.BasicOperationsImagesTest.test_delete_image[id-f848bb94-1c6e-45a4-8726-39e3a5b23535]
-tempest.api.image.v2.test_images.BasicOperationsImagesTest.test_update_image[id-f66891a7-a35c-41a8-b590-a065c2a1caa6]
-tempest.api.image.v2.test_images.ListImagesTest.test_get_image_schema[id-622b925c-479f-4736-860d-adeaf13bc371]
-tempest.api.image.v2.test_images.ListImagesTest.test_get_images_schema[id-25c8d7b2-df21-460f-87ac-93130bcdc684]
-tempest.api.image.v2.test_images.ListImagesTest.test_index_no_params[id-1e341d7a-90a9-494c-b143-2cdf2aeb6aee]
-tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_container_format[id-9959ca1d-1aa7-4b7a-a1ea-0fff0499b37e]
-tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_disk_format[id-4a4735a7-f22f-49b6-b0d9-66e1ef7453eb]
-tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_limit[id-e914a891-3cc8-4b40-ad32-e0a39ffbddbb]
-tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_min_max_size[id-4ad8c157-971a-4ba8-aa84-ed61154b1e7f]
-tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_size[id-cf1b9a48-8340-480e-af7b-fe7e17690876]
-tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_status[id-7fc9e369-0f58-4d05-9aa5-0969e2d59d15]
-tempest.api.image.v2.test_images.ListImagesTest.test_list_images_param_visibility[id-7a95bb92-d99e-4b12-9718-7bc6ab73e6d2]
-tempest.api.image.v2.test_images.ListImagesTest.test_list_no_params[id-1e341d7a-90a9-494c-b143-2cdf2aeb6aee]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_get_image_schema[id-622b925c-479f-4736-860d-adeaf13bc371]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_get_images_schema[id-25c8d7b2-df21-460f-87ac-93130bcdc684]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_container_format[id-9959ca1d-1aa7-4b7a-a1ea-0fff0499b37e]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_disk_format[id-4a4735a7-f22f-49b6-b0d9-66e1ef7453eb]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_limit[id-e914a891-3cc8-4b40-ad32-e0a39ffbddbb]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_min_max_size[id-4ad8c157-971a-4ba8-aa84-ed61154b1e7f]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_size[id-cf1b9a48-8340-480e-af7b-fe7e17690876]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_status[id-7fc9e369-0f58-4d05-9aa5-0969e2d59d15]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_list_images_param_visibility[id-7a95bb92-d99e-4b12-9718-7bc6ab73e6d2]
-tempest.api.image.v2.test_images.ListUserImagesTest.test_list_no_params[id-1e341d7a-90a9-494c-b143-2cdf2aeb6aee]
-tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_delete_image_null_id[id-32248db1-ab88-4821-9604-c7c369f1f88c]
-tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_delete_non_existing_image[id-6fe40f1c-57bd-4918-89cc-8500f850f3de]
-tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_delete_deleted_image[id-e57fc127-7ba0-4693-92d7-1d8a05ebcba9]
-tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_image_null_id[id-ef45000d-0a72-4781-866d-4cb7bf2562ad]
-tempest.api.image.v2.test_images_negative.ImagesNegativeTest.test_get_non_existent_image[id-668743d5-08ad-4480-b2b8-15da34f81d9f]
-tempest.api.image.v2.test_images_tags.ImagesTagsTest.test_update_delete_tags_for_image[id-10407036-6059-4f95-a2cd-cbbbee7ed329]
-tempest.api.image.v2.test_images_tags_negative.ImagesTagsNegativeTest.test_delete_non_existing_tag[id-39c023a2-325a-433a-9eea-649bf1414b19]
-tempest.api.image.v2.test_images_tags_negative.ImagesTagsNegativeTest.test_update_tags_for_non_existing_image[id-8cd30f82-6f9a-4c6e-8034-c1b51fba43d9]
-tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_all_attributes[id-a4d9ec4c-0306-4111-a75c-db01a709030b]
-tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_allocation_pools[id-bec949c4-3147-4ba6-af5f-cd2306118404]
-tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_dhcp_enabled[id-94ce038d-ff0a-4a4c-a56b-09da3ca0b55d]
-tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_gw[id-9393b468-186d-496d-aa36-732348cd76e7]
-tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_gw_and_allocation_pools[id-8217a149-0c6c-4cfb-93db-0486f707d13f]
-tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_with_host_routes_and_dns_nameservers[id-d830de0a-be47-468f-8f02-1fd996118289]
-tempest.api.network.test_networks.NetworksTest.test_create_delete_subnet_without_gateway[id-d2d596e2-8e76-47a9-ac51-d4648009f4d3]
-tempest.api.network.test_networks.NetworksTest.test_create_update_delete_network_subnet[id-0e269138-0da6-4efc-a46d-578161e7b221]
-tempest.api.network.test_networks.NetworksTest.test_delete_network_with_subnet[id-f04f61a9-b7f3-4194-90b2-9bcf660d1bfe]
-tempest.api.network.test_networks.NetworksTest.test_list_networks[id-f7ffdeda-e200-4a7a-bcbe-05716e86bf43]
-tempest.api.network.test_networks.NetworksTest.test_list_networks_fields[id-6ae6d24f-9194-4869-9c85-c313cb20e080]
-tempest.api.network.test_networks.NetworksTest.test_list_subnets[id-db68ba48-f4ea-49e9-81d1-e367f6d0b20a]
-tempest.api.network.test_networks.NetworksTest.test_list_subnets_fields[id-842589e3-9663-46b0-85e4-7f01273b0412]
-tempest.api.network.test_networks.NetworksTest.test_show_network[id-2bf13842-c93f-4a69-83ed-717d2ec3b44e]
-tempest.api.network.test_networks.NetworksTest.test_show_network_fields[id-867819bb-c4b6-45f7-acf9-90edcf70aa5e]
-tempest.api.network.test_networks.NetworksTest.test_show_subnet[id-bd635d81-6030-4dd1-b3b9-31ba0cfdf6cc]
-tempest.api.network.test_networks.NetworksTest.test_show_subnet_fields[id-270fff0b-8bfc-411f-a184-1e8fd35286f0]
-tempest.api.network.test_networks.NetworksTest.test_update_subnet_gw_dns_host_routes_dhcp[id-3d3852eb-3009-49ec-97ac-5ce83b73010a]
-tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_all_attributes[id-a4d9ec4c-0306-4111-a75c-db01a709030b]
-tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_with_allocation_pools[id-bec949c4-3147-4ba6-af5f-cd2306118404]
-tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_with_dhcp_enabled[id-94ce038d-ff0a-4a4c-a56b-09da3ca0b55d]
-tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_with_gw[id-9393b468-186d-496d-aa36-732348cd76e7]
-tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_with_gw_and_allocation_pools[id-8217a149-0c6c-4cfb-93db-0486f707d13f]
-tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_with_host_routes_and_dns_nameservers[id-d830de0a-be47-468f-8f02-1fd996118289]
-tempest.api.network.test_networks.NetworksTestJSON.test_create_delete_subnet_without_gateway[id-d2d596e2-8e76-47a9-ac51-d4648009f4d3]
-tempest.api.network.test_networks.NetworksTestJSON.test_create_update_delete_network_subnet[id-0e269138-0da6-4efc-a46d-578161e7b221]
-tempest.api.network.test_networks.NetworksTestJSON.test_delete_network_with_subnet[id-f04f61a9-b7f3-4194-90b2-9bcf660d1bfe]
-tempest.api.network.test_networks.NetworksTestJSON.test_list_networks[id-f7ffdeda-e200-4a7a-bcbe-05716e86bf43]
-tempest.api.network.test_networks.NetworksTestJSON.test_list_networks_fields[id-6ae6d24f-9194-4869-9c85-c313cb20e080]
-tempest.api.network.test_networks.NetworksTestJSON.test_list_subnets[id-db68ba48-f4ea-49e9-81d1-e367f6d0b20a]
-tempest.api.network.test_networks.NetworksTestJSON.test_list_subnets_fields[id-842589e3-9663-46b0-85e4-7f01273b0412]
-tempest.api.network.test_networks.NetworksTestJSON.test_show_network[id-2bf13842-c93f-4a69-83ed-717d2ec3b44e]
-tempest.api.network.test_networks.NetworksTestJSON.test_show_network_fields[id-867819bb-c4b6-45f7-acf9-90edcf70aa5e]
-tempest.api.network.test_networks.NetworksTestJSON.test_show_subnet[id-bd635d81-6030-4dd1-b3b9-31ba0cfdf6cc]
-tempest.api.network.test_networks.NetworksTestJSON.test_show_subnet_fields[id-270fff0b-8bfc-411f-a184-1e8fd35286f0]
-tempest.api.network.test_networks.NetworksTestJSON.test_update_subnet_gw_dns_host_routes_dhcp[id-3d3852eb-3009-49ec-97ac-5ce83b73010a]
-tempest.api.network.test_ports.PortsTestJSON.test_create_bulk_port[id-67f1b811-f8db-43e2-86bd-72c074d4a42c]
-tempest.api.network.test_ports.PortsTestJSON.test_create_port_in_allowed_allocation_pools[id-0435f278-40ae-48cb-a404-b8a087bc09b1]
-tempest.api.network.test_ports.PortsTestJSON.test_create_update_delete_port[id-c72c1c0c-2193-4aca-aaa4-b1442640f51c]
-tempest.api.network.test_ports.PortsTestJSON.test_list_ports[id-cf95b358-3e92-4a29-a148-52445e1ac50e]
-tempest.api.network.test_ports.PortsTestJSON.test_list_ports_fields[id-ff7f117f-f034-4e0e-abff-ccef05c454b4]
-tempest.api.network.test_ports.PortsTestJSON.test_show_port[id-c9a685bd-e83f-499c-939f-9f7863ca259f]
-tempest.api.network.test_ports.PortsTestJSON.test_show_port_fields[id-45fcdaf2-dab0-4c13-ac6c-fcddfb579dbd]
-tempest.api.network.test_ports.PortsTestJSON.test_update_port_with_security_group_and_extra_attributes[id-58091b66-4ff4-4cc1-a549-05d60c7acd1a]
-tempest.api.network.test_ports.PortsTestJSON.test_update_port_with_two_security_groups_and_extra_attributes[id-edf6766d-3d40-4621-bc6e-2521a44c257d]
-tempest.api.network.test_security_groups.SecGroupTest.test_create_list_update_show_delete_security_group[id-bfd128e5-3c92-44b6-9d66-7fe29d22c802]
-tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_additional_args[id-87dfbcf9-1849-43ea-b1e4-efa3eeae9f71]
-tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_icmp_type_code[id-c9463db8-b44d-4f52-b6c0-8dbda99f26ce]
-tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_protocol_integer_value[id-0a307599-6655-4220-bebc-fd70c64f2290]
-tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_remote_group_id[id-c2ed2deb-7a0c-44d8-8b4c-a5825b5c310b]
-tempest.api.network.test_security_groups.SecGroupTest.test_create_security_group_rule_with_remote_ip_prefix[id-16459776-5da2-4634-bce4-4b55ee3ec188]
-tempest.api.network.test_security_groups.SecGroupTest.test_create_show_delete_security_group_rule[id-cfb99e0e-7410-4a3d-8a0c-959a63ee77e9]
-tempest.api.network.test_security_groups.SecGroupTest.test_list_security_groups[id-e30abd17-fef9-4739-8617-dc26da88e686]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_additional_default_security_group_fails[id-2323061e-9fbf-4eb0-b547-7e8fafc90849]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_duplicate_security_group_rule_fails[id-8fde898f-ce88-493b-adc9-4e4692879fc5]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_ethertype[id-5666968c-fff3-40d6-9efc-df1c8bd01abb]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_protocol[id-981bdc22-ce48-41ed-900a-73148b583958]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_bad_remote_ip_prefix[id-5f8daf69-3c5f-4aaa-88c9-db1d66f68679]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_invalid_ports[id-0d9c7791-f2ad-4e2f-ac73-abf2373b0d2d]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_non_existent_remote_groupid[id-4bf786fd-2f02-443c-9716-5b98e159a49a]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_create_security_group_rule_with_non_existent_security_group[id-be308db6-a7cf-4d5c-9baf-71bafd73f35e]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_delete_non_existent_security_group[id-1f1bb89d-5664-4956-9fcd-83ee0fa603df]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_show_non_existent_security_group[id-424fd5c3-9ddc-486a-b45f-39bf0c820fc6]
-tempest.api.network.test_security_groups_negative.NegativeSecGroupTest.test_show_non_existent_security_group_rule[id-4c094c09-000b-4e41-8100-9617600c02a6]
-tempest.api.volume.test_availability_zone.AvailabilityZoneV2TestJSON.test_get_availability_zone_list[id-01f1ae88-eba9-4c6b-a011-6f7ace06b725]
-tempest.api.volume.test_extensions.ExtensionsV2TestJSON.test_list_extensions[id-94607eb0-43a5-47ca-82aa-736b41bd2e2c]
-tempest.api.volume.test_snapshot_metadata.SnapshotV2MetadataTestJSON.test_create_get_delete_snapshot_metadata[id-a2f20f99-e363-4584-be97-bc33afb1a56c]
-tempest.api.volume.test_snapshot_metadata.SnapshotV2MetadataTestJSON.test_crud_snapshot_metadata[id-a2f20f99-e363-4584-be97-bc33afb1a56c]
-tempest.api.volume.test_snapshot_metadata.SnapshotV2MetadataTestJSON.test_update_snapshot_metadata_item[id-e8ff85c5-8f97-477f-806a-3ac364a949ed]
-tempest.api.volume.test_volume_metadata.VolumesV2MetadataTest.test_create_get_delete_volume_metadata[id-6f5b125b-f664-44bf-910f-751591fe5769]
-tempest.api.volume.test_volume_metadata.VolumesV2MetadataTest.test_crud_volume_metadata[id-6f5b125b-f664-44bf-910f-751591fe5769]
-tempest.api.volume.test_volume_metadata.VolumesV2MetadataTest.test_update_volume_metadata_item[id-862261c5-8df4-475a-8c21-946e50e36a20]
-tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_attach_detach_volume_to_instance[id-fff42874-7db5-4487-a8e1-ddda5fb5288d]
-tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_get_volume_attachment[id-9516a2c8-9135-488c-8dd6-5677a7e5f371]
-tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_reserve_unreserve_volume[id-92c4ef64-51b2-40c0-9f7e-4749fbaaba33]
-tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_volume_bootable[id-63e21b4c-0a0c-41f6-bfc3-7c2816815599]
-tempest.api.volume.test_volumes_actions.VolumesV2ActionsTest.test_volume_readonly_update[id-fff74e1e-5bd3-4b33-9ea9-24c103bc3f59]
-tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete[id-27fb0e9f-fb64-41dd-8bdb-1ffa762f0d51]
-tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete_as_clone[id-3f591b4a-7dc6-444c-bd51-77469506b3a1]
-tempest.api.volume.test_volumes_get.VolumesV2GetTest.test_volume_create_get_update_delete_from_image[id-54a01030-c7fc-447c-86ee-c1182beae638]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list[id-0b6ddd39-b948-471f-8038-4787978747c4]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_by_name[id-a28e8da4-0b56-472f-87a8-0f4d3f819c02]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_by_name[id-2de3a6d4-12aa-403b-a8f2-fdeb42a89623]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_param_display_name_and_status[id-777c87c1-2fc4-4883-8b8e-5c0b951d1ec8]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_detail_param_display_name_and_status[id-856ab8ca-6009-4c37-b691-be1065528ad4]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_detail_param_metadata[id-1ca92d3c-4a8e-4b43-93f5-e4c7fb3b291d]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_details[id-adcbb5a7-5ad8-4b61-bd10-5380e111a877]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_with_param_metadata[id-b5ebea1b-0603-40a0-bb41-15fcd0a53214]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_by_availability_zone[id-c0cfa863-3020-40d7-b587-e35f597d5d87]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_by_status[id-39654e13-734c-4dab-95ce-7613bf8407ce]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_details_by_availability_zone[id-e1b80d13-94f0-4ba2-a40e-386af29f8db1]
-tempest.api.volume.test_volumes_list.VolumesV2ListTestJSON.test_volumes_list_details_by_status[id-2943f712-71ec-482a-bf49-d5ca06216b9f]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_attach_volumes_with_nonexistent_volume_id[id-f5e56b0a-5d02-43c1-a2a7-c9b792c2e3f6]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_invalid_size[id-1ed83a8a-682d-4dfb-a30e-ee63ffd6c049]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_snapshot_id[id-0c36f6ae-4604-4017-b0a9-34fdc63096f9]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_source_volid[id-47c73e08-4be8-45bb-bfdf-0c4e79b88344]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_nonexistent_volume_type[id-10254ed8-3849-454e-862e-3ab8e6aa01d2]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_out_passing_size[id-9387686f-334f-4d31-a439-33494b9e2683]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_size_negative[id-8b472729-9eba-446e-a83b-916bdb34bef7]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_with_size_zero[id-41331caa-eaf4-4001-869d-bc18c1869360]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_create_volume_without_passing_size[id-9387686f-334f-4d31-a439-33494b9e2683]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_delete_invalid_volume_id[id-1f035827-7c32-4019-9240-b4ec2dbd9dfd]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_delete_volume_without_passing_volume_id[id-441a1550-5d44-4b30-af0f-a6d402f52026]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_detach_volumes_with_invalid_volume_id[id-9f9c24e4-011d-46b5-b992-952140ce237a]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_get_invalid_volume_id[id-30799cfd-7ee4-446c-b66c-45b383ed211b]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_get_volume_without_passing_volume_id[id-c6c3db06-29ad-4e91-beb0-2ab195fe49e3]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_detail_with_invalid_status[id-ba94b27b-be3f-496c-a00e-0283b373fa75]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_detail_with_nonexistent_name[id-9ca17820-a0e7-4cbd-a7fa-f4468735e359]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_with_invalid_status[id-143b279b-7522-466b-81be-34a87d564a7c]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_list_volumes_with_nonexistent_name[id-0f4aa809-8c7b-418f-8fb3-84c7a5dfc52f]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_reserve_volume_with_negative_volume_status[id-449c4ed2-ecdd-47bb-98dc-072aeccf158c]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_reserve_volume_with_nonexistent_volume_id[id-ac6084c0-0546-45f9-b284-38a367e0e0e2]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_unreserve_volume_with_nonexistent_volume_id[id-eb467654-3dc1-4a72-9b46-47c29d22654c]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_empty_volume_id[id-72aeca85-57a5-4c1f-9057-f320f9ea575b]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_invalid_volume_id[id-e66e40d6-65e6-4e75-bdc7-636792fa152d]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_update_volume_with_nonexistent_volume_id[id-0186422c-999a-480e-a026-6a665744c30c]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_volume_delete_nonexistent_volume_id[id-555efa6e-efcd-44ef-8a3b-4a7ca4837a29]
-tempest.api.volume.test_volumes_negative.VolumesV2NegativeTest.test_volume_get_nonexistent_volume_id[id-f131c586-9448-44a4-a8b0-54ca838aa43e]
-tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_snapshot_create_get_list_update_delete[id-2a8abbe4-d871-46db-b049-c41f5af8216e]
-tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_snapshots_list_details_with_params[id-220a1022-1fcd-4a74-a7bd-6b859156cda2]
-tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_snapshots_list_with_params[id-59f41f43-aebf-48a9-ab5d-d76340fab32b]
-tempest.api.volume.test_volumes_snapshots.VolumesV2SnapshotTestJSON.test_volume_from_snapshot[id-677863d1-3142-456d-b6ac-9924f667a7f4]
-tempest.api.volume.test_volumes_snapshots_list.VolumesV2SnapshotListTestJSON.test_snapshots_list_details_with_params[id-220a1022-1fcd-4a74-a7bd-6b859156cda2]
-tempest.api.volume.test_volumes_snapshots_list.VolumesV2SnapshotListTestJSON.test_snapshots_list_with_params[id-59f41f43-aebf-48a9-ab5d-d76340fab32b]
-tempest.api.volume.test_volumes_snapshots_negative.VolumesV2SnapshotNegativeTestJSON.test_create_snapshot_with_nonexistent_volume_id[id-e3e466af-70ab-4f4b-a967-ab04e3532ea7]
-tempest.api.volume.test_volumes_snapshots_negative.VolumesV2SnapshotNegativeTestJSON.test_create_snapshot_without_passing_volume_id[id-bb9da53e-d335-4309-9c15-7e76fd5e4d6d]
-tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_pagination[id-e9138a2c-f67b-4796-8efa-635c196d01de]
-tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_details_with_multiple_params[id-2a7064eb-b9c3-429b-b888-33928fc5edd3]
-tempest.api.volume.v2.test_volumes_list.VolumesV2ListTestJSON.test_volume_list_pagination[id-af55e775-8e4b-4feb-8719-215c43b0238c]
diff --git a/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml b/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml
deleted file mode 100644
index b47a9736..00000000
--- a/functest/opnfv_tests/openstack/tempest/custom_tests/tempest_conf.yaml
+++ /dev/null
@@ -1,13 +0,0 @@
-# This is an empty configuration file to be filled up with the desired options
-# to generate a custom tempest.conf
-# Examples:
-# network-feature-enabled:
-# port_security: True
-
-# volume-feature-enabled:
-# api_v1: False
-
-# validation:
-# image_ssh_user: root
-# ssh_timeout: 300
-
diff --git a/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt b/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt
deleted file mode 100644
index df2c3126..00000000
--- a/functest/opnfv_tests/openstack/tempest/custom_tests/test_list.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-# This is an empty file to be filled up with the desired tempest test cases
-# Examples:
-#tempest.scenario.test_server_basic_ops.TestServerBasicOps.test_server_basic_ops[compute,id-7fff3fb3-91d8-4fd0-bd7d-0204f1f180ba,network,smoke]
-#tempest.scenario.test_network_basic_ops.TestNetworkBasicOps.test_network_basic_ops[compute,id-f323b3ba-82f8-4db7-8ea6-6a895869ec49,network,smoke]
diff --git a/functest/opnfv_tests/openstack/tempest/tempest.py b/functest/opnfv_tests/openstack/tempest/tempest.py
deleted file mode 100644
index dd15c08e..00000000
--- a/functest/opnfv_tests/openstack/tempest/tempest.py
+++ /dev/null
@@ -1,484 +0,0 @@
-#!/usr/bin/env python
-#
-# Copyright (c) 2015 All rights reserved
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-
-"""Tempest testcases implementation."""
-
-from __future__ import division
-
-import logging
-import os
-import re
-import shutil
-import subprocess
-import time
-import uuid
-
-import yaml
-
-from functest.core import testcase
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-from functest.opnfv_tests.openstack.tempest import conf_utils
-from functest.utils import config
-from functest.utils import env
-import functest.utils.functest_utils as ft_utils
-
-from snaps.config.flavor import FlavorConfig
-from snaps.config.network import NetworkConfig, SubnetConfig
-from snaps.config.project import ProjectConfig
-from snaps.config.user import UserConfig
-
-from snaps.openstack import create_flavor
-from snaps.openstack.create_flavor import OpenStackFlavor
-from snaps.openstack.tests import openstack_tests
-from snaps.openstack.utils import deploy_utils
-
-
-LOGGER = logging.getLogger(__name__)
-
-
-class TempestCommon(testcase.TestCase):
- # pylint: disable=too-many-instance-attributes
- """TempestCommon testcases implementation class."""
-
- def __init__(self, **kwargs):
- super(TempestCommon, self).__init__(**kwargs)
- self.resources = TempestResourcesManager(**kwargs)
- self.mode = ""
- self.option = []
- self.verifier_id = conf_utils.get_verifier_id()
- self.verifier_repo_dir = conf_utils.get_verifier_repo_dir(
- self.verifier_id)
- self.deployment_id = conf_utils.get_verifier_deployment_id()
- self.deployment_dir = conf_utils.get_verifier_deployment_dir(
- self.verifier_id, self.deployment_id)
- self.verification_id = None
-
- @staticmethod
- def read_file(filename):
- """Read file and return content as a stripped list."""
- with open(filename) as src:
- return [line.strip() for line in src.readlines()]
-
- @staticmethod
- def get_verifier_result(verif_id):
- """Retrieve verification results."""
- result = {
- 'num_tests': 0,
- 'num_success': 0,
- 'num_failures': 0,
- 'num_skipped': 0
- }
- cmd = ["rally", "verify", "show", "--uuid", verif_id]
- LOGGER.info("Showing result for a verification: '%s'.", cmd)
- proc = subprocess.Popen(cmd,
- stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
- for line in proc.stdout:
- new_line = line.replace(' ', '').split('|')
- if 'Tests' in new_line:
- break
- LOGGER.info(line)
- if 'Testscount' in new_line:
- result['num_tests'] = int(new_line[2])
- elif 'Success' in new_line:
- result['num_success'] = int(new_line[2])
- elif 'Skipped' in new_line:
- result['num_skipped'] = int(new_line[2])
- elif 'Failures' in new_line:
- result['num_failures'] = int(new_line[2])
- return result
-
- def generate_test_list(self, verifier_repo_dir):
- """Generate test list based on the test mode."""
- LOGGER.debug("Generating test case list...")
- if self.mode == 'custom':
- if os.path.isfile(conf_utils.TEMPEST_CUSTOM):
- shutil.copyfile(
- conf_utils.TEMPEST_CUSTOM, conf_utils.TEMPEST_RAW_LIST)
- else:
- raise Exception("Tempest test list file %s NOT found."
- % conf_utils.TEMPEST_CUSTOM)
- else:
- if self.mode == 'smoke':
- testr_mode = r"'tempest\.(api|scenario).*\[.*\bsmoke\b.*\]'"
- elif self.mode == 'full':
- testr_mode = r"'^tempest\.'"
- else:
- testr_mode = self.mode
- cmd = ("cd {0};"
- "testr list-tests {1} > {2};"
- "cd -;".format(verifier_repo_dir,
- testr_mode,
- conf_utils.TEMPEST_RAW_LIST))
- ft_utils.execute_command(cmd)
-
- def apply_tempest_blacklist(self):
- """Exclude blacklisted test cases."""
- LOGGER.debug("Applying tempest blacklist...")
- cases_file = self.read_file(conf_utils.TEMPEST_RAW_LIST)
- result_file = open(conf_utils.TEMPEST_LIST, 'w')
- black_tests = []
- try:
- installer_type = env.get('INSTALLER_TYPE')
- deploy_scenario = env.get('DEPLOY_SCENARIO')
- if bool(installer_type) * bool(deploy_scenario):
- # if INSTALLER_TYPE and DEPLOY_SCENARIO are set we read the
- # file
- black_list_file = open(conf_utils.TEMPEST_BLACKLIST)
- black_list_yaml = yaml.safe_load(black_list_file)
- black_list_file.close()
- 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']
- for test in tests:
- black_tests.append(test)
- break
- except Exception: # pylint: disable=broad-except
- black_tests = []
- LOGGER.debug("Tempest blacklist file does not exist.")
-
- for cases_line in cases_file:
- for black_tests_line in black_tests:
- if black_tests_line in cases_line:
- break
- else:
- result_file.write(str(cases_line) + '\n')
- result_file.close()
-
- def run_verifier_tests(self):
- """Execute tempest test cases."""
- cmd = ["rally", "verify", "start", "--load-list",
- conf_utils.TEMPEST_LIST]
- cmd.extend(self.option)
- LOGGER.info("Starting Tempest test suite: '%s'.", cmd)
-
- f_stdout = open(
- os.path.join(conf_utils.TEMPEST_RESULTS_DIR, "tempest.log"), 'w+')
- f_stderr = open(
- os.path.join(conf_utils.TEMPEST_RESULTS_DIR,
- "tempest-error.log"), 'w+')
-
- proc = subprocess.Popen(
- cmd,
- stdout=subprocess.PIPE,
- stderr=f_stderr,
- bufsize=1)
-
- with proc.stdout:
- for line in iter(proc.stdout.readline, b''):
- if re.search(r"\} tempest\.", line):
- LOGGER.info(line.replace('\n', ''))
- elif re.search('Starting verification', line):
- LOGGER.info(line.replace('\n', ''))
- first_pos = line.index("UUID=") + len("UUID=")
- last_pos = line.index(") for deployment")
- self.verification_id = line[first_pos:last_pos]
- LOGGER.debug('Verification UUID: %s', self.verification_id)
- f_stdout.write(line)
- proc.wait()
-
- f_stdout.close()
- f_stderr.close()
-
- if self.verification_id is None:
- raise Exception('Verification UUID not found')
-
- def parse_verifier_result(self):
- """Parse and save test results."""
- stat = self.get_verifier_result(self.verification_id)
- try:
- num_executed = stat['num_tests'] - stat['num_skipped']
- try:
- self.result = 100 * stat['num_success'] / num_executed
- except ZeroDivisionError:
- self.result = 0
- if stat['num_tests'] > 0:
- LOGGER.info("All tests have been skipped")
- else:
- LOGGER.error("No test has been executed")
- return
-
- with open(os.path.join(conf_utils.TEMPEST_RESULTS_DIR,
- "tempest.log"), 'r') as logfile:
- output = logfile.read()
-
- success_testcases = []
- for match in re.findall(r'.*\{0\} (.*?)[. ]*success ', output):
- success_testcases.append(match)
- failed_testcases = []
- for match in re.findall(r'.*\{0\} (.*?)[. ]*fail ', output):
- failed_testcases.append(match)
- skipped_testcases = []
- for match in re.findall(r'.*\{0\} (.*?)[. ]*skip:', output):
- skipped_testcases.append(match)
-
- self.details = {"tests": stat['num_tests'],
- "failures": stat['num_failures'],
- "success": success_testcases,
- "skipped": skipped_testcases,
- "errors": failed_testcases}
- except Exception: # pylint: disable=broad-except
- self.result = 0
-
- LOGGER.info("Tempest %s success_rate is %s%%",
- self.case_name, self.result)
-
- def generate_report(self):
- """Generate verification report."""
- html_file = os.path.join(conf_utils.TEMPEST_RESULTS_DIR,
- "tempest-report.html")
- cmd = ["rally", "verify", "report", "--type", "html", "--uuid",
- self.verification_id, "--to", html_file]
- subprocess.Popen(cmd, stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT)
-
- def run(self, **kwargs):
-
- self.start_time = time.time()
- try:
- if not os.path.exists(conf_utils.TEMPEST_RESULTS_DIR):
- os.makedirs(conf_utils.TEMPEST_RESULTS_DIR)
- resources = self.resources.create()
- compute_cnt = snaps_utils.get_active_compute_cnt(
- self.resources.os_creds)
- conf_utils.configure_tempest(
- self.deployment_dir,
- network_name=resources.get("network_name"),
- image_id=resources.get("image_id"),
- flavor_id=resources.get("flavor_id"),
- compute_cnt=compute_cnt)
- self.generate_test_list(self.verifier_repo_dir)
- self.apply_tempest_blacklist()
- self.run_verifier_tests()
- self.parse_verifier_result()
- self.generate_report()
- res = testcase.TestCase.EX_OK
- except Exception as err: # pylint: disable=broad-except
- LOGGER.error('Error with run: %s', err)
- res = testcase.TestCase.EX_RUN_ERROR
- finally:
- self.resources.cleanup()
-
- self.stop_time = time.time()
- return res
-
-
-class TempestSmokeSerial(TempestCommon):
- """Tempest smoke serial testcase implementation."""
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = 'tempest_smoke_serial'
- TempestCommon.__init__(self, **kwargs)
- self.mode = "smoke"
- self.option = ["--concurrency", "1"]
-
-
-class TempestSmokeParallel(TempestCommon):
- """Tempest smoke parallel testcase implementation."""
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = 'tempest_smoke_parallel'
- TempestCommon.__init__(self, **kwargs)
- self.mode = "smoke"
-
-
-class TempestFullParallel(TempestCommon):
- """Tempest full parallel testcase implementation."""
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = 'tempest_full_parallel'
- TempestCommon.__init__(self, **kwargs)
- self.mode = "full"
-
-
-class TempestCustom(TempestCommon):
- """Tempest custom testcase implementation."""
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = 'tempest_custom'
- TempestCommon.__init__(self, **kwargs)
- self.mode = "custom"
- self.option = ["--concurrency", "1"]
-
-
-class TempestDefcore(TempestCommon):
- """Tempest Defcore testcase implementation."""
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = 'tempest_defcore'
- TempestCommon.__init__(self, **kwargs)
- self.mode = "defcore"
- self.option = ["--concurrency", "1"]
-
-
-class TempestResourcesManager(object):
- """Tempest resource manager."""
- def __init__(self, **kwargs):
- self.os_creds = kwargs.get('os_creds') or snaps_utils.get_credentials()
- self.guid = '-' + str(uuid.uuid4())
- self.creators = list()
- self.cirros_image_config = getattr(
- config.CONF, 'snaps_images_cirros', None)
-
- def _create_project(self):
- """Create project for tests."""
- project_creator = deploy_utils.create_project(
- self.os_creds, ProjectConfig(
- name=getattr(
- config.CONF, 'tempest_identity_tenant_name') + self.guid,
- description=getattr(
- config.CONF, 'tempest_identity_tenant_description')))
- if project_creator is None or project_creator.get_project() is None:
- raise Exception("Failed to create tenant")
- self.creators.append(project_creator)
- return project_creator.get_project().id
-
- def _create_user(self):
- """Create user for tests."""
- user_creator = deploy_utils.create_user(
- self.os_creds, UserConfig(
- name=getattr(
- config.CONF, 'tempest_identity_user_name') + self.guid,
- password=getattr(
- config.CONF, 'tempest_identity_user_password'),
- project_name=getattr(
- config.CONF, 'tempest_identity_tenant_name') + self.guid))
- if user_creator is None or user_creator.get_user() is None:
- raise Exception("Failed to create user")
- self.creators.append(user_creator)
- return user_creator.get_user().id
-
- def _create_network(self, project_name):
- """Create network for tests."""
- tempest_network_type = None
- tempest_physical_network = None
- tempest_segmentation_id = None
-
- tempest_network_type = getattr(
- config.CONF, 'tempest_network_type', None)
- tempest_physical_network = getattr(
- config.CONF, 'tempest_physical_network', None)
- tempest_segmentation_id = getattr(
- config.CONF, 'tempest_segmentation_id', None)
- tempest_net_name = getattr(
- config.CONF, 'tempest_private_net_name') + self.guid
-
- network_creator = deploy_utils.create_network(
- self.os_creds, NetworkConfig(
- name=tempest_net_name,
- project_name=project_name,
- network_type=tempest_network_type,
- physical_network=tempest_physical_network,
- segmentation_id=tempest_segmentation_id,
- subnet_settings=[SubnetConfig(
- name=getattr(
- config.CONF,
- 'tempest_private_subnet_name') + self.guid,
- project_name=project_name,
- cidr=getattr(
- config.CONF, 'tempest_private_subnet_cidr'))]))
- if network_creator is None or network_creator.get_network() is None:
- raise Exception("Failed to create private network")
- self.creators.append(network_creator)
- return tempest_net_name
-
- def _create_image(self, name):
- """Create image for tests"""
- os_image_settings = openstack_tests.cirros_image_settings(
- name, public=True,
- image_metadata=self.cirros_image_config)
- image_creator = deploy_utils.create_image(
- self.os_creds, os_image_settings)
- if image_creator is None:
- raise Exception('Failed to create image')
- self.creators.append(image_creator)
- return image_creator.get_image().id
-
- def _create_flavor(self, name):
- """Create flavor for tests."""
- scenario = env.get('DEPLOY_SCENARIO')
- flavor_metadata = None
- if 'ovs' in scenario or 'fdio' in scenario:
- flavor_metadata = create_flavor.MEM_PAGE_SIZE_LARGE
- flavor_creator = OpenStackFlavor(
- self.os_creds, FlavorConfig(
- name=name,
- ram=getattr(config.CONF, 'openstack_flavor_ram'),
- disk=getattr(config.CONF, 'openstack_flavor_disk'),
- vcpus=getattr(config.CONF, 'openstack_flavor_vcpus'),
- metadata=flavor_metadata))
- flavor = flavor_creator.create()
- if flavor is None:
- raise Exception('Failed to create flavor')
- self.creators.append(flavor_creator)
- return flavor.id
-
- def create(self, use_custom_images=False, use_custom_flavors=False,
- create_project=False):
- """Create resources for Tempest test suite."""
- result = {
- 'tempest_net_name': None,
- 'image_id': None,
- 'image_id_alt': None,
- 'flavor_id': None,
- 'flavor_id_alt': None
- }
- project_name = None
-
- if create_project:
- LOGGER.debug("Creating project and user for Tempest suite")
- project_name = getattr(
- config.CONF, 'tempest_identity_tenant_name') + self.guid
- result['project_id'] = self._create_project()
- result['user_id'] = self._create_user()
- result['tenant_id'] = result['project_id'] # for compatibility
-
- LOGGER.debug("Creating private network for Tempest suite")
- result['tempest_net_name'] = self._create_network(project_name)
-
- LOGGER.debug("Creating image for Tempest suite")
- image_name = getattr(config.CONF, 'openstack_image_name') + self.guid
- result['image_id'] = self._create_image(image_name)
-
- if use_custom_images:
- LOGGER.debug("Creating 2nd image for Tempest suite")
- image_name = getattr(
- config.CONF, 'openstack_image_name_alt') + self.guid
- result['image_id_alt'] = self._create_image(image_name)
-
- if (getattr(config.CONF, 'tempest_use_custom_flavors') == 'True' or
- use_custom_flavors):
- LOGGER.info("Creating flavor for Tempest suite")
- name = getattr(config.CONF, 'openstack_flavor_name') + self.guid
- result['flavor_id'] = self._create_flavor(name)
-
- if use_custom_flavors:
- LOGGER.info("Creating 2nd flavor for Tempest suite")
- scenario = env.get('DEPLOY_SCENARIO')
- if 'ovs' in scenario or 'fdio' in scenario:
- setattr(config.CONF, 'openstack_flavor_ram', 1024)
- name = getattr(
- config.CONF, 'openstack_flavor_name_alt') + self.guid
- result['flavor_id_alt'] = self._create_flavor(name)
-
- return result
-
- def cleanup(self):
- """
- Cleanup all OpenStack objects. Should be called on completion.
- """
- for creator in reversed(self.creators):
- try:
- creator.clean()
- except Exception as err: # pylint: disable=broad-except
- LOGGER.error('Unexpected error cleaning - %s', err)
diff --git a/functest/opnfv_tests/openstack/vping/__init__.py b/functest/opnfv_tests/openstack/vping/__init__.py
deleted file mode 100644
index e69de29b..00000000
--- a/functest/opnfv_tests/openstack/vping/__init__.py
+++ /dev/null
diff --git a/functest/opnfv_tests/openstack/vping/ping.sh b/functest/opnfv_tests/openstack/vping/ping.sh
deleted file mode 100644
index 15f5e84e..00000000
--- a/functest/opnfv_tests/openstack/vping/ping.sh
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-
-ping -c 1 $1 2>&1 >/dev/null
-RES=$?
-if [ "Z$RES" = "Z0" ] ; then
- echo 'vPing OK'
-else
- echo 'vPing KO'
-fi
diff --git a/functest/opnfv_tests/openstack/vping/vping_base.py b/functest/opnfv_tests/openstack/vping/vping_base.py
deleted file mode 100644
index 586b8d65..00000000
--- a/functest/opnfv_tests/openstack/vping/vping_base.py
+++ /dev/null
@@ -1,204 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
-#
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""Define the parent class of vping_ssh and vping_userdata testcases."""
-
-from datetime import datetime
-import logging
-import time
-import uuid
-
-from functest.core import testcase
-from functest.opnfv_tests.openstack.snaps import snaps_utils
-from functest.utils import config
-from functest.utils import env
-
-from snaps.config.flavor import FlavorConfig
-from snaps.config.network import NetworkConfig, SubnetConfig
-from snaps.config.router import RouterConfig
-from snaps.openstack import create_flavor
-from snaps.openstack.create_flavor import OpenStackFlavor
-from snaps.openstack.tests import openstack_tests
-from snaps.openstack.utils import deploy_utils
-
-
-class VPingBase(testcase.TestCase):
-
- """
- Base class for vPing tests that check connectivity between two VMs shared
- internal network.
- This class is responsible for creating the image, internal network.
- """
- # pylint: disable=too-many-instance-attributes
-
- def __init__(self, **kwargs):
- super(VPingBase, self).__init__(**kwargs)
- self.logger = logging.getLogger(__name__)
- self.os_creds = kwargs.get('os_creds') or snaps_utils.get_credentials()
- self.creators = list()
- self.image_creator = None
- self.network_creator = None
- self.vm1_creator = None
- self.vm2_creator = None
- self.router_creator = None
-
- # Shared metadata
- self.guid = '-' + str(uuid.uuid4())
-
- self.router_name = getattr(
- config.CONF, 'vping_router_name') + self.guid
- self.vm1_name = getattr(
- config.CONF, 'vping_vm_name_1') + self.guid
- self.vm2_name = getattr(config.CONF, 'vping_vm_name_2') + self.guid
-
- self.vm_boot_timeout = getattr(config.CONF, 'vping_vm_boot_timeout')
- self.vm_delete_timeout = getattr(
- config.CONF, 'vping_vm_delete_timeout')
- self.vm_ssh_connect_timeout = getattr(
- config.CONF, 'vping_vm_ssh_connect_timeout')
- self.ping_timeout = getattr(config.CONF, 'vping_ping_timeout')
- self.flavor_name = 'vping-flavor' + self.guid
-
- # Move this configuration option up for all tests to leverage
- if hasattr(config.CONF, 'snaps_images_cirros'):
- self.cirros_image_config = getattr(
- config.CONF, 'snaps_images_cirros')
- else:
- self.cirros_image_config = None
-
- def run(self, **kwargs): # pylint: disable=too-many-locals
- """
- Begins the test execution which should originate from the subclass
- """
- self.logger.info('Begin virtual environment setup')
-
- self.start_time = time.time()
- self.logger.info(
- "vPing Start Time:'%s'",
- datetime.fromtimestamp(self.start_time).strftime(
- '%Y-%m-%d %H:%M:%S'))
-
- image_base_name = '{}-{}'.format(
- getattr(config.CONF, 'vping_image_name'),
- str(self.guid))
- os_image_settings = openstack_tests.cirros_image_settings(
- image_base_name, image_metadata=self.cirros_image_config)
- self.logger.info("Creating image with name: '%s'", image_base_name)
-
- self.image_creator = deploy_utils.create_image(
- self.os_creds, os_image_settings)
- self.creators.append(self.image_creator)
-
- private_net_name = getattr(
- config.CONF, 'vping_private_net_name') + self.guid
- private_subnet_name = getattr(
- config.CONF, 'vping_private_subnet_name') + self.guid
- private_subnet_cidr = getattr(config.CONF, 'vping_private_subnet_cidr')
-
- vping_network_type = None
- vping_physical_network = None
- vping_segmentation_id = None
-
- if hasattr(config.CONF, 'vping_network_type'):
- vping_network_type = getattr(config.CONF, 'vping_network_type')
- if hasattr(config.CONF, 'vping_physical_network'):
- vping_physical_network = getattr(
- config.CONF, 'vping_physical_network')
- if hasattr(config.CONF, 'vping_segmentation_id'):
- vping_segmentation_id = getattr(
- config.CONF, 'vping_segmentation_id')
-
- self.logger.info(
- "Creating network with name: '%s'", private_net_name)
- self.network_creator = deploy_utils.create_network(
- self.os_creds,
- NetworkConfig(
- name=private_net_name,
- network_type=vping_network_type,
- physical_network=vping_physical_network,
- segmentation_id=vping_segmentation_id,
- subnet_settings=[SubnetConfig(
- name=private_subnet_name,
- cidr=private_subnet_cidr)]))
- self.creators.append(self.network_creator)
-
- # Creating router to external network
- log = "Creating router with name: '%s'" % self.router_name
- self.logger.info(log)
- ext_net_name = snaps_utils.get_ext_net_name(self.os_creds)
- self.router_creator = deploy_utils.create_router(
- self.os_creds,
- RouterConfig(
- name=self.router_name,
- external_gateway=ext_net_name,
- internal_subnets=[private_subnet_name]))
- self.creators.append(self.router_creator)
-
- self.logger.info(
- "Creating flavor with name: '%s'", self.flavor_name)
- scenario = env.get('DEPLOY_SCENARIO')
- flavor_metadata = None
- flavor_ram = 512
- if 'ovs' in scenario or 'fdio' in scenario:
- flavor_metadata = create_flavor.MEM_PAGE_SIZE_LARGE
- flavor_ram = 1024
- flavor_creator = OpenStackFlavor(
- self.os_creds,
- FlavorConfig(name=self.flavor_name, ram=flavor_ram, disk=1,
- vcpus=1, metadata=flavor_metadata))
- flavor_creator.create()
- self.creators.append(flavor_creator)
-
- def _execute(self):
- """
- Method called by subclasses after environment has been setup
- :return: the exit code
- """
- self.logger.info('Begin test execution')
-
- test_ip = self.vm1_creator.get_port_ip(
- self.vm1_creator.instance_settings.port_settings[0].name)
-
- if self.vm1_creator.vm_active(
- block=True) and self.vm2_creator.vm_active(block=True):
- result = self._do_vping(self.vm2_creator, test_ip)
- else:
- raise Exception('VMs never became active')
-
- self.stop_time = time.time()
-
- if result != testcase.TestCase.EX_OK:
- self.result = 0
- return testcase.TestCase.EX_RUN_ERROR
-
- self.result = 100
- return testcase.TestCase.EX_OK
-
- def _cleanup(self):
- """
- Cleanup all OpenStack objects. Should be called on completion
- :return:
- """
- if getattr(config.CONF, 'vping_cleanup_objects') == 'True':
- for creator in reversed(self.creators):
- try:
- creator.clean()
- except Exception as error: # pylint: disable=broad-except
- self.logger.error('Unexpected error cleaning - %s', error)
-
- def _do_vping(self, vm_creator, test_ip):
- """
- Method to be implemented by subclasses
- Begins the real test after the OpenStack environment has been setup
- :param vm_creator: the SNAPS VM instance creator object
- :param test_ip: the IP to which the VM needs to issue the ping
- :return: T/F
- """
- raise NotImplementedError('vping execution is not implemented')
diff --git a/functest/opnfv_tests/openstack/vping/vping_ssh.py b/functest/opnfv_tests/openstack/vping/vping_ssh.py
deleted file mode 100644
index e6c6bf35..00000000
--- a/functest/opnfv_tests/openstack/vping/vping_ssh.py
+++ /dev/null
@@ -1,235 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2015 All rights reserved
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""vPingSSH testcase."""
-
-import time
-
-from scp import SCPClient
-import pkg_resources
-
-from functest.core.testcase import TestCase
-from functest.energy import energy
-from functest.opnfv_tests.openstack.vping import vping_base
-from functest.utils import config
-
-from snaps.config.keypair import KeypairConfig
-from snaps.config.network import PortConfig
-from snaps.config.security_group import (
- Direction, Protocol, SecurityGroupConfig, SecurityGroupRuleConfig)
-from snaps.config.vm_inst import FloatingIpConfig, VmInstanceConfig
-
-from snaps.openstack.utils import deploy_utils
-
-
-class VPingSSH(vping_base.VPingBase):
- """
- VPingSSH testcase implementation.
-
- Class to execute the vPing test using a Floating IP to connect to one VM
- to issue the ping command to the second
- """
-
- def __init__(self, **kwargs):
- """Initialize testcase."""
- if "case_name" not in kwargs:
- kwargs["case_name"] = "vping_ssh"
- super(VPingSSH, self).__init__(**kwargs)
-
- self.kp_name = getattr(config.CONF, 'vping_keypair_name') + self.guid
- self.kp_priv_file = getattr(config.CONF, 'vping_keypair_priv_file')
- self.kp_pub_file = getattr(config.CONF, 'vping_keypair_pub_file')
- self.sg_name = getattr(config.CONF, 'vping_sg_name') + self.guid
- self.sg_desc = getattr(config.CONF, 'vping_sg_desc')
-
- @energy.enable_recording
- def run(self, **kwargs):
- """
- Excecute VPingSSH testcase.
-
- Sets up the OpenStack keypair, router, security group, and VM instance
- objects then validates the ping.
- :return: the exit code from the super.execute() method
- """
- try:
- super(VPingSSH, self).run()
-
- log = "Creating keypair with name: '%s'" % self.kp_name
- self.logger.info(log)
- kp_creator = deploy_utils.create_keypair(
- self.os_creds,
- KeypairConfig(
- name=self.kp_name, private_filepath=self.kp_priv_file,
- public_filepath=self.kp_pub_file))
- self.creators.append(kp_creator)
-
- # Creating Instance 1
- port1_settings = PortConfig(
- name=self.vm1_name + '-vPingPort',
- network_name=self.network_creator.network_settings.name)
- instance1_settings = VmInstanceConfig(
- name=self.vm1_name, flavor=self.flavor_name,
- vm_boot_timeout=self.vm_boot_timeout,
- vm_delete_timeout=self.vm_delete_timeout,
- ssh_connect_timeout=self.vm_ssh_connect_timeout,
- port_settings=[port1_settings])
-
- log = ("Creating VM 1 instance with name: '%s'"
- % instance1_settings.name)
- self.logger.info(log)
- self.vm1_creator = deploy_utils.create_vm_instance(
- self.os_creds,
- instance1_settings,
- self.image_creator.image_settings,
- keypair_creator=kp_creator)
- self.creators.append(self.vm1_creator)
-
- # Creating Instance 2
- sg_creator = self.__create_security_group()
- self.creators.append(sg_creator)
-
- port2_settings = PortConfig(
- name=self.vm2_name + '-vPingPort',
- network_name=self.network_creator.network_settings.name)
- instance2_settings = VmInstanceConfig(
- name=self.vm2_name, flavor=self.flavor_name,
- vm_boot_timeout=self.vm_boot_timeout,
- vm_delete_timeout=self.vm_delete_timeout,
- ssh_connect_timeout=self.vm_ssh_connect_timeout,
- port_settings=[port2_settings],
- security_group_names=[sg_creator.sec_grp_settings.name],
- floating_ip_settings=[FloatingIpConfig(
- name=self.vm2_name + '-FIPName',
- port_name=port2_settings.name,
- router_name=self.router_creator.router_settings.name)])
-
- log = ("Creating VM 2 instance with name: '%s'"
- % instance2_settings.name)
- self.logger.info(log)
- self.vm2_creator = deploy_utils.create_vm_instance(
- self.os_creds,
- instance2_settings,
- self.image_creator.image_settings,
- keypair_creator=kp_creator)
- self.creators.append(self.vm2_creator)
-
- return self._execute()
- except Exception as exc: # pylint: disable=broad-except
- self.logger.error('Unexpected error running test - ' + exc.message)
- return TestCase.EX_RUN_ERROR
- finally:
- self._cleanup()
-
- def _do_vping(self, vm_creator, test_ip):
- """
- Execute ping command.
-
- Override from super
- """
- if vm_creator.vm_ssh_active(block=True):
- ssh = vm_creator.ssh_client()
- if not self._transfer_ping_script(ssh):
- return TestCase.EX_RUN_ERROR
- return self._do_vping_ssh(ssh, test_ip)
- else:
- return TestCase.EX_RUN_ERROR
-
- def _transfer_ping_script(self, ssh):
- """
- Transfert vping script to VM.
-
- Uses SCP to copy the ping script via the SSH client
- :param ssh: the SSH client
- :return:
- """
- self.logger.info("Trying to transfer ping.sh")
- scp = SCPClient(ssh.get_transport())
- ping_script = pkg_resources.resource_filename(
- 'functest.opnfv_tests.openstack.vping', 'ping.sh')
- try:
- scp.put(ping_script, "~/")
- except Exception: # pylint: disable=broad-except
- self.logger.error("Cannot SCP the file '%s'", ping_script)
- return False
-
- cmd = 'chmod 755 ~/ping.sh'
- # pylint: disable=unused-variable
- (stdin, stdout, stderr) = ssh.exec_command(cmd)
- for line in stdout.readlines():
- print line
-
- return True
-
- def _do_vping_ssh(self, ssh, test_ip):
- """
- Execute ping command via SSH.
-
- Pings the test_ip via the SSH client
- :param ssh: the SSH client used to issue the ping command
- :param test_ip: the IP for the ping command to use
- :return: exit_code (int)
- """
- exit_code = TestCase.EX_TESTCASE_FAILED
- self.logger.info("Waiting for ping...")
-
- sec = 0
- cmd = '~/ping.sh ' + test_ip
- flag = False
-
- while True:
- time.sleep(1)
- (_, stdout, _) = ssh.exec_command(cmd)
- output = stdout.readlines()
-
- for line in output:
- if "vPing OK" in line:
- self.logger.info("vPing detected!")
- exit_code = TestCase.EX_OK
- flag = True
- break
-
- elif sec == self.ping_timeout:
- self.logger.info("Timeout reached.")
- flag = True
- break
- if flag:
- break
- log = "Pinging %s. Waiting for response..." % test_ip
- self.logger.debug(log)
- sec += 1
- return exit_code
-
- def __create_security_group(self):
- """
- Configure OpenStack security groups.
-
- Configures and deploys an OpenStack security group object
- :return: the creator object
- """
- sg_rules = list()
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name=self.sg_name, direction=Direction.ingress,
- protocol=Protocol.icmp))
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name=self.sg_name, direction=Direction.ingress,
- protocol=Protocol.tcp, port_range_min=22, port_range_max=22))
- sg_rules.append(
- SecurityGroupRuleConfig(
- sec_grp_name=self.sg_name, direction=Direction.egress,
- protocol=Protocol.tcp, port_range_min=22, port_range_max=22))
-
- log = "Security group with name: '%s'" % self.sg_name
- self.logger.info(log)
- return deploy_utils.create_security_group(self.os_creds,
- SecurityGroupConfig(
- name=self.sg_name,
- description=self.sg_desc,
- rule_settings=sg_rules))
diff --git a/functest/opnfv_tests/openstack/vping/vping_userdata.py b/functest/opnfv_tests/openstack/vping/vping_userdata.py
deleted file mode 100644
index 76cdcf83..00000000
--- a/functest/opnfv_tests/openstack/vping/vping_userdata.py
+++ /dev/null
@@ -1,143 +0,0 @@
-#!/usr/bin/env python
-
-# Copyright (c) 2015 All rights reserved
-# This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-
-"""vping_userdata testcase."""
-
-import time
-
-from snaps.config.network import PortConfig
-from snaps.config.vm_inst import VmInstanceConfig
-from snaps.openstack.utils import deploy_utils
-
-from functest.core.testcase import TestCase
-from functest.opnfv_tests.openstack.vping import vping_base
-
-
-class VPingUserdata(vping_base.VPingBase):
- """
- Class to execute the vPing test using userdata and the VM's console
- """
-
- def __init__(self, **kwargs):
- if "case_name" not in kwargs:
- kwargs["case_name"] = "vping_userdata"
- super(VPingUserdata, self).__init__(**kwargs)
-
- def run(self, **kwargs):
- """
- Sets up the OpenStack VM instance objects then executes the ping and
- validates.
- :return: the exit code from the super.execute() method
- """
- try:
- super(VPingUserdata, self).run()
-
- # Creating Instance 1
- port1_settings = PortConfig(
- name=self.vm1_name + '-vPingPort',
- network_name=self.network_creator.network_settings.name)
- instance1_settings = VmInstanceConfig(
- name=self.vm1_name,
- flavor=self.flavor_name,
- vm_boot_timeout=self.vm_boot_timeout,
- port_settings=[port1_settings])
-
- self.logger.info(
- "Creating VM 1 instance with name: '%s'",
- instance1_settings.name)
- self.vm1_creator = deploy_utils.create_vm_instance(
- self.os_creds, instance1_settings,
- self.image_creator.image_settings)
- self.creators.append(self.vm1_creator)
-
- userdata = _get_userdata(
- self.vm1_creator.get_port_ip(port1_settings.name))
- if userdata:
- # Creating Instance 2
- port2_settings = PortConfig(
- name=self.vm2_name + '-vPingPort',
- network_name=self.network_creator.network_settings.name)
- instance2_settings = VmInstanceConfig(
- name=self.vm2_name,
- flavor=self.flavor_name,
- vm_boot_timeout=self.vm_boot_timeout,
- port_settings=[port2_settings],
- userdata=userdata)
-
- self.logger.info(
- "Creating VM 2 instance with name: '%s'",
- instance2_settings.name)
- self.vm2_creator = deploy_utils.create_vm_instance(
- self.os_creds, instance2_settings,
- self.image_creator.image_settings)
- self.creators.append(self.vm2_creator)
- else:
- raise Exception('Userdata is None')
-
- return self._execute()
-
- finally:
- self._cleanup()
-
- def _do_vping(self, vm_creator, test_ip):
- """
- Override from super
- """
- self.logger.info("Waiting for ping...")
- exit_code = TestCase.EX_TESTCASE_FAILED
- sec = 0
- tries = 0
-
- while True:
- time.sleep(1)
- p_console = vm_creator.get_console_output()
- if "vPing OK" in p_console:
- self.logger.info("vPing detected!")
- exit_code = TestCase.EX_OK
- break
- elif "failed to read iid from metadata" in p_console or tries > 5:
- self.logger.info("Failed to read iid from metadata")
- break
- elif sec == self.ping_timeout:
- self.logger.info("Timeout reached.")
- break
- elif sec % 10 == 0:
- if "request failed" in p_console:
- self.logger.debug(
- "It seems userdata is not supported in nova boot. " +
- "Waiting a bit...")
- tries += 1
- else:
- self.logger.debug(
- "Pinging %s. Waiting for response...", test_ip)
- sec += 1
-
- return exit_code
-
-
-def _get_userdata(test_ip):
- """
- Returns the post VM creation script to be added into the VM's userdata
- :param test_ip: the IP value to substitute into the script
- :return: the bash script contents
- """
- if test_ip:
- return ("#!/bin/sh\n\n"
- "while true; do\n"
- " ping -c 1 %s 2>&1 >/dev/null\n"
- " RES=$?\n"
- " if [ \"Z$RES\" = \"Z0\" ] ; then\n"
- " echo 'vPing OK'\n"
- " break\n"
- " else\n"
- " echo 'vPing KO'\n"
- " fi\n"
- " sleep 1\n"
- "done\n" % str(test_ip))
- return None