From fc9a8346809137810f9c85a232191d4edb7c9fb3 Mon Sep 17 00:00:00 2001 From: Moshe Date: Wed, 4 Jul 2018 09:10:44 +0300 Subject: resources are located by logical path Issue-ID: VNFSDK-275 Change-Id: I2a8a5430634d5a12a58fbd5cd85511ccce53518a Signed-off-by: Moshe fix tests Issue-ID: VNFSDK-275 Change-Id: I20f48139b2cae3b57959a33739f34e811c2ffe38 Signed-off-by: Moshe --- ez_setup.py | 367 -------------------- install.sh | 4 +- setup.py | 8 +- tests/__init__.py | 0 tests/onap/test_cases/onap_vnftest_tc001.yaml | 374 --------------------- tests/onap/test_cases/onap_vnftest_tc002.yaml | 363 -------------------- tests/onap/test_cases/onap_vnftest_tc003.yaml | 95 ------ tests/onap/test_suites/onap_basic_lifecycle.yaml | 26 -- vnftest.egg-info/SOURCES.txt | 6 +- vnftest.egg-info/top_level.txt | 1 - vnftest/__init__.py | 1 - vnftest/common/constants.py | 9 +- vnftest/common/utils.py | 8 +- vnftest/core/testcase.py | 4 +- vnftest/test_config/__init__.py | 0 vnftest/test_config/onap/__init__.py | 0 vnftest/test_config/onap/test_cases/__init__.py | 0 .../onap/test_cases/onap_vnftest_tc001.yaml | 374 +++++++++++++++++++++ .../onap/test_cases/onap_vnftest_tc002.yaml | 363 ++++++++++++++++++++ .../onap/test_cases/onap_vnftest_tc003.yaml | 95 ++++++ vnftest/test_config/onap/test_suites/__init__.py | 0 .../onap/test_suites/onap_basic_lifecycle.yaml | 26 ++ .../core/no_constraint_no_args_step_sample.yaml | 1 - .../core/no_constraint_with_args_step_sample.yaml | 4 +- .../core/with_constraint_no_args_step_sample.yaml | 5 +- .../with_constraint_with_args_step_sample.yaml | 5 +- 26 files changed, 888 insertions(+), 1251 deletions(-) delete mode 100644 ez_setup.py delete mode 100644 tests/__init__.py delete mode 100644 tests/onap/test_cases/onap_vnftest_tc001.yaml delete mode 100644 tests/onap/test_cases/onap_vnftest_tc002.yaml delete mode 100644 tests/onap/test_cases/onap_vnftest_tc003.yaml delete mode 100644 tests/onap/test_suites/onap_basic_lifecycle.yaml create mode 100644 vnftest/test_config/__init__.py create mode 100644 vnftest/test_config/onap/__init__.py create mode 100644 vnftest/test_config/onap/test_cases/__init__.py create mode 100644 vnftest/test_config/onap/test_cases/onap_vnftest_tc001.yaml create mode 100644 vnftest/test_config/onap/test_cases/onap_vnftest_tc002.yaml create mode 100644 vnftest/test_config/onap/test_cases/onap_vnftest_tc003.yaml create mode 100644 vnftest/test_config/onap/test_suites/__init__.py create mode 100644 vnftest/test_config/onap/test_suites/onap_basic_lifecycle.yaml diff --git a/ez_setup.py b/ez_setup.py deleted file mode 100644 index 60d6ffc..0000000 --- a/ez_setup.py +++ /dev/null @@ -1,367 +0,0 @@ -#!/usr/bin/env python -############################################################################## -# Copyright 2018 EuropeanSoftwareMarketingLtd. -# =================================================================== -# Licensed under the ApacheLicense, Version2.0 (the"License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# -# software distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and limitations under -# the License -############################################################################## -# vnftest comment: this is a modified copy of -# yardstick/ez_setup.py -"""Bootstrap setuptools installation - -To use setuptools in your package's setup.py, include this -file in the same directory and add this to the top of your setup.py:: - - from ez_setup import use_setuptools - use_setuptools() - -To require a specific version of setuptools, set a download -mirror, or use an alternate download directory, simply supply -the appropriate options to ``use_setuptools()``. - -This file can also be run as a script to install or upgrade setuptools. -""" -from __future__ import absolute_import -import os -import shutil -import sys -import tempfile -import zipfile -import optparse -import subprocess -import platform -import contextlib - -from distutils import log - -try: - from urllib.request import urlopen -except ImportError: - from six.moves.urllib import urlopen - -try: - from site import USER_SITE -except ImportError: - USER_SITE = None - -DEFAULT_VERSION = "6.1" -DEFAULT_URL = "https://pypi.python.org/packages/source/s/setuptools/" - - -def _python_cmd(*args): - """ - Return True if the command succeeded. - """ - args = (sys.executable,) + args - return subprocess.call(args) == 0 - - -def _install(archive_filename, install_args=()): - with archive_context(archive_filename): - # installing - log.warn('Installing Setuptools') - if not _python_cmd('setup.py', 'install', *install_args): - log.warn('Something went wrong during the installation.') - log.warn('See the error message above.') - # exitcode will be 2 - return 2 - - -def _build_egg(egg, archive_filename, to_dir): - with archive_context(archive_filename): - # building an egg - log.warn('Building a Setuptools egg in %s', to_dir) - _python_cmd('setup.py', '-q', 'bdist_egg', '--dist-dir', to_dir) - # returning the result - log.warn(egg) - if not os.path.exists(egg): - raise IOError('Could not build the egg.') - - -class ContextualZipFile(zipfile.ZipFile): - """ - Supplement ZipFile class to support context manager for Python 2.6 - """ - - def __enter__(self): - return self - - def __exit__(self, type, value, traceback): - self.close() - - def __new__(cls, *args, **kwargs): - """ - Construct a ZipFile or ContextualZipFile as appropriate - """ - if hasattr(zipfile.ZipFile, '__exit__'): - return zipfile.ZipFile(*args, **kwargs) - return super(ContextualZipFile, cls).__new__(cls) - - -@contextlib.contextmanager -def archive_context(filename): - # extracting the archive - tmpdir = tempfile.mkdtemp() - log.warn('Extracting in %s', tmpdir) - old_wd = os.getcwd() - try: - os.chdir(tmpdir) - with ContextualZipFile(filename) as archive: - archive.extractall() - - # going in the directory - subdir = os.path.join(tmpdir, os.listdir(tmpdir)[0]) - os.chdir(subdir) - log.warn('Now working in %s', subdir) - yield - - finally: - os.chdir(old_wd) - shutil.rmtree(tmpdir) - - -def _do_download(version, download_base, to_dir, download_delay): - egg = os.path.join(to_dir, 'setuptools-%s-py%d.%d.egg' - % (version, sys.version_info[0], sys.version_info[1])) - if not os.path.exists(egg): - archive = download_setuptools(version, download_base, - to_dir, download_delay) - _build_egg(egg, archive, to_dir) - sys.path.insert(0, egg) - - # Remove previously-imported pkg_resources if present (see - # https://bitbucket.org/pypa/setuptools/pull-request/7/ for details). - if 'pkg_resources' in sys.modules: - del sys.modules['pkg_resources'] - - import setuptools - setuptools.bootstrap_install_from = egg - - -def use_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL, - to_dir=os.curdir, download_delay=15): - to_dir = os.path.abspath(to_dir) - rep_modules = 'pkg_resources', 'setuptools' - imported = set(sys.modules).intersection(rep_modules) - try: - import pkg_resources - except ImportError: - return _do_download(version, download_base, to_dir, download_delay) - try: - pkg_resources.require("setuptools>=" + version) - return - except pkg_resources.DistributionNotFound: - return _do_download(version, download_base, to_dir, download_delay) - except pkg_resources.VersionConflict as VC_err: - if imported: - msg = """\ -The required version of setuptools (>={version}) is not available, -and can't be installed while this script is running. Please -install a more recent version first, using -'easy_install -U setuptools'. - -(Currently using {VC_err.args[0]!r}) -""".format(VC_err=VC_err, version=version) - sys.stderr.write(msg) - sys.exit(2) - - # otherwise, reload ok - del pkg_resources, sys.modules['pkg_resources'] - return _do_download(version, download_base, to_dir, download_delay) - - -def _clean_check(cmd, target): - """ - Run the command to download target. If the command fails, clean up before - re-raising the error. - """ - try: - subprocess.check_call(cmd) - except subprocess.CalledProcessError: - if os.access(target, os.F_OK): - os.unlink(target) - raise - - -def download_file_powershell(url, target): - """ - Download the file at url to target using Powershell (which will validate - trust). Raise an exception if the command cannot complete. - """ - target = os.path.abspath(target) - ps_cmd = ( - "[System.Net.WebRequest]::DefaultWebProxy.Credentials = " - "[System.Net.CredentialCache]::DefaultCredentials; " - "(new-object System.Net.WebClient).DownloadFile(%(url)r, %(target)r)" - % vars() - ) - cmd = [ - 'powershell', - '-Command', - ps_cmd, - ] - _clean_check(cmd, target) - - -def has_powershell(): - if platform.system() != 'Windows': - return False - cmd = ['powershell', '-Command', 'echo test'] - with open(os.path.devnull, 'wb') as devnull: - try: - subprocess.check_call(cmd, stdout=devnull, stderr=devnull) - except Exception: - return False - return True - - -download_file_powershell.viable = has_powershell - - -def download_file_curl(url, target): - cmd = ['curl', url, '--silent', '--output', target] - _clean_check(cmd, target) - - -def has_curl(): - cmd = ['curl', '--version'] - with open(os.path.devnull, 'wb') as devnull: - try: - subprocess.check_call(cmd, stdout=devnull, stderr=devnull) - except Exception: - return False - return True - - -download_file_curl.viable = has_curl - - -def download_file_wget(url, target): - cmd = ['wget', url, '--quiet', '--output-document', target] - _clean_check(cmd, target) - - -def has_wget(): - cmd = ['wget', '--version'] - with open(os.path.devnull, 'wb') as devnull: - try: - subprocess.check_call(cmd, stdout=devnull, stderr=devnull) - except Exception: - return False - return True - - -download_file_wget.viable = has_wget - - -def download_file_insecure(url, target): - """ - Use Python to download the file, even though it cannot authenticate the - connection. - """ - src = urlopen(url) - try: - # Read all the data in one block. - data = src.read() - finally: - src.close() - - # Write all the data in one block to avoid creating a partial file. - with open(target, "wb") as dst: - dst.write(data) - - -download_file_insecure.viable = lambda: True - - -def get_best_downloader(): - downloaders = ( - download_file_powershell, - download_file_curl, - download_file_wget, - download_file_insecure, - ) - viable_downloaders = (dl for dl in downloaders if dl.viable()) - return next(viable_downloaders, None) - - -def download_setuptools(version=DEFAULT_VERSION, download_base=DEFAULT_URL, - to_dir=os.curdir, delay=15, - downloader_factory=get_best_downloader): - """ - Download setuptools from a specified location and return its filename - - `version` should be a valid setuptools version number that is available - as an sdist for download under the `download_base` URL (which should end - with a '/'). `to_dir` is the directory where the egg will be downloaded. - `delay` is the number of seconds to pause before an actual download - attempt. - - ``downloader_factory`` should be a function taking no arguments and - returning a function for downloading a URL to a target. - """ - # making sure we use the absolute path - to_dir = os.path.abspath(to_dir) - zip_name = "setuptools-%s.zip" % version - url = download_base + zip_name - saveto = os.path.join(to_dir, zip_name) - if not os.path.exists(saveto): # Avoid repeated downloads - log.warn("Downloading %s", url) - downloader = downloader_factory() - downloader(url, saveto) - return os.path.realpath(saveto) - - -def _build_install_args(options): - """ - Build the arguments to 'python setup.py install' on the setuptools package - """ - return ['--user'] if options.user_install else [] - - -def _parse_args(): - """ - Parse the command line for options - """ - parser = optparse.OptionParser() - parser.add_option( - '--user', dest='user_install', action='store_true', default=False, - help='install in user site package (requires Python 2.6 or later)') - parser.add_option( - '--download-base', dest='download_base', metavar="URL", - default=DEFAULT_URL, - help='alternative URL from where to download the setuptools package') - parser.add_option( - '--insecure', dest='downloader_factory', action='store_const', - const=lambda: download_file_insecure, default=get_best_downloader, - help='Use internal, non-validating downloader' - ) - parser.add_option( - '--version', help="Specify which version to download", - default=DEFAULT_VERSION, - ) - options, args = parser.parse_args() - # positional arguments are ignored - return options - - -def main(): - """Install or upgrade setuptools and EasyInstall""" - options = _parse_args() - archive = download_setuptools( - version=options.version, - download_base=options.download_base, - downloader_factory=options.downloader_factory, - ) - return _install(archive, _build_install_args(options)) - - -if __name__ == '__main__': - sys.exit(main()) diff --git a/install.sh b/install.sh index f9a764c..d688236 100755 --- a/install.sh +++ b/install.sh @@ -97,8 +97,8 @@ apt-get -y autoremove && apt-get clean git config --global http.sslVerify false - +mkdir /etc/vnftest # install vnftest + dependencies easy_install -U pip pip install -r requirements.txt -pip install -e . +pip install . diff --git a/setup.py b/setup.py index d53ce2c..56b466e 100755 --- a/setup.py +++ b/setup.py @@ -26,17 +26,17 @@ setup( 'vnftest': [ 'onap/onboard/*.yaml', 'onap/lifecycle/*.yaml', - 'onap/steps/validation/*.yaml' + 'onap/steps/validation/*.yaml', + 'test_config/onap/test_cases/*.yaml', + 'test_config/onap/test_suites/*.yaml' ], 'etc': [ 'vnftest/*.yaml', 'vnftest/*.conf', 'vnftest/vnf_descriptors/*.yaml' - ], - 'tests': [ - 'onap/*/*.yaml' ] }, + data_files=[('/etc/vnftest/', ['etc/vnftest/vnftest.yaml'])], url="https://www.onap.org", entry_points={ 'console_scripts': [ diff --git a/tests/__init__.py b/tests/__init__.py deleted file mode 100644 index e69de29..0000000 diff --git a/tests/onap/test_cases/onap_vnftest_tc001.yaml b/tests/onap/test_cases/onap_vnftest_tc001.yaml deleted file mode 100644 index 882d172..0000000 --- a/tests/onap/test_cases/onap_vnftest_tc001.yaml +++ /dev/null @@ -1,374 +0,0 @@ -############################################################################## -# Copyright 2018 EuropeanSoftwareMarketingLtd. -# =================================================================== -# Licensed under the ApacheLicense, Version2.0 (the"License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# -# software distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and limitations under -# the License -############################################################################## - ---- -schema: "vnftest:task:0.1" -description: > - Vnftest TC001 config file; - Onboard VNF package to SDC -{% set rnd = range(10000)|random %} -{% set vsp_name = vsp_name or ['test_vsp_', rnd ]|join %} -{% set vendor_name = vendor_name or ['test_vendor_', rnd ]|join %} -{% set service_name = service_name or ['test_service_', rnd ]|join %} -{% set resource_instance_name = resource_instance_name or ["test_resource_instance_", rnd ]|join %} -{% set resource_instance_unique_id = resource_instance_unique_id or ['\"\u007Bresource_version_id\u007D_', rnd, '\"']|join %} -steps: -- - type: OnapApiCall - options: - file: "onap/onboard/create_vlm.yaml" - input: - - - parameter_name: "vendor_name" - value: {{vendor_name}} - output: - - - parameter_name: "vendor_id" - value: "[value]" - runner: - type: Iteration - run_step: "setup,run" -- - type: OnapApiCall - options: - file: "onap/onboard/checkin_vlm.yaml" - input: - - - parameter_name: "vendor_id" - value: "{vendor_id}" - runner: - type: Iteration - run_step: "setup,run" -- - type: OnapApiCall - options: - file: "onap/onboard/submit_vlm.yaml" - input: - - - parameter_name: "vendor_id" - value: "{vendor_id}" - runner: - type: Iteration - run_step: "setup,run" -- - type: OnapApiCall - options: - file: "onap/onboard/create_vsp.yaml" - input: - - - parameter_name: "vendor_id" - value: "{vendor_id}" - - - parameter_name: "vsp_name" - value: {{vsp_name}} - output: - - - parameter_name: "vsp_id" - value: "[vspId]" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/onboard/upload_package.yaml" - input: - - - parameter_name: "vsp_id" - value: "{vsp_id}" - - - parameter_name: "package_file_path" - value: "{context.vnf_descriptor.package_location}" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/onboard/process_package.yaml" - input: - - - parameter_name: "vsp_id" - value: "{vsp_id}" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/onboard/checkin_vsp.yaml" - input: - - - parameter_name: "vsp_id" - value: "{vsp_id}" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/onboard/submit_vsp.yaml" - input: - - - parameter_name: "vsp_id" - value: "{vsp_id}" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/onboard/create_package_vsp.yaml" - input: - - - parameter_name: "vsp_id" - value: "{vsp_id}" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/onboard/import_vsp.yaml" - input: - - - parameter_name: "vsp_name" - value: {{vsp_name}} - - - parameter_name: "vsp_id" - value: "{vsp_id}" - output: - - - parameter_name: "resource_id" - value: "[uniqueId]" - - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/onboard/submit_resource_for_testing.yaml" - input: - - - parameter_name: "resource_id" - value: "{resource_id}" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/onboard/start_resource_test.yaml" - input: - - - parameter_name: "resource_id" - value: "{resource_id}" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/onboard/accept_resource_test.yaml" - input: - - - parameter_name: "resource_id" - value: "{resource_id}" - output: - - - parameter_name: "resource_version_id" - value: "[allVersions][1.0]" - - - parameter_name: "resource_model_invariant_id" - value: "[invariantUUID]" - - - parameter_name: "resource_model_version_id" - value: "[uuid]" - - - parameter_name: "resource_model_name" - value: "[name]" - - - parameter_name: "resource_model_version" - value: "[version]" - - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/onboard/add_service.yaml" - input: - - - parameter_name: "service_name" - value: {{service_name}} - output: - - - parameter_name: "sdc_service_id" - value: "[uniqueId]" - - - parameter_name: "service_model_name" - value: "[name]" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/onboard/add_resource_instance.yaml" - input: - - - parameter_name: "resource_instance_unique_id" - value: {{resource_instance_unique_id}} - - - parameter_name: "resource_instance_name" - value: {{resource_instance_name}} - - - parameter_name: "sdc_service_id" - value: "{sdc_service_id}" - - - parameter_name: "resource_version_id" - value: "{resource_version_id}" - output: - - - parameter_name: "resource_model_customization_id" - value: "[customizationUUID]" - - - parameter_name: "resource_model_customization_name" - value: "[normalizedName]" - - - parameter_name: "resource_instance_model_name" - value: "[name]" - - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/onboard/submit_service_for_testing.yaml" - input: - - - parameter_name: "sdc_service_id" - value: "{sdc_service_id}" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/onboard/start_service_test.yaml" - input: - - - parameter_name: "sdc_service_id" - value: "{sdc_service_id}" - runner: - type: Iteration - run_step: "setup,run" -- - type: OnapApiCall - options: - file: "onap/onboard/accept_service_test.yaml" - input: - - - parameter_name: "sdc_service_id" - value: "{sdc_service_id}" - output: - - - parameter_name: "service_version_id" - value: "[allVersions][1.0]" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/onboard/approve_distribution.yaml" - input: - - - parameter_name: "service_version_id" - value: "{service_version_id}" - runner: - type: Iteration - run_step: "setup,run" -- - type: OnapApiCall - options: - file: "onap/onboard/distribute.yaml" - input: - - - parameter_name: "service_version_id" - value: "{service_version_id}" - output: - - - parameter_name: "distributed_service_id" - value: "[uuid]" - - - parameter_name: "service_model_invariant_id" - value: "[invariantUUID]" - - - parameter_name: "service_model_version_id" - value: "[uuid]" - - - parameter_name: "service_model_normalized_name" - value: "[normalizedName]" - - - parameter_name: "service_model_name" - value: "[name]" - - - parameter_name: "service_model_version" - value: "[version]" - - - parameter_name: "vf_modules_list" - type: VfModuleCrawler - - runner: - type: Iteration - run_step: "setup,run" -- - type: OnapApiCall - options: - file: "onap/onboard/monitor_distribution.yaml" - input: - - - parameter_name: "distributed_service_id" - value: "{distributed_service_id}" - output: - - - parameter_name: "distribution_status" - value: "[distributionStatusOfServiceList][0][deployementStatus]" - sla: - action: assert - value: "{distribution_status}" - equals: "Distributed" - retries: 5 - interval: 5 - -context: - type: CSAR \ No newline at end of file diff --git a/tests/onap/test_cases/onap_vnftest_tc002.yaml b/tests/onap/test_cases/onap_vnftest_tc002.yaml deleted file mode 100644 index 5688f30..0000000 --- a/tests/onap/test_cases/onap_vnftest_tc002.yaml +++ /dev/null @@ -1,363 +0,0 @@ -############################################################################## -# Copyright 2018 EuropeanSoftwareMarketingLtd. -# =================================================================== -# Licensed under the ApacheLicense, Version2.0 (the"License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# -# software distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and limitations under -# the License -############################################################################## - ---- -schema: "vnftest:task:0.1" -description: > - Vnftest TC002 config file; - Instantiate VNF - -{% set rnd = rnd or range(10000)|random %} -# Optional input parameters -{% set cloud_owner = cloud_owner or ['test_cloud_', rnd ]|join %} -{% set customer_name = customer_name or ['test_customer_', rnd ]|join %} -{% set service_instance_name = service_instance_name or ['test_service_instance_', rnd ]|join %} -{% set vnf_instance_name = vnf_instance_name or ['test_vnf_instance_', rnd ]|join %} - -# Mandatory input parameters -{% set service_model_version_id = service_model_version_id or '\"\u007Bservice_model_version_id\u007D\"' %} -{% set service_model_version = service_model_version or '\"\u007Bservice_model_version\u007D\"' %} -{% set service_model_normalized_name = service_model_normalized_name or '\"\u007Bservice_model_normalized_name\u007D\"' %} -{% set service_model_invariant_id = service_model_invariant_id or '\"\u007Bservice_model_invariant_id\u007D\"' %} -{% set service_model_name = service_model_name or '\"\u007Bservice_model_name\u007D\"' %} -{% set service_model_customization_id = service_model_customization_id or '\"\u007Bservice_model_customization_id\u007D\"' %} -{% set resource_model_invariant_id = resource_model_invariant_id or '\"\u007Bresource_model_invariant_id\u007D\"' %} -{% set resource_model_version_id = resource_model_version_id or '\"\u007Bresource_model_version_id\u007D\"' %} -{% set resource_model_name = resource_model_name or '\"\u007Bresource_model_name\u007D\"' %} -{% set resource_model_version = resource_model_version or '\"\u007Bresource_model_version\u007D\"' %} -{% set resource_model_customization_id = resource_model_customization_id or '\"\u007Bresource_model_customization_id\u007D\"' %} -{% set resource_model_customization_name = resource_model_customization_name or '\"\u007Bresource_model_customization_name\u007D\"' %} -{% set distributed_service_id = distributed_service_id or '\"\u007Bdistributed_service_id\u007D\"' %} -{% set resource_instance_model_name = resource_instance_model_name or '\"\u007Bresource_instance_model_name\u007D\"' %} -{% set vf_modules_list = vf_modules_list or {}%} - -steps: -- - type: OnapApiCall - options: - file: "onap/lifecycle/create_region.yaml" - input: - - - parameter_name: "cloud_owner" - value: {{cloud_owner}} - - - parameter_name: "tenant_id" - value: "{context.creds.tenant_id}" - - - parameter_name: "tenant_name" - value: "{context.creds.tenant_name}" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/lifecycle/create_service.yaml" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/lifecycle/create_customer.yaml" - input: - - - parameter_name: "customer_name" - value: {{customer_name}} - - - parameter_name: "cloud_owner" - value: {{cloud_owner}} - - - parameter_name: "tenant_id" - value: "{context.creds.tenant_id}" -- - type: OnapApiCall - options: - file: "onap/lifecycle/create_service_instance.yaml" - delay: 60 - input: - - - parameter_name: "service_instance_name" - value: {{service_instance_name}} - - - parameter_name: "service_model_version_id" - value: {{service_model_version_id}} - - - parameter_name: "service_model_version" - value: {{service_model_version}} - - - parameter_name: "service_model_normalized_name" - value: {{service_model_normalized_name}} - - - parameter_name: "service_model_invariant_id" - value: {{service_model_invariant_id}} - - - parameter_name: "customer_name" - value: {{customer_name}} - output: - - - parameter_name: "service_instance_id" - value: "[requestReferences][instanceId]" - - - parameter_name: "request_id" - value: "[requestReferences][requestId]" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/lifecycle/monitor_request.yaml" - input: - - - parameter_name: "request_id" - value: "{request_id}" - output: - - - parameter_name: "request_state" - value: "[request][requestStatus][requestState]" - sla: - action: assert - value: "{request_state}" - equals: "COMPLETE" - retries: 15 - interval: 5 - -- - type: OnapApiCall - options: - file: "onap/lifecycle/create_vnf_instance.yaml" - delay: 30 - input: - - - parameter_name: "service_instance_id" - value: "{service_instance_id}" - - - parameter_name: "vnf_instance_name" - value: {{vnf_instance_name}} - - - parameter_name: "resource_model_invariant_id" - value: {{resource_model_invariant_id}} - - - parameter_name: "resource_model_version_id" - value: {{resource_model_version_id}} - - - parameter_name: "resource_model_name" - value: {{resource_model_name}} - - - parameter_name: "resource_model_version" - value: {{resource_model_version}} - - - parameter_name: "resource_model_customization_id" - value: {{resource_model_customization_id}} - - - parameter_name: "resource_model_customization_name" - value: {{resource_model_customization_name}} - - - parameter_name: "tenant_id" - value: "{context.creds.tenant_id}" - - - parameter_name: "service_model_name" - value: {{service_model_name}} - - - parameter_name: "service_model_invariant_id" - value: {{service_model_invariant_id}} - - - parameter_name: "service_model_version" - value: {{service_model_version}} - - - parameter_name: "distributed_service_id" - value: {{distributed_service_id}} - - output: - - - parameter_name: "vnf_instance_id" - value: "[requestReferences][instanceId]" - - - parameter_name: "request_id" - value: "[requestReferences][requestId]" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/lifecycle/monitor_request.yaml" - input: - - - parameter_name: "request_id" - value: "{request_id}" - output: - - - parameter_name: "request_state" - value: "[request][requestStatus][requestState]" - sla: - action: assert - value: "{request_state}" - equals: "COMPLETE" - retries: 15 - interval: 5 - runner: - type: Iteration - run_step: "setup,run" - -{% for vf_module_definition in vnf_descriptor.vf_modules %} - {% set vf_module = vf_modules_list[vf_module_definition.module_name] %} - {% set vnf_name = ['test_vnf_', rnd, '_', vf_module_definition.module_name ]|join %} -- - type: OnapApiCall - options: - file: "onap/lifecycle/preload_sdnc.yaml" - input: - - - parameter_name: "vnf_parameters" - value: {{vf_module_definition.vnf_parameters}} - - - parameter_name: "vnf_name" - value: {{vnf_name}} - - - parameter_name: "vnf_instance_name" - value: {{vnf_instance_name}} - - - parameter_name: "service_model_name" - value: {{service_model_name}} - - - parameter_name: "resource_instance_model_name" - value: {{resource_instance_model_name}} - - - parameter_name: "service_instance_id" - value: "{service_instance_id}" - - - parameter_name: "vnf_type" - value: {{vf_module.groupName}} - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/lifecycle/create_vf_module.yaml" - delay: 30 - input: - - - parameter_name: "user_parameters" - value: {{vf_module_definition.user_parameters}} - - - parameter_name: "service_instance_id" - value: "{service_instance_id}" - - - parameter_name: "vnf_instance_id" - value: "{vnf_instance_id}" - - - parameter_name: "vnf_name" - value: {{vnf_name}} - - - parameter_name: "module_model_invariant_id" - value: {{vf_module.invariantUUID}} - - - parameter_name: "module_model_version_id" - value: {{vf_module.groupUUID}} - - - parameter_name: "vnf_type" - value: {{vf_module.groupName}} - - - parameter_name: "module_model_version" - value: {{vf_module.version}} - - - parameter_name: "module_model_customization_id" - value: {{vf_module.customizationUUID}} - - - parameter_name: "tenant_id" - value: "{context.creds.tenant_id}" - - - parameter_name: "service_model_name" - value: {{service_model_name}} - - - parameter_name: "service_model_invariant_id" - value: {{service_model_invariant_id}} - - - parameter_name: "service_model_version" - value: {{service_model_version}} - - - parameter_name: "distributed_service_id" - value: {{distributed_service_id}} - - - parameter_name: "resource_model_name" - value: {{resource_model_name}} - - - parameter_name: "resource_model_invariant_id" - value: {{resource_model_invariant_id}} - - - parameter_name: "resource_model_version" - value: {{resource_model_version}} - - - parameter_name: "resource_model_version_id" - value: {{resource_model_version_id}} - - - parameter_name: "resource_model_customization_id" - value: {{resource_model_customization_id}} - - - parameter_name: "resource_model_customization_name" - value: {{resource_model_customization_name}} - - output: - - - parameter_name: "vf_module_instance_id" - value: "[requestReferences][instanceId]" - - - parameter_name: "request_id" - value: "[requestReferences][requestId]" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/lifecycle/monitor_request.yaml" - input: - - - parameter_name: "request_id" - value: "{request_id}" - output: - - - parameter_name: "request_state" - value: "[request][requestStatus][requestState]" - sla: - action: assert - value: "{request_state}" - equals: "COMPLETE" - retries: 15 - interval: 5 - - runner: - type: Iteration - run_step: "setup,run" -- - type: VfModuleValidator - options: - vnf_instance_id: "{vnf_instance_id}" - vf_module_instance_id: "{vf_module_instance_id}" - runner: - type: Iteration - run_step: "setup,run" - -{% endfor %} -context: - type: CSAR \ No newline at end of file diff --git a/tests/onap/test_cases/onap_vnftest_tc003.yaml b/tests/onap/test_cases/onap_vnftest_tc003.yaml deleted file mode 100644 index 278f8ef..0000000 --- a/tests/onap/test_cases/onap_vnftest_tc003.yaml +++ /dev/null @@ -1,95 +0,0 @@ -############################################################################## -# Copyright 2018 EuropeanSoftwareMarketingLtd. -# =================================================================== -# Licensed under the ApacheLicense, Version2.0 (the"License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# -# software distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and limitations under -# the License -############################################################################## - ---- -schema: "vnftest:task:0.1" -description: > - Vnftest TC003 config file; - Delete VF module - -{% set service_instance_id = service_instance_id or '\"\u007Bservice_instance_id\u007D\"' %} -{% set vnf_instance_id = vnf_instance_id or '\"\u007Bvnf_instance_id\u007D\"' %} -{% set vf_module_instance_id = vf_module_instance_id or '\"\u007Bvf_module_instance_id\u007D\"' %} -{% set service_model_customization_id = service_model_customization_id or '\"\u007Bservice_model_customization_id\u007D\"' %} -{% set vf_modules_list = vf_modules_list or {}%} - -steps: -{% for vf_module_definition in vnf_descriptor.vf_modules %} - {% set vf_module = vf_modules_list[vf_module_definition.module_name] %} -- - type: OnapApiCall - options: - file: "onap/lifecycle/delete_vf_module.yaml" - input: - - - parameter_name: "service_instance_id" - value: {{service_instance_id}} - - - parameter_name: "vnf_instance_id" - value: {{vnf_instance_id}} - - - parameter_name: "vf_module_instance_id" - value: {{vf_module_instance_id}} - - - parameter_name: "module_model_invariant_id" - value: {{vf_module.invariantUUID}} - - - parameter_name: "module_model_version_id" - value: {{vf_module.groupUUID}} - - - parameter_name: "vnf_type" - value: {{vf_module.name}} - - - parameter_name: "module_model_version" - value: {{vf_module.version}} - - - parameter_name: "service_model_customization_id" - value: {{service_model_customization_id}} - - - parameter_name: "tenant_id" - value: "{context|creds|tenant_id}" - - output: - - - parameter_name: "request_id" - value: "[requestReferences][requestId]" - runner: - type: Iteration - run_step: "setup,run" - -- - type: OnapApiCall - options: - file: "onap/lifecycle/monitor_request.yaml" - input: - - - parameter_name: "request_id" - value: "{request_id}" - output: - - - parameter_name: "request_state" - value: "[request][requestStatus][requestState]" - sla: - action: assert - value: "{request_state}" - equals: "COMPLETE" - retries: 15 - interval: 5 -{% endfor %} - runner: - type: Iteration - run_step: "setup,run" - -context: - type: CSAR \ No newline at end of file diff --git a/tests/onap/test_suites/onap_basic_lifecycle.yaml b/tests/onap/test_suites/onap_basic_lifecycle.yaml deleted file mode 100644 index eab3efe..0000000 --- a/tests/onap/test_suites/onap_basic_lifecycle.yaml +++ /dev/null @@ -1,26 +0,0 @@ -############################################################################## -# Copyright 2018 EuropeanSoftwareMarketingLtd. -# =================================================================== -# Licensed under the ApacheLicense, Version2.0 (the"License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# http://www.apache.org/licenses/LICENSE-2.0 -# -# software distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and limitations under -# the License -############################################################################## - ---- - -schema: "vnftest:suite:0.1" - -name: "onap-basic-lifecycle" -test_cases: -- - file_name: tests/onap/test_cases/onap_vnftest_tc001.yaml -- - file_name: tests/onap/test_cases/onap_vnftest_tc002.yaml -#- -# file_name: tests/onap/test_cases/onap_vnftest_tc003.yaml diff --git a/vnftest.egg-info/SOURCES.txt b/vnftest.egg-info/SOURCES.txt index 2807b33..bc588a3 100644 --- a/vnftest.egg-info/SOURCES.txt +++ b/vnftest.egg-info/SOURCES.txt @@ -1,6 +1,6 @@ setup.py etc/__init__.py -tests/__init__.py +etc/vnftest/vnftest.yaml tools/vnftest-img-dpdk-modify tools/vnftest-img-lxd-modify tools/vnftest-img-modify @@ -78,6 +78,10 @@ vnftest/steps/__init__.py vnftest/steps/base.py vnftest/steps/dummy/__init__.py vnftest/steps/dummy/dummy.py +vnftest/test_config/__init__.py +vnftest/test_config/onap/__init__.py +vnftest/test_config/onap/test_cases/__init__.py +vnftest/test_config/onap/test_suites/__init__.py vnftest/tests/__init__.py vnftest/tests/fixture.py vnftest/tests/unit/__init__.py diff --git a/vnftest.egg-info/top_level.txt b/vnftest.egg-info/top_level.txt index f2b8f14..32a8641 100644 --- a/vnftest.egg-info/top_level.txt +++ b/vnftest.egg-info/top_level.txt @@ -1,3 +1,2 @@ etc -tests vnftest diff --git a/vnftest/__init__.py b/vnftest/__init__.py index 9ce7a86..6456fc1 100644 --- a/vnftest/__init__.py +++ b/vnftest/__init__.py @@ -61,7 +61,6 @@ def _init_logging(): logging.root.addHandler(_LOG_FILE_HDLR) logging.debug("logging.root.handlers = %s", logging.root.handlers) - utils.import_modules_from_package("vnftest.contexts") utils.import_modules_from_package("vnftest.runners") utils.import_modules_from_package("vnftest.steps") diff --git a/vnftest/common/constants.py b/vnftest/common/constants.py index 8bbe070..46db92c 100644 --- a/vnftest/common/constants.py +++ b/vnftest/common/constants.py @@ -29,13 +29,10 @@ from vnftest.common.yaml_loader import yaml_load dirname = os.path.dirname abspath = os.path.abspath join = os.path.join -sep = os.path.sep CONF = {} CONF_FILE = None -VNFTEST_ROOT_PATH = dirname( - dirname(abspath(pkg_resources.resource_filename(__name__, "")))) + sep - +VNFTEST_ROOT_PATH = os.environ.get('VNFTEST_ROOT_PATH', dirname(dirname(abspath(pkg_resources.resource_filename(__name__, "")))) + os.path.sep) def get_param(key, default=''): # don't re-parse yaml for each lookup @@ -93,8 +90,8 @@ LOG_DIR = get_param('dir.log', join(VNFTEST_ROOT_PATH, 'tmp/vnftest/')) TASK_LOG_DIR = get_param('dir.tasklog', join(VNFTEST_ROOT_PATH, 'var/log/vnftest/')) CONF_SAMPLE_DIR = join(REPOS_DIR, 'etc/vnftest/') SAMPLE_CASE_DIR = join(REPOS_DIR, 'samples') -TESTCASE_DIR = join(VNFTEST_ROOT_PATH, 'tests/onap/test_cases/') -TESTSUITE_DIR = join(VNFTEST_ROOT_PATH, 'tests/onap/test_suites/') +TESTCASE_DIR = join(VNFTEST_ROOT_PATH, 'vnftest/test_config/onap/test_cases/') +TESTSUITE_DIR = join(VNFTEST_ROOT_PATH, 'vnftest/test_config/onap/test_suites/') # file DEFAULT_OUTPUT_FILE = get_param('file.output_file', join(VNFTEST_ROOT_PATH, 'tmp/vnftest.out')) diff --git a/vnftest/common/utils.py b/vnftest/common/utils.py index 406796d..10edc05 100644 --- a/vnftest/common/utils.py +++ b/vnftest/common/utils.py @@ -514,6 +514,7 @@ def load_resource(path): def format(st, params): if not isinstance(st, basestring): return st + dotdict(params) ret_str = "" ret_obj = None for literal_text, field_name, format_spec, conversion in \ @@ -522,7 +523,12 @@ def format(st, params): ret_str = ret_str + literal_text else: dict = ret_obj or params - value = dict[field_name] + try: + value = dict[field_name] + except KeyError: + dict = dotdict(dict) + field_name = '{' + field_name + '}' + value = field_name.format(**dict) if isinstance(value, basestring): ret_str = ret_str + value else: diff --git a/vnftest/core/testcase.py b/vnftest/core/testcase.py index ea07243..2cb22ec 100644 --- a/vnftest/core/testcase.py +++ b/vnftest/core/testcase.py @@ -18,6 +18,8 @@ from __future__ import absolute_import from __future__ import print_function +import fnmatch + import os import logging @@ -44,7 +46,7 @@ class Testcase(object): def _get_testcase_file_list(self): try: - testcase_files = sorted(os.listdir(consts.TESTCASE_DIR)) + testcase_files = sorted(fnmatch.filter(os.listdir(consts.TESTCASE_DIR), '*.yaml')) except OSError: LOG.exception('Failed to list dir:\n%s\n', consts.TESTCASE_DIR) raise diff --git a/vnftest/test_config/__init__.py b/vnftest/test_config/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vnftest/test_config/onap/__init__.py b/vnftest/test_config/onap/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vnftest/test_config/onap/test_cases/__init__.py b/vnftest/test_config/onap/test_cases/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vnftest/test_config/onap/test_cases/onap_vnftest_tc001.yaml b/vnftest/test_config/onap/test_cases/onap_vnftest_tc001.yaml new file mode 100644 index 0000000..882d172 --- /dev/null +++ b/vnftest/test_config/onap/test_cases/onap_vnftest_tc001.yaml @@ -0,0 +1,374 @@ +############################################################################## +# Copyright 2018 EuropeanSoftwareMarketingLtd. +# =================================================================== +# Licensed under the ApacheLicense, Version2.0 (the"License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# +# software distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and limitations under +# the License +############################################################################## + +--- +schema: "vnftest:task:0.1" +description: > + Vnftest TC001 config file; + Onboard VNF package to SDC +{% set rnd = range(10000)|random %} +{% set vsp_name = vsp_name or ['test_vsp_', rnd ]|join %} +{% set vendor_name = vendor_name or ['test_vendor_', rnd ]|join %} +{% set service_name = service_name or ['test_service_', rnd ]|join %} +{% set resource_instance_name = resource_instance_name or ["test_resource_instance_", rnd ]|join %} +{% set resource_instance_unique_id = resource_instance_unique_id or ['\"\u007Bresource_version_id\u007D_', rnd, '\"']|join %} +steps: +- + type: OnapApiCall + options: + file: "onap/onboard/create_vlm.yaml" + input: + - + parameter_name: "vendor_name" + value: {{vendor_name}} + output: + - + parameter_name: "vendor_id" + value: "[value]" + runner: + type: Iteration + run_step: "setup,run" +- + type: OnapApiCall + options: + file: "onap/onboard/checkin_vlm.yaml" + input: + - + parameter_name: "vendor_id" + value: "{vendor_id}" + runner: + type: Iteration + run_step: "setup,run" +- + type: OnapApiCall + options: + file: "onap/onboard/submit_vlm.yaml" + input: + - + parameter_name: "vendor_id" + value: "{vendor_id}" + runner: + type: Iteration + run_step: "setup,run" +- + type: OnapApiCall + options: + file: "onap/onboard/create_vsp.yaml" + input: + - + parameter_name: "vendor_id" + value: "{vendor_id}" + - + parameter_name: "vsp_name" + value: {{vsp_name}} + output: + - + parameter_name: "vsp_id" + value: "[vspId]" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/onboard/upload_package.yaml" + input: + - + parameter_name: "vsp_id" + value: "{vsp_id}" + - + parameter_name: "package_file_path" + value: "{context.vnf_descriptor.package_location}" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/onboard/process_package.yaml" + input: + - + parameter_name: "vsp_id" + value: "{vsp_id}" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/onboard/checkin_vsp.yaml" + input: + - + parameter_name: "vsp_id" + value: "{vsp_id}" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/onboard/submit_vsp.yaml" + input: + - + parameter_name: "vsp_id" + value: "{vsp_id}" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/onboard/create_package_vsp.yaml" + input: + - + parameter_name: "vsp_id" + value: "{vsp_id}" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/onboard/import_vsp.yaml" + input: + - + parameter_name: "vsp_name" + value: {{vsp_name}} + - + parameter_name: "vsp_id" + value: "{vsp_id}" + output: + - + parameter_name: "resource_id" + value: "[uniqueId]" + + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/onboard/submit_resource_for_testing.yaml" + input: + - + parameter_name: "resource_id" + value: "{resource_id}" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/onboard/start_resource_test.yaml" + input: + - + parameter_name: "resource_id" + value: "{resource_id}" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/onboard/accept_resource_test.yaml" + input: + - + parameter_name: "resource_id" + value: "{resource_id}" + output: + - + parameter_name: "resource_version_id" + value: "[allVersions][1.0]" + - + parameter_name: "resource_model_invariant_id" + value: "[invariantUUID]" + - + parameter_name: "resource_model_version_id" + value: "[uuid]" + - + parameter_name: "resource_model_name" + value: "[name]" + - + parameter_name: "resource_model_version" + value: "[version]" + + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/onboard/add_service.yaml" + input: + - + parameter_name: "service_name" + value: {{service_name}} + output: + - + parameter_name: "sdc_service_id" + value: "[uniqueId]" + - + parameter_name: "service_model_name" + value: "[name]" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/onboard/add_resource_instance.yaml" + input: + - + parameter_name: "resource_instance_unique_id" + value: {{resource_instance_unique_id}} + - + parameter_name: "resource_instance_name" + value: {{resource_instance_name}} + - + parameter_name: "sdc_service_id" + value: "{sdc_service_id}" + - + parameter_name: "resource_version_id" + value: "{resource_version_id}" + output: + - + parameter_name: "resource_model_customization_id" + value: "[customizationUUID]" + - + parameter_name: "resource_model_customization_name" + value: "[normalizedName]" + - + parameter_name: "resource_instance_model_name" + value: "[name]" + + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/onboard/submit_service_for_testing.yaml" + input: + - + parameter_name: "sdc_service_id" + value: "{sdc_service_id}" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/onboard/start_service_test.yaml" + input: + - + parameter_name: "sdc_service_id" + value: "{sdc_service_id}" + runner: + type: Iteration + run_step: "setup,run" +- + type: OnapApiCall + options: + file: "onap/onboard/accept_service_test.yaml" + input: + - + parameter_name: "sdc_service_id" + value: "{sdc_service_id}" + output: + - + parameter_name: "service_version_id" + value: "[allVersions][1.0]" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/onboard/approve_distribution.yaml" + input: + - + parameter_name: "service_version_id" + value: "{service_version_id}" + runner: + type: Iteration + run_step: "setup,run" +- + type: OnapApiCall + options: + file: "onap/onboard/distribute.yaml" + input: + - + parameter_name: "service_version_id" + value: "{service_version_id}" + output: + - + parameter_name: "distributed_service_id" + value: "[uuid]" + - + parameter_name: "service_model_invariant_id" + value: "[invariantUUID]" + - + parameter_name: "service_model_version_id" + value: "[uuid]" + - + parameter_name: "service_model_normalized_name" + value: "[normalizedName]" + - + parameter_name: "service_model_name" + value: "[name]" + - + parameter_name: "service_model_version" + value: "[version]" + - + parameter_name: "vf_modules_list" + type: VfModuleCrawler + + runner: + type: Iteration + run_step: "setup,run" +- + type: OnapApiCall + options: + file: "onap/onboard/monitor_distribution.yaml" + input: + - + parameter_name: "distributed_service_id" + value: "{distributed_service_id}" + output: + - + parameter_name: "distribution_status" + value: "[distributionStatusOfServiceList][0][deployementStatus]" + sla: + action: assert + value: "{distribution_status}" + equals: "Distributed" + retries: 5 + interval: 5 + +context: + type: CSAR \ No newline at end of file diff --git a/vnftest/test_config/onap/test_cases/onap_vnftest_tc002.yaml b/vnftest/test_config/onap/test_cases/onap_vnftest_tc002.yaml new file mode 100644 index 0000000..5688f30 --- /dev/null +++ b/vnftest/test_config/onap/test_cases/onap_vnftest_tc002.yaml @@ -0,0 +1,363 @@ +############################################################################## +# Copyright 2018 EuropeanSoftwareMarketingLtd. +# =================================================================== +# Licensed under the ApacheLicense, Version2.0 (the"License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# +# software distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and limitations under +# the License +############################################################################## + +--- +schema: "vnftest:task:0.1" +description: > + Vnftest TC002 config file; + Instantiate VNF + +{% set rnd = rnd or range(10000)|random %} +# Optional input parameters +{% set cloud_owner = cloud_owner or ['test_cloud_', rnd ]|join %} +{% set customer_name = customer_name or ['test_customer_', rnd ]|join %} +{% set service_instance_name = service_instance_name or ['test_service_instance_', rnd ]|join %} +{% set vnf_instance_name = vnf_instance_name or ['test_vnf_instance_', rnd ]|join %} + +# Mandatory input parameters +{% set service_model_version_id = service_model_version_id or '\"\u007Bservice_model_version_id\u007D\"' %} +{% set service_model_version = service_model_version or '\"\u007Bservice_model_version\u007D\"' %} +{% set service_model_normalized_name = service_model_normalized_name or '\"\u007Bservice_model_normalized_name\u007D\"' %} +{% set service_model_invariant_id = service_model_invariant_id or '\"\u007Bservice_model_invariant_id\u007D\"' %} +{% set service_model_name = service_model_name or '\"\u007Bservice_model_name\u007D\"' %} +{% set service_model_customization_id = service_model_customization_id or '\"\u007Bservice_model_customization_id\u007D\"' %} +{% set resource_model_invariant_id = resource_model_invariant_id or '\"\u007Bresource_model_invariant_id\u007D\"' %} +{% set resource_model_version_id = resource_model_version_id or '\"\u007Bresource_model_version_id\u007D\"' %} +{% set resource_model_name = resource_model_name or '\"\u007Bresource_model_name\u007D\"' %} +{% set resource_model_version = resource_model_version or '\"\u007Bresource_model_version\u007D\"' %} +{% set resource_model_customization_id = resource_model_customization_id or '\"\u007Bresource_model_customization_id\u007D\"' %} +{% set resource_model_customization_name = resource_model_customization_name or '\"\u007Bresource_model_customization_name\u007D\"' %} +{% set distributed_service_id = distributed_service_id or '\"\u007Bdistributed_service_id\u007D\"' %} +{% set resource_instance_model_name = resource_instance_model_name or '\"\u007Bresource_instance_model_name\u007D\"' %} +{% set vf_modules_list = vf_modules_list or {}%} + +steps: +- + type: OnapApiCall + options: + file: "onap/lifecycle/create_region.yaml" + input: + - + parameter_name: "cloud_owner" + value: {{cloud_owner}} + - + parameter_name: "tenant_id" + value: "{context.creds.tenant_id}" + - + parameter_name: "tenant_name" + value: "{context.creds.tenant_name}" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/lifecycle/create_service.yaml" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/lifecycle/create_customer.yaml" + input: + - + parameter_name: "customer_name" + value: {{customer_name}} + - + parameter_name: "cloud_owner" + value: {{cloud_owner}} + - + parameter_name: "tenant_id" + value: "{context.creds.tenant_id}" +- + type: OnapApiCall + options: + file: "onap/lifecycle/create_service_instance.yaml" + delay: 60 + input: + - + parameter_name: "service_instance_name" + value: {{service_instance_name}} + - + parameter_name: "service_model_version_id" + value: {{service_model_version_id}} + - + parameter_name: "service_model_version" + value: {{service_model_version}} + - + parameter_name: "service_model_normalized_name" + value: {{service_model_normalized_name}} + - + parameter_name: "service_model_invariant_id" + value: {{service_model_invariant_id}} + - + parameter_name: "customer_name" + value: {{customer_name}} + output: + - + parameter_name: "service_instance_id" + value: "[requestReferences][instanceId]" + - + parameter_name: "request_id" + value: "[requestReferences][requestId]" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/lifecycle/monitor_request.yaml" + input: + - + parameter_name: "request_id" + value: "{request_id}" + output: + - + parameter_name: "request_state" + value: "[request][requestStatus][requestState]" + sla: + action: assert + value: "{request_state}" + equals: "COMPLETE" + retries: 15 + interval: 5 + +- + type: OnapApiCall + options: + file: "onap/lifecycle/create_vnf_instance.yaml" + delay: 30 + input: + - + parameter_name: "service_instance_id" + value: "{service_instance_id}" + - + parameter_name: "vnf_instance_name" + value: {{vnf_instance_name}} + - + parameter_name: "resource_model_invariant_id" + value: {{resource_model_invariant_id}} + - + parameter_name: "resource_model_version_id" + value: {{resource_model_version_id}} + - + parameter_name: "resource_model_name" + value: {{resource_model_name}} + - + parameter_name: "resource_model_version" + value: {{resource_model_version}} + - + parameter_name: "resource_model_customization_id" + value: {{resource_model_customization_id}} + - + parameter_name: "resource_model_customization_name" + value: {{resource_model_customization_name}} + - + parameter_name: "tenant_id" + value: "{context.creds.tenant_id}" + - + parameter_name: "service_model_name" + value: {{service_model_name}} + - + parameter_name: "service_model_invariant_id" + value: {{service_model_invariant_id}} + - + parameter_name: "service_model_version" + value: {{service_model_version}} + - + parameter_name: "distributed_service_id" + value: {{distributed_service_id}} + + output: + - + parameter_name: "vnf_instance_id" + value: "[requestReferences][instanceId]" + - + parameter_name: "request_id" + value: "[requestReferences][requestId]" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/lifecycle/monitor_request.yaml" + input: + - + parameter_name: "request_id" + value: "{request_id}" + output: + - + parameter_name: "request_state" + value: "[request][requestStatus][requestState]" + sla: + action: assert + value: "{request_state}" + equals: "COMPLETE" + retries: 15 + interval: 5 + runner: + type: Iteration + run_step: "setup,run" + +{% for vf_module_definition in vnf_descriptor.vf_modules %} + {% set vf_module = vf_modules_list[vf_module_definition.module_name] %} + {% set vnf_name = ['test_vnf_', rnd, '_', vf_module_definition.module_name ]|join %} +- + type: OnapApiCall + options: + file: "onap/lifecycle/preload_sdnc.yaml" + input: + - + parameter_name: "vnf_parameters" + value: {{vf_module_definition.vnf_parameters}} + - + parameter_name: "vnf_name" + value: {{vnf_name}} + - + parameter_name: "vnf_instance_name" + value: {{vnf_instance_name}} + - + parameter_name: "service_model_name" + value: {{service_model_name}} + - + parameter_name: "resource_instance_model_name" + value: {{resource_instance_model_name}} + - + parameter_name: "service_instance_id" + value: "{service_instance_id}" + - + parameter_name: "vnf_type" + value: {{vf_module.groupName}} + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/lifecycle/create_vf_module.yaml" + delay: 30 + input: + - + parameter_name: "user_parameters" + value: {{vf_module_definition.user_parameters}} + - + parameter_name: "service_instance_id" + value: "{service_instance_id}" + - + parameter_name: "vnf_instance_id" + value: "{vnf_instance_id}" + - + parameter_name: "vnf_name" + value: {{vnf_name}} + - + parameter_name: "module_model_invariant_id" + value: {{vf_module.invariantUUID}} + - + parameter_name: "module_model_version_id" + value: {{vf_module.groupUUID}} + - + parameter_name: "vnf_type" + value: {{vf_module.groupName}} + - + parameter_name: "module_model_version" + value: {{vf_module.version}} + - + parameter_name: "module_model_customization_id" + value: {{vf_module.customizationUUID}} + - + parameter_name: "tenant_id" + value: "{context.creds.tenant_id}" + - + parameter_name: "service_model_name" + value: {{service_model_name}} + - + parameter_name: "service_model_invariant_id" + value: {{service_model_invariant_id}} + - + parameter_name: "service_model_version" + value: {{service_model_version}} + - + parameter_name: "distributed_service_id" + value: {{distributed_service_id}} + - + parameter_name: "resource_model_name" + value: {{resource_model_name}} + - + parameter_name: "resource_model_invariant_id" + value: {{resource_model_invariant_id}} + - + parameter_name: "resource_model_version" + value: {{resource_model_version}} + - + parameter_name: "resource_model_version_id" + value: {{resource_model_version_id}} + - + parameter_name: "resource_model_customization_id" + value: {{resource_model_customization_id}} + - + parameter_name: "resource_model_customization_name" + value: {{resource_model_customization_name}} + + output: + - + parameter_name: "vf_module_instance_id" + value: "[requestReferences][instanceId]" + - + parameter_name: "request_id" + value: "[requestReferences][requestId]" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/lifecycle/monitor_request.yaml" + input: + - + parameter_name: "request_id" + value: "{request_id}" + output: + - + parameter_name: "request_state" + value: "[request][requestStatus][requestState]" + sla: + action: assert + value: "{request_state}" + equals: "COMPLETE" + retries: 15 + interval: 5 + + runner: + type: Iteration + run_step: "setup,run" +- + type: VfModuleValidator + options: + vnf_instance_id: "{vnf_instance_id}" + vf_module_instance_id: "{vf_module_instance_id}" + runner: + type: Iteration + run_step: "setup,run" + +{% endfor %} +context: + type: CSAR \ No newline at end of file diff --git a/vnftest/test_config/onap/test_cases/onap_vnftest_tc003.yaml b/vnftest/test_config/onap/test_cases/onap_vnftest_tc003.yaml new file mode 100644 index 0000000..278f8ef --- /dev/null +++ b/vnftest/test_config/onap/test_cases/onap_vnftest_tc003.yaml @@ -0,0 +1,95 @@ +############################################################################## +# Copyright 2018 EuropeanSoftwareMarketingLtd. +# =================================================================== +# Licensed under the ApacheLicense, Version2.0 (the"License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# +# software distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and limitations under +# the License +############################################################################## + +--- +schema: "vnftest:task:0.1" +description: > + Vnftest TC003 config file; + Delete VF module + +{% set service_instance_id = service_instance_id or '\"\u007Bservice_instance_id\u007D\"' %} +{% set vnf_instance_id = vnf_instance_id or '\"\u007Bvnf_instance_id\u007D\"' %} +{% set vf_module_instance_id = vf_module_instance_id or '\"\u007Bvf_module_instance_id\u007D\"' %} +{% set service_model_customization_id = service_model_customization_id or '\"\u007Bservice_model_customization_id\u007D\"' %} +{% set vf_modules_list = vf_modules_list or {}%} + +steps: +{% for vf_module_definition in vnf_descriptor.vf_modules %} + {% set vf_module = vf_modules_list[vf_module_definition.module_name] %} +- + type: OnapApiCall + options: + file: "onap/lifecycle/delete_vf_module.yaml" + input: + - + parameter_name: "service_instance_id" + value: {{service_instance_id}} + - + parameter_name: "vnf_instance_id" + value: {{vnf_instance_id}} + - + parameter_name: "vf_module_instance_id" + value: {{vf_module_instance_id}} + - + parameter_name: "module_model_invariant_id" + value: {{vf_module.invariantUUID}} + - + parameter_name: "module_model_version_id" + value: {{vf_module.groupUUID}} + - + parameter_name: "vnf_type" + value: {{vf_module.name}} + - + parameter_name: "module_model_version" + value: {{vf_module.version}} + - + parameter_name: "service_model_customization_id" + value: {{service_model_customization_id}} + - + parameter_name: "tenant_id" + value: "{context|creds|tenant_id}" + + output: + - + parameter_name: "request_id" + value: "[requestReferences][requestId]" + runner: + type: Iteration + run_step: "setup,run" + +- + type: OnapApiCall + options: + file: "onap/lifecycle/monitor_request.yaml" + input: + - + parameter_name: "request_id" + value: "{request_id}" + output: + - + parameter_name: "request_state" + value: "[request][requestStatus][requestState]" + sla: + action: assert + value: "{request_state}" + equals: "COMPLETE" + retries: 15 + interval: 5 +{% endfor %} + runner: + type: Iteration + run_step: "setup,run" + +context: + type: CSAR \ No newline at end of file diff --git a/vnftest/test_config/onap/test_suites/__init__.py b/vnftest/test_config/onap/test_suites/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/vnftest/test_config/onap/test_suites/onap_basic_lifecycle.yaml b/vnftest/test_config/onap/test_suites/onap_basic_lifecycle.yaml new file mode 100644 index 0000000..773a8e0 --- /dev/null +++ b/vnftest/test_config/onap/test_suites/onap_basic_lifecycle.yaml @@ -0,0 +1,26 @@ +############################################################################## +# Copyright 2018 EuropeanSoftwareMarketingLtd. +# =================================================================== +# Licensed under the ApacheLicense, Version2.0 (the"License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# http://www.apache.org/licenses/LICENSE-2.0 +# +# software distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and limitations under +# the License +############################################################################## + +--- + +schema: "vnftest:suite:0.1" + +name: "onap-basic-lifecycle" +test_cases: +- + file_name: test_config/onap/test_cases/onap_vnftest_tc001.yaml +- + file_name: test_config/onap/test_cases/onap_vnftest_tc002.yaml +#- +# file_name: test_config/onap/test_cases/onap_vnftest_tc003.yaml diff --git a/vnftest/tests/unit/core/no_constraint_no_args_step_sample.yaml b/vnftest/tests/unit/core/no_constraint_no_args_step_sample.yaml index 4272d70..792c8db 100644 --- a/vnftest/tests/unit/core/no_constraint_no_args_step_sample.yaml +++ b/vnftest/tests/unit/core/no_constraint_no_args_step_sample.yaml @@ -19,7 +19,6 @@ schema: "vnftest:suite:0.1" name: "suite_1" -test_cases_dir: "tests/onap/test_cases/" test_cases: - file_name: onap_vnftest_tc001.yaml diff --git a/vnftest/tests/unit/core/no_constraint_with_args_step_sample.yaml b/vnftest/tests/unit/core/no_constraint_with_args_step_sample.yaml index 9b8b09a..73372dc 100644 --- a/vnftest/tests/unit/core/no_constraint_with_args_step_sample.yaml +++ b/vnftest/tests/unit/core/no_constraint_with_args_step_sample.yaml @@ -21,9 +21,9 @@ schema: "vnftest:suite:0.1" name: "suite_1" test_cases: - - file_name: tests/onap/test_cases/onap_vnftest_tc001.yaml + file_name: test_config/onap/test_cases/onap_vnftest_tc001.yaml - - file_name: tests/onap/test_cases/onap_vnftest_tc002.yaml + file_name: test_config/onap/test_cases/onap_vnftest_tc002.yaml task_args: huawei-pod1: '{"host": "node1.LF","target": "node2.LF"}' diff --git a/vnftest/tests/unit/core/with_constraint_no_args_step_sample.yaml b/vnftest/tests/unit/core/with_constraint_no_args_step_sample.yaml index f9524fb..c3a6bb1 100644 --- a/vnftest/tests/unit/core/with_constraint_no_args_step_sample.yaml +++ b/vnftest/tests/unit/core/with_constraint_no_args_step_sample.yaml @@ -19,12 +19,11 @@ schema: "vnftest:suite:0.1" name: "suite_1" -test_cases_dir: "tests/onap/test_cases/" test_cases: - - file_name: onap_vnftest_tc001.yaml + file_name: test_config/onap/test_cases/onap_vnftest_tc001.yaml - - file_name: onap_vnftest_tc002.yaml + file_name: test_config/onap/test_cases/onap_vnftest_tc002.yaml constraint: installer: compass pod: huawei-pod1 diff --git a/vnftest/tests/unit/core/with_constraint_with_args_step_sample.yaml b/vnftest/tests/unit/core/with_constraint_with_args_step_sample.yaml index 53c8390..684b077 100644 --- a/vnftest/tests/unit/core/with_constraint_with_args_step_sample.yaml +++ b/vnftest/tests/unit/core/with_constraint_with_args_step_sample.yaml @@ -19,12 +19,11 @@ schema: "vnftest:suite:0.1" name: "suite_1" -test_cases_dir: "tests/onap/test_cases/" test_cases: - - file_name: onap_vnftest_tc001.yaml + file_name: test_config/onap/test_cases/onap_vnftest_tc001.yaml - - file_name: onap_vnftest_tc002.yaml + file_name: test_config/onap/test_cases/onap_vnftest_tc002.yaml constraint: installer: compass pod: huawei-pod1 -- cgit 1.2.3-korg