| |
| # |
| # Copyright 2016 RIFT.IO Inc |
| # |
| # Licensed under the Apache License, Version 2.0 (the "License"); |
| # you may not use this file except in compliance with the License. |
| # You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, software |
| # distributed under the License is distributed on an "AS IS" BASIS, |
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| # See the License for the specific language governing permissions and |
| # limitations under the License. |
| # |
| |
| import gi |
| import shlex |
| import pytest |
| import os |
| import subprocess |
| import tempfile |
| |
| from gi.repository import ( |
| NsdYang, |
| NsrYang, |
| RwNsrYang, |
| RwVnfrYang, |
| VnfrYang, |
| VldYang, |
| RwVnfdYang, |
| RwLaunchpadYang, |
| RwBaseYang |
| ) |
| |
| @pytest.fixture(scope='session', autouse=True) |
| def cloud_account_name(request): |
| '''fixture which returns the name used to identify the cloud account''' |
| return 'cloud-0' |
| |
| @pytest.fixture(scope='session') |
| def launchpad_host(request, confd_host): |
| return confd_host |
| |
| @pytest.fixture(scope='session') |
| def vnfd_proxy(request, mgmt_session): |
| return mgmt_session.proxy(RwVnfdYang) |
| |
| @pytest.fixture(scope='session') |
| def vnfr_proxy(request, mgmt_session): |
| return mgmt_session.proxy(VnfrYang) |
| |
| @pytest.fixture(scope='session') |
| def rwvnfr_proxy(request, mgmt_session): |
| return mgmt_session.proxy(RwVnfrYang) |
| |
| @pytest.fixture(scope='session') |
| def vld_proxy(request, mgmt_session): |
| return mgmt_session.proxy(VldYang) |
| |
| @pytest.fixture(scope='session') |
| def nsd_proxy(request, mgmt_session): |
| return mgmt_session.proxy(NsdYang) |
| |
| @pytest.fixture(scope='session') |
| def nsr_proxy(request, mgmt_session): |
| return mgmt_session.proxy(NsrYang) |
| |
| @pytest.fixture(scope='session') |
| def rwnsr_proxy(request, mgmt_session): |
| return mgmt_session.proxy(RwNsrYang) |
| |
| @pytest.fixture(scope='session') |
| def base_proxy(request, mgmt_session): |
| return mgmt_session.proxy(RwBaseYang) |
| |
| @pytest.fixture(scope='session') |
| def base_proxy(request, mgmt_session): |
| return mgmt_session.proxy(RwBaseYang) |
| |
| @pytest.fixture(scope='session') |
| def mvv_descr_dir(request): |
| """root-directory of descriptors files used for Multi-VM VNF""" |
| return os.path.join( |
| os.environ["RIFT_INSTALL"], |
| "demos/tests/multivm_vnf" |
| ) |
| |
| @pytest.fixture(scope='session') |
| def package_dir(request): |
| return tempfile.mkdtemp(prefix="mvv_") |
| |
| @pytest.fixture(scope='session') |
| def trafgen_vnfd_package_file(request, package_gen_script, mvv_descr_dir, package_dir): |
| pkg_cmd = "{pkg_scr} --descriptor-type='vnfd' --format='xml' --infile='{infile}' --outdir='{outdir}'".format( |
| pkg_scr=package_gen_script, |
| outdir=package_dir, |
| infile=os.path.join(mvv_descr_dir, 'vnfd/xml/multivm_trafgen_vnfd.xml')) |
| pkg_file = os.path.join(package_dir, 'multivm_trafgen_vnfd.tar.gz') |
| command = shlex.split(pkg_cmd) |
| print("Running the command arguments: %s" % command) |
| command = [package_gen_script, |
| "--descriptor-type", "vnfd", |
| "--format", "xml", |
| "--infile", "%s" % os.path.join(mvv_descr_dir, 'vnfd/xml/multivm_trafgen_vnfd.xml'), |
| "--outdir", "%s" % package_dir] |
| print("Running new command arguments: %s" % command) |
| subprocess.check_call(command) |
| return pkg_file |
| |
| @pytest.fixture(scope='session') |
| def trafsink_vnfd_package_file(request, package_gen_script, mvv_descr_dir, package_dir): |
| pkg_cmd = "{pkg_scr} --descriptor-type='vnfd' --format='xml' --infile='{infile}' --outdir='{outdir}'".format( |
| pkg_scr=package_gen_script, |
| outdir=package_dir, |
| infile=os.path.join(mvv_descr_dir, 'vnfd/xml/multivm_trafsink_vnfd.xml')) |
| pkg_file = os.path.join(package_dir, 'multivm_trafsink_vnfd.tar.gz') |
| command = shlex.split(pkg_cmd) |
| print("Running the command arguments: %s" % command) |
| command = [package_gen_script, |
| "--descriptor-type", "vnfd", |
| "--format", "xml", |
| "--infile", "%s" % os.path.join(mvv_descr_dir, 'vnfd/xml/multivm_trafsink_vnfd.xml'), |
| "--outdir", "%s" % package_dir] |
| print("Running new command arguments: %s" % command) |
| subprocess.check_call(command) |
| return pkg_file |
| |
| @pytest.fixture(scope='session') |
| def slb_vnfd_package_file(request, package_gen_script, mvv_descr_dir, package_dir): |
| pkg_cmd = "{pkg_scr} --outdir {outdir} --infile {infile} --descriptor-type vnfd --format xml".format( |
| pkg_scr=package_gen_script, |
| outdir=package_dir, |
| infile=os.path.join(mvv_descr_dir, 'vnfd/xml/multivm_slb_vnfd.xml'), |
| ) |
| pkg_file = os.path.join(package_dir, 'multivm_slb_vnfd.tar.gz') |
| subprocess.check_call(shlex.split(pkg_cmd)) |
| return pkg_file |