Makefile code changes for cirros test for VMware vCD connector

Change-Id: If04f5d78de0435405403344d9ab17710cb355f6d
Signed-off-by: kasar <pkasar@vmware.com>
diff --git a/systest/Makefile b/systest/Makefile
index 929896f..36ed0a5 100644
--- a/systest/Makefile
+++ b/systest/Makefile
@@ -29,6 +29,11 @@
 OS_PASSWORD_NAME ?=
 OS_PROJECT_NAME ?=
 VIM_CONFIG ?=
+VCD_AUTH_URL ?=
+VCD_USERNAME ?=
+VCD_PASSWORD ?=
+VCD_TENANT_NAME ?=
+VCD_ORGANIZATION ?=
 
 TOPDIR=$(shell readlink -f .|sed -e 's/systest.*//')
 
@@ -59,9 +64,25 @@
 
 ifdef VIM_CONFIG
     OPTION_VIM_CONFIG=--vim-config "$(VIM_CONFIG)"
-else
 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
@@ -94,7 +115,14 @@
 	$(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)
+
+.PHONY: check_openstack_env check_vcd_env check_OSM_HOSTNAME
 
 report_dir:
 	@mkdir -p reports
@@ -108,6 +136,10 @@
         $(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) \
@@ -135,17 +167,23 @@
 
 # images are prefixed with 'osm/' to separate osm uploaded images from VIM installed images
 OSM_IMAGE_PREFIX ?=
+sys_path ?= $(TOPDIR)systest
 
 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
+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
 
-cirros: check_OSM_HOSTNAME check_openstack_env \
+cirros: check_OSM_HOSTNAME check_openstack_env check_vcd_env \
         $(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
@@ -155,7 +193,7 @@
         JUNITXML=pytest-$@.xml \
         PYTEST_OPTIONS="$(PYTEST_OPTIONS) -m vnf" _run_test
 
-ns_scale: check_OSM_HOSTNAME check_openstack_env \
+ns_scale: check_OSM_HOSTNAME check_openstack_env check_vcd_env \
         $(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
diff --git a/systest/lib/vim/fixtures.py b/systest/lib/vim/fixtures.py
index e552bbc..6b4404d 100644
--- a/systest/lib/vim/fixtures.py
+++ b/systest/lib/vim/fixtures.py
@@ -22,6 +22,6 @@
     pass
 
 @pytest.fixture
-def vim(request,osm,openstack):
+def vim(request,osm,openstack,vmware):
     from lib.vim import vim 
-    return vim.Vim(osm,openstack)
+    return vim.Vim(osm,openstack,vmware)
diff --git a/systest/lib/vim/vim.py b/systest/lib/vim/vim.py
index 98bda38..f3d1753 100644
--- a/systest/lib/vim/vim.py
+++ b/systest/lib/vim/vim.py
@@ -18,7 +18,7 @@
 
 
 class Vim():
-    def __init__(self,osm,openstack):
+    def __init__(self,osm,openstack,vmware):
         self.vim_name='pytest'
         try:
             osm.get_api().vim.get(self.vim_name)
diff --git a/systest/lib/vmware/fixtures.py b/systest/lib/vmware/fixtures.py
index 78ee80c..cb6cc7b 100644
--- a/systest/lib/vmware/fixtures.py
+++ b/systest/lib/vmware/fixtures.py
@@ -30,7 +30,7 @@
     parser.addoption("--vcd-username", default="", help="VMware vCloud username")
     parser.addoption("--vcd-password", default="", help="VMware vCloud password")
     parser.addoption("--vcd-tenant-name", default="", help="VMware vCloud tenant name")
-    parser.addoption("--config", default="", help="VMware vCloud config paramters")
+    parser.addoption("--vcd-org", default="", help="VMware vCloud Organization name")
 
 @pytest.fixture
 def vmware(request):
@@ -40,7 +40,8 @@
     access['vim-username'] = request.config.getoption("--vcd-username")
     access['vim-password'] = request.config.getoption("--vcd-password")
     access['vim-tenant-name'] = request.config.getoption("--vcd-tenant-name")
-    access['config'] = request.config.getoption("--config")
+    access['vcd-org'] = request.config.getoption("--vcd-org")
+    access['config'] = request.config.getoption("--vim-config")
     access['vim-type'] = 'vmware'
     access['description'] = 'pytest system test'
 
diff --git a/systest/testcases/vnfs/test_vnfs.py b/systest/testcases/vnfs/test_vnfs.py
index d987e93..79d9ae2 100644
--- a/systest/testcases/vnfs/test_vnfs.py
+++ b/systest/testcases/vnfs/test_vnfs.py
@@ -78,7 +78,7 @@
         # another way to check if the nsd is really ready via API?
         time.sleep(5)
 
-    def vnf_test(self,osm, openstack, vim, vnfd_file_list, nsd_file_list, ns_scale=False):
+    def vnf_test(self,osm, openstack, vim, vmware, vnfd_file_list, nsd_file_list, ns_scale=False):
         for file in nsd_file_list:
             nsd_desc = osm.get_api().package.get_key_val_from_pkg(file)
 
@@ -89,7 +89,7 @@
             assert utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='vnf-init-phase')
 
             # make sure ns is running
-            assert utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='running',wait_time=120)
+            assert utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='running',wait_time=300)
 
             if ns_scale:
                 # for each descriptor, scale it
@@ -101,7 +101,7 @@
                     assert utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='scaling-out',wait_time=120)
 
                     # wait for ns to be in running-state
-                    assert utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='running',wait_time=120)
+                    assert utils.wait_for_value(lambda: osm.get_api().ns.get_field(ns_name,'operational-status'),result='running',wait_time=300)
 
             time.sleep(10)
 
@@ -115,18 +115,20 @@
 
     @pytest.mark.openstack
     @pytest.mark.vnf
-    def test_vnf(self,osm, vim, openstack, cleanup_test_vnf):
+    @pytest.mark.vmware
+    def test_vnf(self,osm, vim, openstack, vmware, cleanup_test_vnf):
         vnfd_file_list = osm.vnfd_descriptors_list
         nsd_file_list = osm.nsd_descriptors_list
 
         self.vnf_upload_packages(osm, vnfd_file_list, nsd_file_list )
-        self.vnf_test(osm,openstack, vim, vnfd_file_list, nsd_file_list)
+        self.vnf_test(osm,openstack, vim, vmware, vnfd_file_list, nsd_file_list)
 
     @pytest.mark.openstack
     @pytest.mark.ns_scale
-    def test_scale_vnf(self,osm, vim, openstack, cleanup_test_vnf):
+    @pytest.mark.vmware
+    def test_scale_vnf(self,osm, vim, openstack, vmware, cleanup_test_vnf):
         vnfd_file_list = osm.vnfd_descriptors_list
         nsd_file_list = osm.nsd_descriptors_list
 
         self.vnf_upload_packages(osm, vnfd_file_list, nsd_file_list )
-        self.vnf_test(osm,openstack, vim, vnfd_file_list, nsd_file_list, ns_scale=True)
+        self.vnf_test(osm,openstack, vim, vmware, vnfd_file_list, nsd_file_list, ns_scale=True)