# the make invocation.
# eg.
# export OSM_HOSTNAME=1.2.3.4:8008
-# export OS_URL=https://<keystoneserver>:5000/v2.0
+# export OS_AUTH_URL=https://<keystoneserver>:5000/v2.0
# export OS_USERNAME=admin
# export OS_PASSWORD=admin
# export OS_PROJECT_NAME=admin
OSM_HOSTNAME ?=
-OS_URL ?=
+OSM_RO_HOSTNAME ?=
+OS_AUTH_URL ?=
OS_USERNAME ?=
-OS_PASSWORD_NAME ?=
+OS_PASSWORD ?=
OS_PROJECT_NAME ?=
+VIM_CONFIG ?=
+VCD_AUTH_URL ?=
+VCD_USERNAME ?=
+VCD_PASSWORD ?=
+VCD_TENANT_NAME ?=
+VCD_ORGANIZATION ?=
+VIM_EMU ?=
-ifdef OS_URL
- OPTION_OS_URL=--os-url $(OS_URL)
+TOPDIR=$(shell readlink -f .|sed -e 's/systest.*//')
+
+
+ifdef OS_AUTH_URL
+ OPTION_OS_AUTH_URL=--os-url $(OS_AUTH_URL)
endif
ifdef OS_USERNAME
OPTION_OS_USERNAME=--os-username $(OS_USERNAME)
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)"
+endif
+
+ifdef VCD_AUTH_URL
+ OPTION_VCD_AUTH_URL=--vcd-url $(VCD_AUTH_URL)
+endif
+ifdef VCD_USERNAME
+ OPTION_VCD_USERNAME=--vcd-username $(VCD_USERNAME)
+endif
+ifdef VCD_PASSWORD
+ OPTION_VCD_PASSWORD=--vcd-password $(VCD_PASSWORD)
+endif
+ifdef VCD_TENANT_NAME
+ OPTION_VCD_TENANT_NAME=--vcd-tenant-name $(VCD_TENANT_NAME)
+endif
+ifdef VCD_ORGANIZATION
+ OPTION_VCD_ORGANIZATION=--vcd-org $(VCD_ORGANIZATION)
+endif
+
-DESCRIPTOR_REPO_NAME=descriptor-packages
-DESCRIPTOR_BUILD_DIR := $(shell pwd)/$(DESCRIPTOR_REPO_NAME)/build
-OPTION_DESCRIPTOR_BUILD_DIR=--osm-descriptor-packages $(DESCRIPTOR_BUILD_DIR)
+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
PYTEST_OPTIONS=
Q=@
-DESCRIPTOR_REPO ?= https://osm.etsi.org/gerrit/osm/$(DESCRIPTOR_REPO_NAME)
-
-
TEST_VNFD_DESCRIPTORS ?= None
TEST_NSD_DESCRIPTORS ?= None
$(call check_env_var,OSM_HOSTNAME)
check_openstack_env:
- $(call check_env_var,OS_URL)
+ $(call check_env_var,OS_AUTH_URL)
$(call check_env_var,OS_USERNAME)
$(call check_env_var,OS_PASSWORD)
$(call check_env_var,OS_PROJECT_NAME)
-.PHONY: check_openstack_env check_OSM_HOSTNAME
+check_vcd_env:
+ $(call check_env_var,VCD_AUTH_URL)
+ $(call check_env_var,VCD_USERNAME)
+ $(call check_env_var,VCD_PASSWORD)
+ $(call check_env_var,VCD_TENANT_NAME)
+ $(call check_env_var,VCD_ORGANIZATION)
-$(DESCRIPTOR_REPO_NAME):
- @test -e $(DESCRIPTOR_REPO_NAME) || git clone $(DESCRIPTOR_REPO)
- make -C $(DESCRIPTOR_REPO_NAME)
+.PHONY: check_openstack_env check_vcd_env check_OSM_HOSTNAME
report_dir:
@mkdir -p reports
-_run_test: $(DESCRIPTOR_REPO_NAME) report_dir
- $(Q)py.test \
- --osmhost $(OSM_HOSTNAME) \
- $(OPTION_OS_URL) \
+_run_test: report_dir
+ -$(Q)py.test \
+ --osmhost $(OSM_HOSTNAME) --sol005 \
+ $(OPTION_RO_HOSTNAME) \
+ $(OPTION_OS_AUTH_URL) \
$(OPTION_OS_USERNAME) \
$(OPTION_OS_PASSWORD) \
+ $(OPTION_VIM_CONFIG) \
$(OPTION_OS_PROJECT_NAME) \
+ $(OPTION_VCD_AUTH_URL) \
+ $(OPTION_VCD_USERNAME) \
+ $(OPTION_VCD_PASSWORD) \
+ $(OPTION_VCD_TENANT_NAME) \
$(OPTION_TEST_VNFD_DESCRIPTORS) \
$(OPTION_TEST_NSD_DESCRIPTORS) \
$(OPTION_DESCRIPTOR_BUILD_DIR) \
--junitxml $(JUNITXML_DIR)/$(JUNITXML) \
$(PYTEST_OPTIONS)
-cirros: check_OSM_HOSTNAME check_openstack_env
+$(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/%.tar.gz:
+ $(MAKE) -C $(DESCRIPTOR_DIR)/vnfd/cirros_vnf
+
+$(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 ?=
+sys_path ?= $(TOPDIR)systest
+
+ifdef VIM_EMU
+# VIM emulator does not need images pushed to glance.
+else
+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 $@)"
+endif
+endif
+
+ifdef VCD_AUTH_URL
+images/%.img:
+ ovf_converter images/cache/$(OSM_IMAGE_PREFIX)$(shell basename $@) -n cirros
+ python $(TOPDIR)tools/vmware_ovf_upload.py $(VCD_AUTH_URL) $(VCD_USERNAME) $(VCD_PASSWORD) $(VCD_ORGANIZATION) $(sys_path)/images/cache/cirros.ovf
+else
+images/%.img:
+ echo "No method selected to upload image to VIM"
+endif
+
+%.openstack: check_openstack_env
+ $(Q)$(MAKE) $*
+
+%.vcd: check_vcd_env
+ $(Q)$(MAKE) $*
+
+cirros: check_OSM_HOSTNAME \
+ $(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.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_BUILD_DIR)/vnfd_pkgs/cirros_vnf.tar.gz \
- TEST_NSD_DESCRIPTORS=$(DESCRIPTOR_BUILD_DIR)/nsd_pkgs/cirros_ns.tar.gz \
+ 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 \
JUNITXML=pytest-$@.xml \
PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m vnf" _run_test
-smoke: check_OSM_HOSTNAME
+ns_scale: check_OSM_HOSTNAME \
+ $(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.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 \
JUNITXML=pytest-$@.xml \
- PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m smoke" _run_test
+ PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m ns_scale" _run_test
+
+smoke: check_OSM_HOSTNAME \
+ $(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
+ $(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz
+ $(Q)$(MAKE) \
+ JUNITXML=pytest-$@.xml \
+ PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m smoke" _run_test \
+ 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
vim: check_OSM_HOSTNAME check_openstack_env
$(Q)$(MAKE) \
JUNITXML=pytest-$@.xml \
PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m vim" _run_test
-ping_pong: check_OSM_HOSTNAME check_openstack_env
+$(DESCRIPTOR_DIR)/vnfd/ping_vnf/build/%.tar.gz:
+ $(MAKE) -C $(DESCRIPTOR_DIR)/vnfd/ping_vnf
+
+$(DESCRIPTOR_DIR)/vnfd/pong_vnf/build/%.tar.gz:
+ $(MAKE) -C $(DESCRIPTOR_DIR)/vnfd/pong_vnf
+
+$(DESCRIPTOR_DIR)/nsd/ping_pong_ns/build/%.tar.gz:
+ $(MAKE) -C $(DESCRIPTOR_DIR)/nsd/ping_pong_ns
+
+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 \
+ 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_BUILD_DIR)/vnfd_pkgs/ping_vnf.tar.gz,$(DESCRIPTOR_BUILD_DIR)/vnfd_pkgs/pong_vnf.tar.gz" \
- TEST_NSD_DESCRIPTORS="$(DESCRIPTOR_BUILD_DIR)/nsd_pkgs/ping_pong_ns.tar.gz" \
+ 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 \
JUNITXML=pytest-$@.xml \
PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m vnf" _run_test
-.PHONY: report_dir cirros vim smoke ping_pong
+stage_4_tests = cirros
+
+openstack_stage_4: $(stage_4_tests)
+
+.PHONY: report_dir cirros vim smoke ping_pong openstack_stage_4 stage_4_tests