stage_4 support
Signed-off-by: Mike Marchetti <mmarchetti@sandvine.com>
Change-Id: Ic997b0baf6ad9cedf486a506f050e016a0c5796a
diff --git a/systest/.gitignore b/systest/.gitignore
index 97f7edd..1fae3e1 100644
--- a/systest/.gitignore
+++ b/systest/.gitignore
@@ -3,3 +3,4 @@
.cache
descriptor-packages/
*.xml
+images/*
diff --git a/systest/Makefile b/systest/Makefile
index 90c56d5..6631eb1 100644
--- a/systest/Makefile
+++ b/systest/Makefile
@@ -23,10 +23,12 @@
# export OS_PASSWORD=admin
# export OS_PROJECT_NAME=admin
OSM_HOSTNAME ?=
+OSM_RO_HOSTNAME ?=
OS_AUTH_URL ?=
OS_USERNAME ?=
OS_PASSWORD_NAME ?=
OS_PROJECT_NAME ?=
+VIM_CONFIG ?=
TOPDIR=$(shell readlink -f .|sed -e 's/systest.*//')
@@ -49,11 +51,22 @@
ifdef TEST_NSD_DESCRIPTORS
OPTION_TEST_NSD_DESCRIPTORS=--osm-nsd-descriptor-packages $(TEST_NSD_DESCRIPTORS)
endif
+ifdef OSM_RO_HOSTNAME
+ OPTION_RO_HOSTNAME=--osm_ro_host $(OSM_RO_HOSTNAME)
+else
+ OPTION_RO_HOSTNAME=--osm_ro_host $(OSM_HOSTNAME)
+endif
+
+ifdef VIM_CONFIG
+ OPTION_VIM_CONFIG=--vim-config "$(VIM_CONFIG)"
+else
+endif
DESCRIPTOR_DIR ?= $(TOPDIR)/descriptor-packages
-TEST_OSM_NS_NAME_PREFIX=pytest-$(shell date +%D-%T)-
-OPTION_TEST_OSM_NS_NAME_PREFIX=--osm-ns-name-prefix $(TEST_OSM_NS_NAME_PREFIX)
+#TODO: Need to re-add this once charm application name length issue is resolved
+#TEST_OSM_NS_NAME_PREFIX=pytest-$(shell date +%D-%T)-
+#OPTION_TEST_OSM_NS_NAME_PREFIX=--osm-ns-name-prefix $(TEST_OSM_NS_NAME_PREFIX)
JUNITXML_DIR = reports
@@ -87,11 +100,13 @@
@mkdir -p reports
_run_test: report_dir
- $(Q)py.test \
+ -$(Q)py.test \
--osmhost $(OSM_HOSTNAME) \
+ $(OPTION_RO_HOSTNAME) \
$(OPTION_OS_AUTH_URL) \
$(OPTION_OS_USERNAME) \
$(OPTION_OS_PASSWORD) \
+ $(OPTION_VIM_CONFIG) \
$(OPTION_OS_PROJECT_NAME) \
$(OPTION_TEST_VNFD_DESCRIPTORS) \
$(OPTION_TEST_NSD_DESCRIPTORS) \
@@ -106,9 +121,34 @@
$(DESCRIPTOR_DIR)/nsd/cirros_ns/build/%.tar.gz:
$(MAKE) -C $(DESCRIPTOR_DIR)/nsd/cirros_ns
+images/cache/cirros-0.3.5-x86_64-disk.img:
+ $(Q)mkdir -p images/cache
+ $(Q)wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img -O $@
+
+images/cache/Fedora-x86_64-20-20131211.1-sda-ping.qcow2:
+ $(Q)mkdir -p images/cache
+ $(Q)wget ftp://osm-download.etsi.org/examples/ping_pong_ns/images/Fedora-x86_64-20-20131211.1-sda-ping.qcow2 -O $@
+
+images/cache/Fedora-x86_64-20-20131211.1-sda-pong.qcow2:
+ $(Q)mkdir -p images/cache
+ $(Q)wget ftp://osm-download.etsi.org/examples/ping_pong_ns/images/Fedora-x86_64-20-20131211.1-sda-pong.qcow2 -O $@
+
+# images are prefixed with 'osm/' to separate osm uploaded images from VIM installed images
+OSM_IMAGE_PREFIX ?=
+
+ifdef OS_AUTH_URL
+images/%.qcow2 images/%.img:
+ $(Q)openstack image show $(OSM_IMAGE_PREFIX)$(shell basename $@) || \
+ sh -c "make images/cache/$(shell basename $@) && openstack image create --file images/cache/$(shell basename $@) $(OSM_IMAGE_PREFIX)$(shell basename $@)"
+else
+images/%.img:
+ echo "No method selected to upload image to VIM"
+endif
+
cirros: check_OSM_HOSTNAME check_openstack_env \
$(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
- $(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz
+ $(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz \
+ images/cirros-0.3.5-x86_64-disk.img
$(Q)$(MAKE) \
TEST_VNFD_DESCRIPTORS=$(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
TEST_NSD_DESCRIPTORS=$(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz \
@@ -117,7 +157,8 @@
ns_scale: check_OSM_HOSTNAME check_openstack_env \
$(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
- $(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz
+ $(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz \
+ images/cirros-0.3.5-x86_64-disk.img
$(Q)$(MAKE) \
TEST_VNFD_DESCRIPTORS=$(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
TEST_NSD_DESCRIPTORS=$(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz \
@@ -146,7 +187,9 @@
ping_pong: check_OSM_HOSTNAME check_openstack_env \
$(DESCRIPTOR_DIR)/vnfd/ping_vnf/build/ping_vnf.tar.gz \
$(DESCRIPTOR_DIR)/vnfd/pong_vnf/build/pong_vnf.tar.gz \
- $(DESCRIPTOR_DIR)/nsd/ping_pong_ns/build/ping_pong_ns.tar.gz
+ $(DESCRIPTOR_DIR)/nsd/ping_pong_ns/build/ping_pong_ns.tar.gz \
+ images/Fedora-x86_64-20-20131211.1-sda-ping.qcow2 \
+ images/Fedora-x86_64-20-20131211.1-sda-pong.qcow2
$(Q)$(MAKE) \
TEST_VNFD_DESCRIPTORS="$(DESCRIPTOR_DIR)/vnfd/ping_vnf/build/ping_vnf.tar.gz,$(DESCRIPTOR_DIR)/vnfd/pong_vnf/build/pong_vnf.tar.gz" \
TEST_NSD_DESCRIPTORS=$(DESCRIPTOR_DIR)/nsd/ping_pong_ns/build/ping_pong_ns.tar.gz \
diff --git a/systest/lib/openstack/fixtures.py b/systest/lib/openstack/fixtures.py
index e6953b7..5b654a9 100644
--- a/systest/lib/openstack/fixtures.py
+++ b/systest/lib/openstack/fixtures.py
@@ -23,6 +23,7 @@
parser.addoption("--os-username", default="", help="openstack username")
parser.addoption("--os-password", default="", help="openstack password")
parser.addoption("--os-project-name", default="", help="openstack project name")
+ parser.addoption("--vim-config", default="", help="vim/openstack specific configuration")
@pytest.fixture
def openstack(request):
@@ -34,5 +35,6 @@
access['vim-tenant-name'] = request.config.getoption("--os-project-name")
access['vim-type'] = 'openstack'
access['description'] = 'pytest system test'
+ access['config'] = request.config.getoption("--vim-config")
return openstack.Openstack(access)
diff --git a/systest/lib/osm/fixtures.py b/systest/lib/osm/fixtures.py
index edfc076..2c66ac5 100644
--- a/systest/lib/osm/fixtures.py
+++ b/systest/lib/osm/fixtures.py
@@ -20,6 +20,7 @@
def osm_add_options(parser):
parser.addoption("--osmhost", default="", help="osm hostname")
+ parser.addoption("--osm_ro_host", default="", help="osm ro_host")
parser.addoption("--osm-descriptor-packages", default="", help="location of descriptor packages")
parser.addoption("--osm-vnfd-descriptor-packages", default="", help="vnfd packages to test")
parser.addoption("--osm-nsd-descriptor-packages", default="", help="nsd package to test")
@@ -40,11 +41,13 @@
def osm(request):
from lib.osm import osm
osmhost=request.config.getoption("--osmhost")
+ osm_ro_host=request.config.getoption("--osm_ro_host")
descriptors_dir=request.config.getoption("--osm-descriptor-packages")
vnfd_descriptors_list=request.config.getoption("--osm-vnfd-descriptor-packages").split(',')
nsd_descriptors_list=request.config.getoption("--osm-nsd-descriptor-packages").split(',')
ns_name_prefix=request.config.getoption("--osm-ns-name-prefix")
return osm.Osm(osmhost,
+ ro_host=osm_ro_host,
descriptors_dir=descriptors_dir,
vnfd_descriptors_list=vnfd_descriptors_list,
nsd_descriptors_list=nsd_descriptors_list,
diff --git a/systest/lib/osm/osm.py b/systest/lib/osm/osm.py
index 8798be8..f67cf57 100644
--- a/systest/lib/osm/osm.py
+++ b/systest/lib/osm/osm.py
@@ -18,8 +18,8 @@
from osmclient.client import client
class Osm():
- def __init__(self,osmhost,descriptors_dir=None,vnfd_descriptors_list=None,nsd_descriptors_list=None,ns_name_prefix=None):
- self._OsmApi=client.Client(host=osmhost)
+ def __init__(self,osmhost,ro_host=None,descriptors_dir=None,vnfd_descriptors_list=None,nsd_descriptors_list=None,ns_name_prefix=None):
+ self._OsmApi=client.Client(host=osmhost,ro_host=ro_host)
self._descriptors_dir = descriptors_dir
self.vnfd_descriptors_list = vnfd_descriptors_list
self.nsd_descriptors_list = nsd_descriptors_list
diff --git a/systest/testcases/vnfs/test_vnfs.py b/systest/testcases/vnfs/test_vnfs.py
index d32fc71..d987e93 100644
--- a/systest/testcases/vnfs/test_vnfs.py
+++ b/systest/testcases/vnfs/test_vnfs.py
@@ -89,7 +89,7 @@
assert utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='vnf-init-phase')
# make sure ns is running
- assert utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='running',wait_time=240)
+ assert utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='running',wait_time=120)
if ns_scale:
# for each descriptor, scale it
@@ -98,10 +98,10 @@
assert not osm.get_api().ns.scale(ns_name, scale['name'], 1)
# ensure ns is scaling-out
- assert utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='scaling-out',wait_time=240)
+ assert utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='scaling-out',wait_time=120)
# wait for ns to be in running-state
- assert utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='running',wait_time=240)
+ assert utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='running',wait_time=120)
time.sleep(10)