blob: a3c565bb9c9f1bb031b028eadad68cbdd35f06f8 [file] [log] [blame]
#
# 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