# Copyright 2017 Sandvine
# All Rights Reserved.
# 
#    Licensed under the Apache License, Version 2.0 (the "License"); you may
#    not use this file except in compliance with the License. You may obtain
#    a copy of the License at
# 
#         http://www.apache.org/licenses/LICENSE-2.0
# 
#    Unless required by applicable law or agreed to in writing, software
#    distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
#    WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
#    License for the specific language governing permissions and limitations
#    under the License.

#
# These variables need to be defined in environment or passed in
# the make invocation.
# eg. 
#    export OSM_HOSTNAME=1.2.3.4:8008
#    export OS_AUTH_URL=https://<keystoneserver>:5000/v2.0
#    export OS_USERNAME=admin
#    export OS_PASSWORD=admin
#    export OS_PROJECT_NAME=admin
OSM_HOSTNAME ?=
OSM_RO_HOSTNAME ?=
OS_AUTH_URL ?=
OS_USERNAME ?=
OS_PASSWORD ?=
OS_PROJECT_NAME ?=
VIM_CONFIG ?=
VCD_AUTH_URL ?=
VCD_USERNAME ?=
VCD_PASSWORD ?=
VCD_TENANT_NAME ?=
VCD_ORGANIZATION ?=
VIM_EMU ?=

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)
endif
ifdef OS_PASSWORD
    OPTION_OS_PASSWORD=--os-password $(OS_PASSWORD)
endif
ifdef OS_PROJECT_NAME
    OPTION_OS_PROJECT_NAME=--os-project-name $(OS_PROJECT_NAME)
endif

ifdef TEST_VNFD_DESCRIPTORS
    OPTION_TEST_VNFD_DESCRIPTORS=--osm-vnfd-descriptor-packages $(TEST_VNFD_DESCRIPTORS)
endif
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_DIR ?= $(TOPDIR)/descriptor-packages

#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

JUNITXML ?= pytest-output.xml

PYTEST_OPTIONS=
Q=@

TEST_VNFD_DESCRIPTORS ?= None
TEST_NSD_DESCRIPTORS  ?= None

.NOTPARALLEL:
all: smoke cirros ping_pong

define check_env_var
	$(Q)if [ -z "$($(1))" ]; then echo "error: $(1) not set"; exit 1; fi
endef

check_OSM_HOSTNAME:
	$(call check_env_var,OSM_HOSTNAME)

check_openstack_env:
	$(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)

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)

.PHONY: check_openstack_env check_vcd_env check_OSM_HOSTNAME

report_dir:
	@mkdir -p reports

_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) \
        $(OPTION_TEST_OSM_NS_NAME_PREFIX) \
        --junitxml $(JUNITXML_DIR)/$(JUNITXML) \
        $(PYTEST_OPTIONS)

$(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) $*

%s.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_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

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 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

$(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_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

stage_4_tests = cirros

openstack_stage_4: $(stage_4_tests)

.PHONY: report_dir cirros vim smoke ping_pong openstack_stage_4 stage_4_tests
