1 # Copyright 2017 Sandvine
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
8 # http://www.apache.org/licenses/LICENSE-2.0
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
17 # These variables need to be defined in environment or passed in
18 # the make invocation.
20 # export OSM_HOSTNAME=1.2.3.4:8008
21 # export OS_AUTH_URL=https://<keystoneserver>:5000/v2.0
22 # export OS_USERNAME=admin
23 # export OS_PASSWORD=admin
24 # export OS_PROJECT_NAME=admin
39 TOPDIR
=$(shell readlink
-f .|sed
-e
's/systest.*//')
43 OPTION_OS_AUTH_URL
=--os-url
$(OS_AUTH_URL
)
46 OPTION_OS_USERNAME
=--os-username
$(OS_USERNAME
)
49 OPTION_OS_PASSWORD
=--os-password
$(OS_PASSWORD
)
52 OPTION_OS_PROJECT_NAME
=--os-project-name
$(OS_PROJECT_NAME
)
55 ifdef TEST_VNFD_DESCRIPTORS
56 OPTION_TEST_VNFD_DESCRIPTORS
=--osm-vnfd-descriptor-packages
$(TEST_VNFD_DESCRIPTORS
)
58 ifdef TEST_NSD_DESCRIPTORS
59 OPTION_TEST_NSD_DESCRIPTORS
=--osm-nsd-descriptor-packages
$(TEST_NSD_DESCRIPTORS
)
62 OPTION_RO_HOSTNAME
=--osm_ro_host
$(OSM_RO_HOSTNAME
)
64 OPTION_RO_HOSTNAME
=--osm_ro_host
$(OSM_HOSTNAME
)
68 OPTION_VIM_CONFIG
=--vim-config
"$(VIM_CONFIG)"
72 OPTION_VCD_AUTH_URL
=--vcd-url
$(VCD_AUTH_URL
)
75 OPTION_VCD_USERNAME
=--vcd-username
$(VCD_USERNAME
)
78 OPTION_VCD_PASSWORD
=--vcd-password
$(VCD_PASSWORD
)
81 OPTION_VCD_TENANT_NAME
=--vcd-tenant-name
$(VCD_TENANT_NAME
)
83 ifdef VCD_ORGANIZATION
84 OPTION_VCD_ORGANIZATION
=--vcd-org
$(VCD_ORGANIZATION
)
88 DESCRIPTOR_DIR ?
= $(TOPDIR
)/descriptor-packages
90 #TODO: Need to re-add this once charm application name length issue is resolved
91 #TEST_OSM_NS_NAME_PREFIX=pytest-$(shell date +%D-%T)-
92 #OPTION_TEST_OSM_NS_NAME_PREFIX=--osm-ns-name-prefix $(TEST_OSM_NS_NAME_PREFIX)
94 JUNITXML_DIR
= reports
96 JUNITXML ?
= pytest-output.xml
101 TEST_VNFD_DESCRIPTORS ?
= None
102 TEST_NSD_DESCRIPTORS ?
= None
105 all: smoke cirros ping_pong
108 $(Q
)if
[ -z
"$($(1))" ]; then echo
"error: $(1) not set"; exit
1; fi
112 $(call check_env_var
,OSM_HOSTNAME
)
115 $(call check_env_var
,OS_AUTH_URL
)
116 $(call check_env_var
,OS_USERNAME
)
117 $(call check_env_var
,OS_PASSWORD
)
118 $(call check_env_var
,OS_PROJECT_NAME
)
121 $(call check_env_var
,VCD_AUTH_URL
)
122 $(call check_env_var
,VCD_USERNAME
)
123 $(call check_env_var
,VCD_PASSWORD
)
124 $(call check_env_var
,VCD_TENANT_NAME
)
125 $(call check_env_var
,VCD_ORGANIZATION
)
127 .PHONY
: check_openstack_env check_vcd_env check_OSM_HOSTNAME
132 _run_test
: report_dir
134 --osmhost
$(OSM_HOSTNAME
) --sol005 \
135 $(OPTION_RO_HOSTNAME
) \
136 $(OPTION_OS_AUTH_URL
) \
137 $(OPTION_OS_USERNAME
) \
138 $(OPTION_OS_PASSWORD
) \
139 $(OPTION_VIM_CONFIG
) \
140 $(OPTION_OS_PROJECT_NAME
) \
141 $(OPTION_VCD_AUTH_URL
) \
142 $(OPTION_VCD_USERNAME
) \
143 $(OPTION_VCD_PASSWORD
) \
144 $(OPTION_VCD_TENANT_NAME
) \
145 $(OPTION_TEST_VNFD_DESCRIPTORS
) \
146 $(OPTION_TEST_NSD_DESCRIPTORS
) \
147 $(OPTION_DESCRIPTOR_BUILD_DIR
) \
148 $(OPTION_TEST_OSM_NS_NAME_PREFIX
) \
149 --junitxml
$(JUNITXML_DIR
)/$(JUNITXML
) \
152 $(DESCRIPTOR_DIR
)/vnfd
/cirros_vnf
/build
/%.
tar.gz
:
153 $(MAKE
) -C
$(DESCRIPTOR_DIR
)/vnfd
/cirros_vnf
155 $(DESCRIPTOR_DIR
)/nsd
/cirros_ns
/build
/%.
tar.gz
:
156 $(MAKE
) -C
$(DESCRIPTOR_DIR
)/nsd
/cirros_ns
158 images
/cache
/cirros-0.3
.5-x86_64-disk.img
:
159 $(Q
)mkdir
-p images
/cache
160 $(Q
)wget http
://download.cirros-cloud.net
/0.3.5/cirros-0.3
.5-x86_64-disk.img
-O
$@
162 images
/cache
/Fedora-x86_64-20-20131211.1
-sda-ping.qcow2
:
163 $(Q
)mkdir
-p images
/cache
164 $(Q
)wget ftp
://osm-download.etsi.org
/examples
/ping_pong_ns
/images
/Fedora-x86_64-20-20131211.1
-sda-ping.qcow2
-O
$@
166 images
/cache
/Fedora-x86_64-20-20131211.1
-sda-pong.qcow2
:
167 $(Q
)mkdir
-p images
/cache
168 $(Q
)wget ftp
://osm-download.etsi.org
/examples
/ping_pong_ns
/images
/Fedora-x86_64-20-20131211.1
-sda-pong.qcow2
-O
$@
170 # images are prefixed with 'osm/' to separate osm uploaded images from VIM installed images
172 sys_path ?
= $(TOPDIR
)systest
175 # VIM emulator does not need images pushed to glance.
178 images
/%.qcow2 images
/%.img
:
179 $(Q
)openstack image show
$(OSM_IMAGE_PREFIX
)$(shell basename $@
) || \
180 sh
-c
"make images/cache/$(shell basename $@) && openstack image create --file images/cache/$(shell basename $@) $(OSM_IMAGE_PREFIX)$(shell basename $@)"
186 ovf_converter images
/cache
/$(OSM_IMAGE_PREFIX
)$(shell basename $@
) -n cirros
187 python
$(TOPDIR
)tools
/vmware_ovf_upload.py
$(VCD_AUTH_URL
) $(VCD_USERNAME
) $(VCD_PASSWORD
) $(VCD_ORGANIZATION
) $(sys_path
)/images
/cache
/cirros.ovf
190 echo
"No method selected to upload image to VIM"
193 %.openstack
: check_openstack_env
199 cirros
: check_OSM_HOSTNAME \
200 $(DESCRIPTOR_DIR
)/vnfd
/cirros_vnf
/build
/cirros_vnf.
tar.gz \
201 $(DESCRIPTOR_DIR
)/nsd
/cirros_ns
/build
/cirros_ns.
tar.gz \
202 images
/cirros-0.3
.5-x86_64-disk.img
204 TEST_VNFD_DESCRIPTORS
=$(DESCRIPTOR_DIR
)/vnfd
/cirros_vnf
/build
/cirros_vnf.
tar.gz \
205 TEST_NSD_DESCRIPTORS
=$(DESCRIPTOR_DIR
)/nsd
/cirros_ns
/build
/cirros_ns.
tar.gz \
206 JUNITXML
=pytest-
$@.xml \
207 PYTEST_OPTIONS
="$(PYTEST_OPTIONS) -m vnf" _run_test
209 ns_scale
: check_OSM_HOSTNAME \
210 $(DESCRIPTOR_DIR
)/vnfd
/cirros_vnf
/build
/cirros_vnf.
tar.gz \
211 $(DESCRIPTOR_DIR
)/nsd
/cirros_ns
/build
/cirros_ns.
tar.gz \
212 images
/cirros-0.3
.5-x86_64-disk.img
214 TEST_VNFD_DESCRIPTORS
=$(DESCRIPTOR_DIR
)/vnfd
/cirros_vnf
/build
/cirros_vnf.
tar.gz \
215 TEST_NSD_DESCRIPTORS
=$(DESCRIPTOR_DIR
)/nsd
/cirros_ns
/build
/cirros_ns.
tar.gz \
216 JUNITXML
=pytest-
$@.xml \
217 PYTEST_OPTIONS
="$(PYTEST_OPTIONS) -m ns_scale" _run_test
219 smoke
: check_OSM_HOSTNAME \
220 $(DESCRIPTOR_DIR
)/vnfd
/cirros_vnf
/build
/cirros_vnf.
tar.gz \
221 $(DESCRIPTOR_DIR
)/nsd
/cirros_ns
/build
/cirros_ns.
tar.gz
223 JUNITXML
=pytest-
$@.xml \
224 PYTEST_OPTIONS
="$(PYTEST_OPTIONS) -m smoke" _run_test \
225 TEST_VNFD_DESCRIPTORS
=$(DESCRIPTOR_DIR
)/vnfd
/cirros_vnf
/build
/cirros_vnf.
tar.gz \
226 TEST_NSD_DESCRIPTORS
=$(DESCRIPTOR_DIR
)/nsd
/cirros_ns
/build
/cirros_ns.
tar.gz
228 vim
: check_OSM_HOSTNAME check_openstack_env
230 JUNITXML
=pytest-
$@.xml \
231 PYTEST_OPTIONS
="$(PYTEST_OPTIONS) -m vim" _run_test
233 $(DESCRIPTOR_DIR
)/vnfd
/ping_vnf
/build
/%.
tar.gz
:
234 $(MAKE
) -C
$(DESCRIPTOR_DIR
)/vnfd
/ping_vnf
236 $(DESCRIPTOR_DIR
)/vnfd
/pong_vnf
/build
/%.
tar.gz
:
237 $(MAKE
) -C
$(DESCRIPTOR_DIR
)/vnfd
/pong_vnf
239 $(DESCRIPTOR_DIR
)/nsd
/ping_pong_ns
/build
/%.
tar.gz
:
240 $(MAKE
) -C
$(DESCRIPTOR_DIR
)/nsd
/ping_pong_ns
242 ping_pong
: check_OSM_HOSTNAME check_openstack_env \
243 $(DESCRIPTOR_DIR
)/vnfd
/ping_vnf
/build
/ping_vnf.
tar.gz \
244 $(DESCRIPTOR_DIR
)/vnfd
/pong_vnf
/build
/pong_vnf.
tar.gz \
245 $(DESCRIPTOR_DIR
)/nsd
/ping_pong_ns
/build
/ping_pong_ns.
tar.gz \
246 images
/Fedora-x86_64-20-20131211.1
-sda-ping.qcow2 \
247 images
/Fedora-x86_64-20-20131211.1
-sda-pong.qcow2
249 TEST_VNFD_DESCRIPTORS
="$(DESCRIPTOR_DIR)/vnfd/ping_vnf/build/ping_vnf.tar.gz,$(DESCRIPTOR_DIR)/vnfd/pong_vnf/build/pong_vnf.tar.gz" \
250 TEST_NSD_DESCRIPTORS
=$(DESCRIPTOR_DIR
)/nsd
/ping_pong_ns
/build
/ping_pong_ns.
tar.gz \
251 JUNITXML
=pytest-
$@.xml \
252 PYTEST_OPTIONS
="$(PYTEST_OPTIONS) -m vnf" _run_test
254 stage_4_tests
= cirros
256 openstack_stage_4
: $(stage_4_tests
)
258 .PHONY
: report_dir cirros vim smoke ping_pong openstack_stage_4 stage_4_tests