blob: 929896f382aeb686e0e47bd3a8eb87bbc342e045 [file] [log] [blame]
Mike Marchetti08f04282017-05-04 16:43:09 -04001# Copyright 2017 Sandvine
2# All Rights Reserved.
3#
4# Licensed under the Apache License, Version 2.0 (the "License"); you may
5# not use this file except in compliance with the License. You may obtain
6# a copy of the License at
7#
8# http://www.apache.org/licenses/LICENSE-2.0
9#
10# Unless required by applicable law or agreed to in writing, software
11# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13# License for the specific language governing permissions and limitations
14# under the License.
15
16#
17# These variables need to be defined in environment or passed in
18# the make invocation.
19# eg.
20# export OSM_HOSTNAME=1.2.3.4:8008
Mike Marchetti6930bc02017-05-31 16:33:02 -040021# export OS_AUTH_URL=https://<keystoneserver>:5000/v2.0
Mike Marchetti08f04282017-05-04 16:43:09 -040022# export OS_USERNAME=admin
23# export OS_PASSWORD=admin
24# export OS_PROJECT_NAME=admin
25OSM_HOSTNAME ?=
Mike Marchettif94dd8a2017-11-06 11:04:38 -050026OSM_RO_HOSTNAME ?=
Mike Marchetti6930bc02017-05-31 16:33:02 -040027OS_AUTH_URL ?=
Mike Marchetti08f04282017-05-04 16:43:09 -040028OS_USERNAME ?=
29OS_PASSWORD_NAME ?=
30OS_PROJECT_NAME ?=
Mike Marchettif94dd8a2017-11-06 11:04:38 -050031VIM_CONFIG ?=
Mike Marchetti08f04282017-05-04 16:43:09 -040032
Mike Marchettib884a462017-10-05 13:28:33 -040033TOPDIR=$(shell readlink -f .|sed -e 's/systest.*//')
34
Mike Marchetti6930bc02017-05-31 16:33:02 -040035ifdef OS_AUTH_URL
36 OPTION_OS_AUTH_URL=--os-url $(OS_AUTH_URL)
Mike Marchetti08f04282017-05-04 16:43:09 -040037endif
38ifdef OS_USERNAME
39 OPTION_OS_USERNAME=--os-username $(OS_USERNAME)
40endif
41ifdef OS_PASSWORD
42 OPTION_OS_PASSWORD=--os-password $(OS_PASSWORD)
43endif
44ifdef OS_PROJECT_NAME
45 OPTION_OS_PROJECT_NAME=--os-project-name $(OS_PROJECT_NAME)
46endif
47
48ifdef TEST_VNFD_DESCRIPTORS
49 OPTION_TEST_VNFD_DESCRIPTORS=--osm-vnfd-descriptor-packages $(TEST_VNFD_DESCRIPTORS)
50endif
51ifdef TEST_NSD_DESCRIPTORS
52 OPTION_TEST_NSD_DESCRIPTORS=--osm-nsd-descriptor-packages $(TEST_NSD_DESCRIPTORS)
53endif
Mike Marchettif94dd8a2017-11-06 11:04:38 -050054ifdef OSM_RO_HOSTNAME
55 OPTION_RO_HOSTNAME=--osm_ro_host $(OSM_RO_HOSTNAME)
56else
57 OPTION_RO_HOSTNAME=--osm_ro_host $(OSM_HOSTNAME)
58endif
59
60ifdef VIM_CONFIG
61 OPTION_VIM_CONFIG=--vim-config "$(VIM_CONFIG)"
62else
63endif
Mike Marchetti08f04282017-05-04 16:43:09 -040064
Mike Marchettib884a462017-10-05 13:28:33 -040065DESCRIPTOR_DIR ?= $(TOPDIR)/descriptor-packages
Mike Marchetti08f04282017-05-04 16:43:09 -040066
Mike Marchettif94dd8a2017-11-06 11:04:38 -050067#TODO: Need to re-add this once charm application name length issue is resolved
68#TEST_OSM_NS_NAME_PREFIX=pytest-$(shell date +%D-%T)-
69#OPTION_TEST_OSM_NS_NAME_PREFIX=--osm-ns-name-prefix $(TEST_OSM_NS_NAME_PREFIX)
Mike Marchetti08f04282017-05-04 16:43:09 -040070
71JUNITXML_DIR = reports
72
73JUNITXML ?= pytest-output.xml
74
75PYTEST_OPTIONS=
76Q=@
77
Mike Marchetti08f04282017-05-04 16:43:09 -040078TEST_VNFD_DESCRIPTORS ?= None
79TEST_NSD_DESCRIPTORS ?= None
80
81.NOTPARALLEL:
82all: smoke cirros ping_pong
83
84define check_env_var
85 $(Q)if [ -z "$($(1))" ]; then echo "error: $(1) not set"; exit 1; fi
86endef
87
88check_OSM_HOSTNAME:
89 $(call check_env_var,OSM_HOSTNAME)
90
91check_openstack_env:
Mike Marchetti6930bc02017-05-31 16:33:02 -040092 $(call check_env_var,OS_AUTH_URL)
Mike Marchetti08f04282017-05-04 16:43:09 -040093 $(call check_env_var,OS_USERNAME)
94 $(call check_env_var,OS_PASSWORD)
95 $(call check_env_var,OS_PROJECT_NAME)
96
97.PHONY: check_openstack_env check_OSM_HOSTNAME
98
Mike Marchetti08f04282017-05-04 16:43:09 -040099report_dir:
100 @mkdir -p reports
101
Mike Marchetti6930bc02017-05-31 16:33:02 -0400102_run_test: report_dir
Mike Marchettif94dd8a2017-11-06 11:04:38 -0500103 -$(Q)py.test \
Mike Marchetti08f04282017-05-04 16:43:09 -0400104 --osmhost $(OSM_HOSTNAME) \
Mike Marchettif94dd8a2017-11-06 11:04:38 -0500105 $(OPTION_RO_HOSTNAME) \
Mike Marchetti6930bc02017-05-31 16:33:02 -0400106 $(OPTION_OS_AUTH_URL) \
Mike Marchetti08f04282017-05-04 16:43:09 -0400107 $(OPTION_OS_USERNAME) \
108 $(OPTION_OS_PASSWORD) \
Mike Marchettif94dd8a2017-11-06 11:04:38 -0500109 $(OPTION_VIM_CONFIG) \
Mike Marchetti08f04282017-05-04 16:43:09 -0400110 $(OPTION_OS_PROJECT_NAME) \
111 $(OPTION_TEST_VNFD_DESCRIPTORS) \
112 $(OPTION_TEST_NSD_DESCRIPTORS) \
113 $(OPTION_DESCRIPTOR_BUILD_DIR) \
114 $(OPTION_TEST_OSM_NS_NAME_PREFIX) \
115 --junitxml $(JUNITXML_DIR)/$(JUNITXML) \
116 $(PYTEST_OPTIONS)
117
Mike Marchettib884a462017-10-05 13:28:33 -0400118$(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/%.tar.gz:
119 $(MAKE) -C $(DESCRIPTOR_DIR)/vnfd/cirros_vnf
120
121$(DESCRIPTOR_DIR)/nsd/cirros_ns/build/%.tar.gz:
122 $(MAKE) -C $(DESCRIPTOR_DIR)/nsd/cirros_ns
123
Mike Marchettif94dd8a2017-11-06 11:04:38 -0500124images/cache/cirros-0.3.5-x86_64-disk.img:
125 $(Q)mkdir -p images/cache
126 $(Q)wget http://download.cirros-cloud.net/0.3.5/cirros-0.3.5-x86_64-disk.img -O $@
127
128images/cache/Fedora-x86_64-20-20131211.1-sda-ping.qcow2:
129 $(Q)mkdir -p images/cache
130 $(Q)wget ftp://osm-download.etsi.org/examples/ping_pong_ns/images/Fedora-x86_64-20-20131211.1-sda-ping.qcow2 -O $@
131
132images/cache/Fedora-x86_64-20-20131211.1-sda-pong.qcow2:
133 $(Q)mkdir -p images/cache
134 $(Q)wget ftp://osm-download.etsi.org/examples/ping_pong_ns/images/Fedora-x86_64-20-20131211.1-sda-pong.qcow2 -O $@
135
136# images are prefixed with 'osm/' to separate osm uploaded images from VIM installed images
137OSM_IMAGE_PREFIX ?=
138
139ifdef OS_AUTH_URL
140images/%.qcow2 images/%.img:
141 $(Q)openstack image show $(OSM_IMAGE_PREFIX)$(shell basename $@) || \
142 sh -c "make images/cache/$(shell basename $@) && openstack image create --file images/cache/$(shell basename $@) $(OSM_IMAGE_PREFIX)$(shell basename $@)"
143else
144images/%.img:
145 echo "No method selected to upload image to VIM"
146endif
147
Mike Marchettib884a462017-10-05 13:28:33 -0400148cirros: check_OSM_HOSTNAME check_openstack_env \
149 $(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
Mike Marchettif94dd8a2017-11-06 11:04:38 -0500150 $(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz \
151 images/cirros-0.3.5-x86_64-disk.img
Mike Marchetti08f04282017-05-04 16:43:09 -0400152 $(Q)$(MAKE) \
Mike Marchettib884a462017-10-05 13:28:33 -0400153 TEST_VNFD_DESCRIPTORS=$(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
154 TEST_NSD_DESCRIPTORS=$(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz \
Mike Marchetti08f04282017-05-04 16:43:09 -0400155 JUNITXML=pytest-$@.xml \
156 PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m vnf" _run_test
157
Mike Marchettib884a462017-10-05 13:28:33 -0400158ns_scale: check_OSM_HOSTNAME check_openstack_env \
159 $(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
Mike Marchettif94dd8a2017-11-06 11:04:38 -0500160 $(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz \
161 images/cirros-0.3.5-x86_64-disk.img
Mike Marchetti6228f562017-06-15 14:51:27 -0400162 $(Q)$(MAKE) \
Mike Marchettib884a462017-10-05 13:28:33 -0400163 TEST_VNFD_DESCRIPTORS=$(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
164 TEST_NSD_DESCRIPTORS=$(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz \
Mike Marchetti6228f562017-06-15 14:51:27 -0400165 JUNITXML=pytest-$@.xml \
166 PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m ns_scale" _run_test
167
Mike Marchettiae7f5f32017-11-17 10:31:43 -0500168smoke: check_OSM_HOSTNAME \
169 $(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
170 $(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz
Mike Marchetti08f04282017-05-04 16:43:09 -0400171 $(Q)$(MAKE) \
172 JUNITXML=pytest-$@.xml \
Mike Marchettiae7f5f32017-11-17 10:31:43 -0500173 PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m smoke" _run_test \
174 TEST_VNFD_DESCRIPTORS=$(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \
175 TEST_NSD_DESCRIPTORS=$(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz
Mike Marchetti08f04282017-05-04 16:43:09 -0400176
177vim: check_OSM_HOSTNAME check_openstack_env
178 $(Q)$(MAKE) \
179 JUNITXML=pytest-$@.xml \
180 PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m vim" _run_test
181
Mike Marchettib884a462017-10-05 13:28:33 -0400182$(DESCRIPTOR_DIR)/vnfd/ping_vnf/build/%.tar.gz:
183 $(MAKE) -C $(DESCRIPTOR_DIR)/vnfd/ping_vnf
184
185$(DESCRIPTOR_DIR)/vnfd/pong_vnf/build/%.tar.gz:
186 $(MAKE) -C $(DESCRIPTOR_DIR)/vnfd/pong_vnf
187
Mike Marchetti2cea6a02017-10-13 13:58:54 -0400188$(DESCRIPTOR_DIR)/nsd/ping_pong_ns/build/%.tar.gz:
Mike Marchettib884a462017-10-05 13:28:33 -0400189 $(MAKE) -C $(DESCRIPTOR_DIR)/nsd/ping_pong_ns
190
Mike Marchetti2cea6a02017-10-13 13:58:54 -0400191ping_pong: check_OSM_HOSTNAME check_openstack_env \
192 $(DESCRIPTOR_DIR)/vnfd/ping_vnf/build/ping_vnf.tar.gz \
193 $(DESCRIPTOR_DIR)/vnfd/pong_vnf/build/pong_vnf.tar.gz \
Mike Marchettif94dd8a2017-11-06 11:04:38 -0500194 $(DESCRIPTOR_DIR)/nsd/ping_pong_ns/build/ping_pong_ns.tar.gz \
195 images/Fedora-x86_64-20-20131211.1-sda-ping.qcow2 \
196 images/Fedora-x86_64-20-20131211.1-sda-pong.qcow2
Mike Marchetti08f04282017-05-04 16:43:09 -0400197 $(Q)$(MAKE) \
Mike Marchetti2cea6a02017-10-13 13:58:54 -0400198 TEST_VNFD_DESCRIPTORS="$(DESCRIPTOR_DIR)/vnfd/ping_vnf/build/ping_vnf.tar.gz,$(DESCRIPTOR_DIR)/vnfd/pong_vnf/build/pong_vnf.tar.gz" \
Mike Marchettib884a462017-10-05 13:28:33 -0400199 TEST_NSD_DESCRIPTORS=$(DESCRIPTOR_DIR)/nsd/ping_pong_ns/build/ping_pong_ns.tar.gz \
Mike Marchetti08f04282017-05-04 16:43:09 -0400200 JUNITXML=pytest-$@.xml \
201 PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m vnf" _run_test
202
203.PHONY: report_dir cirros vim smoke ping_pong