| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 1 | # 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 Marchetti | 6930bc0 | 2017-05-31 16:33:02 -0400 | [diff] [blame] | 21 | # export OS_AUTH_URL=https://<keystoneserver>:5000/v2.0 |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 22 | # export OS_USERNAME=admin |
| 23 | # export OS_PASSWORD=admin |
| 24 | # export OS_PROJECT_NAME=admin |
| 25 | OSM_HOSTNAME ?= |
| Mike Marchetti | f94dd8a | 2017-11-06 11:04:38 -0500 | [diff] [blame] | 26 | OSM_RO_HOSTNAME ?= |
| Mike Marchetti | 6930bc0 | 2017-05-31 16:33:02 -0400 | [diff] [blame] | 27 | OS_AUTH_URL ?= |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 28 | OS_USERNAME ?= |
| Mike Marchetti | aa24514 | 2018-08-17 13:54:21 -0400 | [diff] [blame] | 29 | OS_PASSWORD ?= |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 30 | OS_PROJECT_NAME ?= |
| Mike Marchetti | f94dd8a | 2017-11-06 11:04:38 -0500 | [diff] [blame] | 31 | VIM_CONFIG ?= |
| kasar | 12aa2cf | 2018-02-02 02:51:07 -0800 | [diff] [blame] | 32 | VCD_AUTH_URL ?= |
| 33 | VCD_USERNAME ?= |
| 34 | VCD_PASSWORD ?= |
| 35 | VCD_TENANT_NAME ?= |
| 36 | VCD_ORGANIZATION ?= |
| Mike Marchetti | aa24514 | 2018-08-17 13:54:21 -0400 | [diff] [blame] | 37 | VIM_EMU ?= |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 38 | |
| Mike Marchetti | b884a46 | 2017-10-05 13:28:33 -0400 | [diff] [blame] | 39 | TOPDIR=$(shell readlink -f .|sed -e 's/systest.*//') |
| 40 | |
| Michael Marchetti | da7fd07 | 2018-11-01 18:43:52 +0000 | [diff] [blame] | 41 | |
| Mike Marchetti | 6930bc0 | 2017-05-31 16:33:02 -0400 | [diff] [blame] | 42 | ifdef OS_AUTH_URL |
| 43 | OPTION_OS_AUTH_URL=--os-url $(OS_AUTH_URL) |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 44 | endif |
| 45 | ifdef OS_USERNAME |
| 46 | OPTION_OS_USERNAME=--os-username $(OS_USERNAME) |
| 47 | endif |
| 48 | ifdef OS_PASSWORD |
| 49 | OPTION_OS_PASSWORD=--os-password $(OS_PASSWORD) |
| 50 | endif |
| 51 | ifdef OS_PROJECT_NAME |
| 52 | OPTION_OS_PROJECT_NAME=--os-project-name $(OS_PROJECT_NAME) |
| 53 | endif |
| 54 | |
| 55 | ifdef TEST_VNFD_DESCRIPTORS |
| 56 | OPTION_TEST_VNFD_DESCRIPTORS=--osm-vnfd-descriptor-packages $(TEST_VNFD_DESCRIPTORS) |
| 57 | endif |
| 58 | ifdef TEST_NSD_DESCRIPTORS |
| 59 | OPTION_TEST_NSD_DESCRIPTORS=--osm-nsd-descriptor-packages $(TEST_NSD_DESCRIPTORS) |
| 60 | endif |
| Mike Marchetti | f94dd8a | 2017-11-06 11:04:38 -0500 | [diff] [blame] | 61 | ifdef OSM_RO_HOSTNAME |
| 62 | OPTION_RO_HOSTNAME=--osm_ro_host $(OSM_RO_HOSTNAME) |
| 63 | else |
| 64 | OPTION_RO_HOSTNAME=--osm_ro_host $(OSM_HOSTNAME) |
| 65 | endif |
| 66 | |
| 67 | ifdef VIM_CONFIG |
| 68 | OPTION_VIM_CONFIG=--vim-config "$(VIM_CONFIG)" |
| Mike Marchetti | f94dd8a | 2017-11-06 11:04:38 -0500 | [diff] [blame] | 69 | endif |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 70 | |
| kasar | 12aa2cf | 2018-02-02 02:51:07 -0800 | [diff] [blame] | 71 | ifdef VCD_AUTH_URL |
| 72 | OPTION_VCD_AUTH_URL=--vcd-url $(VCD_AUTH_URL) |
| 73 | endif |
| 74 | ifdef VCD_USERNAME |
| 75 | OPTION_VCD_USERNAME=--vcd-username $(VCD_USERNAME) |
| 76 | endif |
| 77 | ifdef VCD_PASSWORD |
| 78 | OPTION_VCD_PASSWORD=--vcd-password $(VCD_PASSWORD) |
| 79 | endif |
| 80 | ifdef VCD_TENANT_NAME |
| 81 | OPTION_VCD_TENANT_NAME=--vcd-tenant-name $(VCD_TENANT_NAME) |
| 82 | endif |
| 83 | ifdef VCD_ORGANIZATION |
| 84 | OPTION_VCD_ORGANIZATION=--vcd-org $(VCD_ORGANIZATION) |
| 85 | endif |
| 86 | |
| 87 | |
| Mike Marchetti | b884a46 | 2017-10-05 13:28:33 -0400 | [diff] [blame] | 88 | DESCRIPTOR_DIR ?= $(TOPDIR)/descriptor-packages |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 89 | |
| Mike Marchetti | f94dd8a | 2017-11-06 11:04:38 -0500 | [diff] [blame] | 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) |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 93 | |
| 94 | JUNITXML_DIR = reports |
| 95 | |
| 96 | JUNITXML ?= pytest-output.xml |
| 97 | |
| 98 | PYTEST_OPTIONS= |
| 99 | Q=@ |
| 100 | |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 101 | TEST_VNFD_DESCRIPTORS ?= None |
| 102 | TEST_NSD_DESCRIPTORS ?= None |
| 103 | |
| 104 | .NOTPARALLEL: |
| 105 | all: smoke cirros ping_pong |
| 106 | |
| 107 | define check_env_var |
| 108 | $(Q)if [ -z "$($(1))" ]; then echo "error: $(1) not set"; exit 1; fi |
| 109 | endef |
| 110 | |
| 111 | check_OSM_HOSTNAME: |
| 112 | $(call check_env_var,OSM_HOSTNAME) |
| 113 | |
| 114 | check_openstack_env: |
| Mike Marchetti | 6930bc0 | 2017-05-31 16:33:02 -0400 | [diff] [blame] | 115 | $(call check_env_var,OS_AUTH_URL) |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 116 | $(call check_env_var,OS_USERNAME) |
| 117 | $(call check_env_var,OS_PASSWORD) |
| 118 | $(call check_env_var,OS_PROJECT_NAME) |
| 119 | |
| kasar | 12aa2cf | 2018-02-02 02:51:07 -0800 | [diff] [blame] | 120 | check_vcd_env: |
| 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) |
| 126 | |
| 127 | .PHONY: check_openstack_env check_vcd_env check_OSM_HOSTNAME |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 128 | |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 129 | report_dir: |
| 130 | @mkdir -p reports |
| 131 | |
| Mike Marchetti | 6930bc0 | 2017-05-31 16:33:02 -0400 | [diff] [blame] | 132 | _run_test: report_dir |
| Mike Marchetti | f94dd8a | 2017-11-06 11:04:38 -0500 | [diff] [blame] | 133 | -$(Q)py.test \ |
| Mike Marchetti | dbada22 | 2018-08-14 12:13:48 -0400 | [diff] [blame] | 134 | --osmhost $(OSM_HOSTNAME) --sol005 \ |
| Mike Marchetti | f94dd8a | 2017-11-06 11:04:38 -0500 | [diff] [blame] | 135 | $(OPTION_RO_HOSTNAME) \ |
| Mike Marchetti | 6930bc0 | 2017-05-31 16:33:02 -0400 | [diff] [blame] | 136 | $(OPTION_OS_AUTH_URL) \ |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 137 | $(OPTION_OS_USERNAME) \ |
| 138 | $(OPTION_OS_PASSWORD) \ |
| Mike Marchetti | f94dd8a | 2017-11-06 11:04:38 -0500 | [diff] [blame] | 139 | $(OPTION_VIM_CONFIG) \ |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 140 | $(OPTION_OS_PROJECT_NAME) \ |
| kasar | 12aa2cf | 2018-02-02 02:51:07 -0800 | [diff] [blame] | 141 | $(OPTION_VCD_AUTH_URL) \ |
| 142 | $(OPTION_VCD_USERNAME) \ |
| 143 | $(OPTION_VCD_PASSWORD) \ |
| 144 | $(OPTION_VCD_TENANT_NAME) \ |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 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) \ |
| 150 | $(PYTEST_OPTIONS) |
| 151 | |
| Mike Marchetti | b884a46 | 2017-10-05 13:28:33 -0400 | [diff] [blame] | 152 | $(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/%.tar.gz: |
| 153 | $(MAKE) -C $(DESCRIPTOR_DIR)/vnfd/cirros_vnf |
| 154 | |
| 155 | $(DESCRIPTOR_DIR)/nsd/cirros_ns/build/%.tar.gz: |
| 156 | $(MAKE) -C $(DESCRIPTOR_DIR)/nsd/cirros_ns |
| 157 | |
| Mike Marchetti | f94dd8a | 2017-11-06 11:04:38 -0500 | [diff] [blame] | 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 $@ |
| 161 | |
| 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 $@ |
| 165 | |
| 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 $@ |
| 169 | |
| 170 | # images are prefixed with 'osm/' to separate osm uploaded images from VIM installed images |
| 171 | OSM_IMAGE_PREFIX ?= |
| kasar | 12aa2cf | 2018-02-02 02:51:07 -0800 | [diff] [blame] | 172 | sys_path ?= $(TOPDIR)systest |
| Mike Marchetti | f94dd8a | 2017-11-06 11:04:38 -0500 | [diff] [blame] | 173 | |
| Mike Marchetti | aa24514 | 2018-08-17 13:54:21 -0400 | [diff] [blame] | 174 | ifdef VIM_EMU |
| 175 | # VIM emulator does not need images pushed to glance. |
| 176 | else |
| Mike Marchetti | f94dd8a | 2017-11-06 11:04:38 -0500 | [diff] [blame] | 177 | ifdef OS_AUTH_URL |
| 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 $@)" |
| kasar | 12aa2cf | 2018-02-02 02:51:07 -0800 | [diff] [blame] | 181 | endif |
| Mike Marchetti | aa24514 | 2018-08-17 13:54:21 -0400 | [diff] [blame] | 182 | endif |
| 183 | |
| kasar | 12aa2cf | 2018-02-02 02:51:07 -0800 | [diff] [blame] | 184 | ifdef VCD_AUTH_URL |
| 185 | images/%.img: |
| 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 |
| Mike Marchetti | f94dd8a | 2017-11-06 11:04:38 -0500 | [diff] [blame] | 188 | else |
| 189 | images/%.img: |
| 190 | echo "No method selected to upload image to VIM" |
| 191 | endif |
| 192 | |
| Mike Marchetti | 7dd7e17 | 2018-03-28 14:28:21 -0400 | [diff] [blame] | 193 | %.openstack: check_openstack_env |
| 194 | $(Q)$(MAKE) $* |
| 195 | |
| kasar | a434778 | 2018-11-01 04:30:50 -0700 | [diff] [blame] | 196 | %.vcd: check_vcd_env |
| Mike Marchetti | 7dd7e17 | 2018-03-28 14:28:21 -0400 | [diff] [blame] | 197 | $(Q)$(MAKE) $* |
| 198 | |
| 199 | cirros: check_OSM_HOSTNAME \ |
| Mike Marchetti | b884a46 | 2017-10-05 13:28:33 -0400 | [diff] [blame] | 200 | $(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \ |
| Mike Marchetti | f94dd8a | 2017-11-06 11:04:38 -0500 | [diff] [blame] | 201 | $(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz \ |
| 202 | images/cirros-0.3.5-x86_64-disk.img |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 203 | $(Q)$(MAKE) \ |
| Mike Marchetti | b884a46 | 2017-10-05 13:28:33 -0400 | [diff] [blame] | 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 \ |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 206 | JUNITXML=pytest-$@.xml \ |
| 207 | PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m vnf" _run_test |
| 208 | |
| Mike Marchetti | 7dd7e17 | 2018-03-28 14:28:21 -0400 | [diff] [blame] | 209 | ns_scale: check_OSM_HOSTNAME \ |
| Mike Marchetti | b884a46 | 2017-10-05 13:28:33 -0400 | [diff] [blame] | 210 | $(DESCRIPTOR_DIR)/vnfd/cirros_vnf/build/cirros_vnf.tar.gz \ |
| Mike Marchetti | f94dd8a | 2017-11-06 11:04:38 -0500 | [diff] [blame] | 211 | $(DESCRIPTOR_DIR)/nsd/cirros_ns/build/cirros_ns.tar.gz \ |
| 212 | images/cirros-0.3.5-x86_64-disk.img |
| Mike Marchetti | 6228f56 | 2017-06-15 14:51:27 -0400 | [diff] [blame] | 213 | $(Q)$(MAKE) \ |
| Mike Marchetti | b884a46 | 2017-10-05 13:28:33 -0400 | [diff] [blame] | 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 \ |
| Mike Marchetti | 6228f56 | 2017-06-15 14:51:27 -0400 | [diff] [blame] | 216 | JUNITXML=pytest-$@.xml \ |
| 217 | PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m ns_scale" _run_test |
| 218 | |
| Mike Marchetti | ae7f5f3 | 2017-11-17 10:31:43 -0500 | [diff] [blame] | 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 |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 222 | $(Q)$(MAKE) \ |
| 223 | JUNITXML=pytest-$@.xml \ |
| Mike Marchetti | ae7f5f3 | 2017-11-17 10:31:43 -0500 | [diff] [blame] | 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 |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 227 | |
| 228 | vim: check_OSM_HOSTNAME check_openstack_env |
| 229 | $(Q)$(MAKE) \ |
| 230 | JUNITXML=pytest-$@.xml \ |
| 231 | PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m vim" _run_test |
| 232 | |
| Mike Marchetti | b884a46 | 2017-10-05 13:28:33 -0400 | [diff] [blame] | 233 | $(DESCRIPTOR_DIR)/vnfd/ping_vnf/build/%.tar.gz: |
| 234 | $(MAKE) -C $(DESCRIPTOR_DIR)/vnfd/ping_vnf |
| 235 | |
| 236 | $(DESCRIPTOR_DIR)/vnfd/pong_vnf/build/%.tar.gz: |
| 237 | $(MAKE) -C $(DESCRIPTOR_DIR)/vnfd/pong_vnf |
| 238 | |
| Mike Marchetti | 2cea6a0 | 2017-10-13 13:58:54 -0400 | [diff] [blame] | 239 | $(DESCRIPTOR_DIR)/nsd/ping_pong_ns/build/%.tar.gz: |
| Mike Marchetti | b884a46 | 2017-10-05 13:28:33 -0400 | [diff] [blame] | 240 | $(MAKE) -C $(DESCRIPTOR_DIR)/nsd/ping_pong_ns |
| 241 | |
| Mike Marchetti | 2cea6a0 | 2017-10-13 13:58:54 -0400 | [diff] [blame] | 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 \ |
| Mike Marchetti | f94dd8a | 2017-11-06 11:04:38 -0500 | [diff] [blame] | 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 |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 248 | $(Q)$(MAKE) \ |
| Mike Marchetti | 2cea6a0 | 2017-10-13 13:58:54 -0400 | [diff] [blame] | 249 | TEST_VNFD_DESCRIPTORS="$(DESCRIPTOR_DIR)/vnfd/ping_vnf/build/ping_vnf.tar.gz,$(DESCRIPTOR_DIR)/vnfd/pong_vnf/build/pong_vnf.tar.gz" \ |
| Mike Marchetti | b884a46 | 2017-10-05 13:28:33 -0400 | [diff] [blame] | 250 | TEST_NSD_DESCRIPTORS=$(DESCRIPTOR_DIR)/nsd/ping_pong_ns/build/ping_pong_ns.tar.gz \ |
| Mike Marchetti | 08f0428 | 2017-05-04 16:43:09 -0400 | [diff] [blame] | 251 | JUNITXML=pytest-$@.xml \ |
| 252 | PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m vnf" _run_test |
| 253 | |
| Michael Marchetti | 9b27a61 | 2018-10-31 18:03:15 +0000 | [diff] [blame] | 254 | stage_4_tests = cirros |
| 255 | |
| 256 | openstack_stage_4: $(stage_4_tests) |
| 257 | |
| 258 | .PHONY: report_dir cirros vim smoke ping_pong openstack_stage_4 stage_4_tests |