update from RIFT as of 696b75d2fe9fb046261b08c616f1bcf6c0b54a9b second try

Signed-off-by: Jeremy Mordkoff <Jeremy.Mordkoff@riftio.com>
diff --git a/rwcal/test/CMakeLists.txt b/rwcal/test/CMakeLists.txt
index 79e66c5..637d9ff 100644
--- a/rwcal/test/CMakeLists.txt
+++ b/rwcal/test/CMakeLists.txt
@@ -62,6 +62,6 @@
     RIFT.ware-ready.py 
     openstack_resources.py
   DESTINATION usr/bin
-  COMPONENT ${PKG_LONG_NAME}
+  COMPONENT ${INSTALL_COMPONENT}
 )
 
diff --git a/rwcal/test/aws_resources.py b/rwcal/test/aws_resources.py
index 875de56..7f00176 100644
--- a/rwcal/test/aws_resources.py
+++ b/rwcal/test/aws_resources.py
@@ -67,7 +67,7 @@
     """
     Returns AWS cal account
     """
-    account                        = RwcalYang.CloudAccount()
+    account                        = RwcalYang.YangData_RwProject_Project_CloudAccounts_CloudAccountList()
     account.account_type           = "aws"
     account.aws.key = kwargs['key']
     account.aws.secret = kwargs['secret']
@@ -158,7 +158,7 @@
         Create Mission Control VM in AWS
         """ 
         logger.info("Creating mission control VM")
-        vdu = RwcalYang.VDUInitParams()
+        vdu = RwcalYang.YangData_RwProject_Project_VduInitParams()
         vdu.name = MISSION_CONTROL_NAME
         vdu.image_id = RIFT_IMAGE_AMI
         vdu.flavor_id = 'c3.large'
@@ -173,7 +173,7 @@
         inst=driver.get_instance(self._mc_id)
         inst.wait_until_running()
 
-        rc,rs =self._cal.get_vdu(self._acct,self._mc_id)
+        rc,rs =self._cal.get_vdu(self._acct,self._mc_id, "")
         assert rc == RwStatus.SUCCESS
         self._mc_public_ip = rs.public_ip
         self._mc_private_ip = rs.management_ip
@@ -206,7 +206,7 @@
             salt_master=self._mc_private_ip
         node_id = str(uuid.uuid4())
 
-        vdu = RwcalYang.VDUInitParams()
+        vdu = RwcalYang.YangData_RwProject_Project_VduInitParams()
         vdu.name = LAUNCHPAD_NAME
         vdu.image_id = RIFT_IMAGE_AMI
         vdu.flavor_id = 'c3.xlarge'
@@ -223,7 +223,7 @@
         inst=driver.get_instance(self._lp_id)
         inst.wait_until_running()
 
-        rc,rs =self._cal.get_vdu(self._acct,self._lp_id)
+        rc,rs =self._cal.get_vdu(self._acct,self._lp_id, "")
         assert rc == RwStatus.SUCCESS
 
         self._lp_public_ip = rs.public_ip
diff --git a/rwcal/test/cal_module_test/CMakeLists.txt b/rwcal/test/cal_module_test/CMakeLists.txt
index f637c28..f23e311 100644
--- a/rwcal/test/cal_module_test/CMakeLists.txt
+++ b/rwcal/test/cal_module_test/CMakeLists.txt
@@ -23,19 +23,22 @@
   PROGRAMS
     cal_module_test
   DESTINATION usr/rift/systemtest/cal_module_test
-  COMPONENT ${PKG_LONG_NAME})
+  COMPONENT ${INSTALL_COMPONENT}
+  )
 
 install(
   FILES
     pytest/conftest.py
     pytest/cal_module_test.py
   DESTINATION usr/rift/systemtest/cal_module_test/pytest
-  COMPONENT ${PKG_LONG_NAME})
+  COMPONENT ${INSTALL_COMPONENT}
+  )
 
 install(
   FILES
     racfg/cal_module_test.racfg
   DESTINATION
     usr/rift/systemtest/cal_module_test
-    COMPONENT ${PKG_LONG_NAME})
+    COMPONENT ${INSTALL_COMPONENT}
+    )
 
diff --git a/rwcal/test/cal_module_test/pytest/cal_module_test.py b/rwcal/test/cal_module_test/pytest/cal_module_test.py
index ca3568f..170e664 100644
--- a/rwcal/test/cal_module_test/pytest/cal_module_test.py
+++ b/rwcal/test/cal_module_test/pytest/cal_module_test.py
@@ -32,6 +32,8 @@
 
 import pytest
 
+import rift.auto.mano
+
 from gi import require_version
 require_version('RwCal', '1.0')
 
@@ -45,6 +47,8 @@
 logger = logging.getLogger('rwcal')
 logging.basicConfig(level=logging.INFO)
 
+def short_id():
+    return uuid.uuid4().hex[:10]
 
 class CloudConfig(object):
     def __init__(self, cal, account):
@@ -142,7 +146,7 @@
         Return:
             CloudAccount details
         """
-        account = RwcalYang.CloudAccount.from_dict({
+        account = RwcalYang.YangData_RwProject_Project_CloudAccounts_CloudAccountList.from_dict({
                 "account_type": "aws",
                 "aws": {
                     "key": option.aws_user,
@@ -160,8 +164,8 @@
         Returns:
             FlavorInfoItem
         """
-        flavor = RwcalYang.FlavorInfoItem.from_dict({
-                    "name": str(uuid.uuid4()),
+        flavor = RwcalYang.YangData_RwProject_Project_VimResources_FlavorinfoList.from_dict({
+                    "name": rift.auto.mano.resource_name(short_id()),
                     "vm_flavor": {
                         "memory_mb": 1024,
                         "vcpu_count": 1,
@@ -177,15 +181,15 @@
         Returns:
             VDUInitParams
         """
-        vdu = RwcalYang.VDUInitParams.from_dict({
-                "name": str(uuid.uuid4()),
+        vdu = RwcalYang.YangData_RwProject_Project_VduInitParams.from_dict({
+                "name": rift.auto.mano.resource_name(short_id()),
                 "node_id": "123456789012345",
                 "image_id": self.image_id,
                 "flavor_id": "t2.micro"
             })
 
         c1 = vdu.connection_points.add()
-        c1.name = str(uuid.uuid4())
+        c1.name = rift.auto.mano.resource_name(short_id())
         c1.virtual_link_id = self.virtual_link_id
 
         return vdu
@@ -199,8 +203,8 @@
         Returns:
             VirtualLinkReqParams
         """
-        vlink = RwcalYang.VirtualLinkReqParams.from_dict({
-                    "name": str(uuid.uuid4()),
+        vlink = RwcalYang.YangData_RwProject_Project_VirtualLinkReqParams.from_dict({
+                    "name": rift.auto.mano.resource_name(short_id()),
                     "subnet": '172.31.64.0/20',
             })
 
@@ -273,7 +277,7 @@
         Return:
             CloudAccount details
         """
-        account = RwcalYang.CloudAccount.from_dict({
+        account = RwcalYang.YangData_RwProject_Project_CloudAccounts_CloudAccountList.from_dict({
                 'name': "cloudsim",
                 'account_type':'cloudsim_proxy'})
 
@@ -285,8 +289,8 @@
         Returns:
             ImageInfoItem
         """
-        image = RwcalYang.ImageInfoItem.from_dict({
-                "name": str(uuid.uuid4()),
+        image = RwcalYang.YangData_RwProject_Project_VimResources_ImageinfoList.from_dict({
+                "name": rift.auto.mano.resource_name(short_id()),
                 "location": os.path.join(os.getenv("RIFT_ROOT"), "images/rift-root-latest.qcow2"),
                 "disk_format": "qcow2",
                 "container_format": "bare",
@@ -300,8 +304,8 @@
         Returns:
             FlavorInfoItem
         """
-        flavor = RwcalYang.FlavorInfoItem.from_dict({
-                "name": str(uuid.uuid4()),
+        flavor = RwcalYang.YangData_RwProject_Project_VimResources_FlavorinfoList.from_dict({
+                "name": rift.auto.mano.resource_name(short_id()),
                 "vm_flavor": {
                         "memory_mb": 16392,
                         "vcpu_count": 4,
@@ -316,15 +320,15 @@
         Returns:
             VDUInitParams
         """
-        vdu = RwcalYang.VDUInitParams.from_dict({
-                "name": str(uuid.uuid4()),
+        vdu = RwcalYang.YangData_RwProject_Project_VduInitParams.from_dict({
+                "name": rift.auto.mano.resource_name(short_id()),
                 "node_id": "123456789012345",
                 "image_id": self.image_id,
                 "flavor_id": self.flavor_id,
             })
 
         c1 = vdu.connection_points.add()
-        c1.name = str(uuid.uuid4())
+        c1.name = rift.auto.mano.resource_name(short_id())
         c1.virtual_link_id = self.virtual_link_id
 
         return vdu
@@ -335,8 +339,8 @@
         Returns:
             VirtualLinkReqParams
         """
-        vlink = RwcalYang.VirtualLinkReqParams.from_dict({
-                    "name": str(uuid.uuid4()),
+        vlink = RwcalYang.YangData_RwProject_Project_VirtualLinkReqParams.from_dict({
+                    "name": rift.auto.mano.resource_name(short_id()),
                     "subnet": '192.168.1.0/24',
             })
 
@@ -382,7 +386,7 @@
         Returns:
             CloudAccount
         """
-        acct = RwcalYang.CloudAccount.from_dict({
+        acct = RwcalYang.YangData_RwProject_Project_CloudAccounts_CloudAccountList.from_dict({
             "account_type": "openstack",
             "openstack": {
                     "key": option.os_user,
@@ -408,8 +412,8 @@
         Returns:
             ImageInfoItem
         """
-        image = RwcalYang.ImageInfoItem.from_dict({
-                "name": str(uuid.uuid4()),
+        image = RwcalYang.YangData_RwProject_Project_VimResources_ImageinfoList.from_dict({
+                "name": rift.auto.mano.resource_name(short_id()),
                 "location": os.path.join(os.getenv("RIFT_ROOT"), "images/rift-root-latest.qcow2"),
                 "disk_format": "qcow2",
                 "container_format": "bare",
@@ -423,8 +427,8 @@
         Returns:
             FlavorInfoItem
         """
-        flavor = RwcalYang.FlavorInfoItem.from_dict({
-                "name": str(uuid.uuid4()),
+        flavor = RwcalYang.YangData_RwProject_Project_VimResources_FlavorinfoList.from_dict({
+                "name": rift.auto.mano.resource_name(short_id()),
                 "vm_flavor": {
                         "memory_mb": 16392,
                         "vcpu_count": 4,
@@ -441,9 +445,15 @@
             node = flavor.guest_epa.numa_node_policy.node.add()
             node.id = i
             if i == 0:
-                node.vcpu = [0, 1]
+                vcpu0 = node.vcpu.add()
+                vcpu0.id = 0
+                vcpu1 = node.vcpu.add()
+                vcpu1.id = 1
             elif i == 1:
-                node.vcpu = [2, 3]
+                vcpu2 = node.vcpu.add()
+                vcpu2.id = 2
+                vcpu3 = node.vcpu.add()
+                vcpu3.id = 3
             node.memory_mb = 8196
 
         dev = flavor.guest_epa.pcie_device.add()
@@ -458,15 +468,15 @@
         Returns:
             VDUInitParams
         """
-        vdu = RwcalYang.VDUInitParams.from_dict({
-                "name": str(uuid.uuid4()),
+        vdu = RwcalYang.YangData_RwProject_Project_VduInitParams.from_dict({
+                "name": rift.auto.mano.resource_name(short_id()),
                 "node_id": "123456789012345",
                 "image_id": self.image_id,
                 "flavor_id": self.flavor_id,
             })
 
         c1 = vdu.connection_points.add()
-        c1.name = str(uuid.uuid4())
+        c1.name = rift.auto.mano.resource_name(short_id())
         c1.virtual_link_id = self.virtual_link_id
 
         return vdu
@@ -477,8 +487,8 @@
         Returns:
             VirtualLinkReqParams
         """
-        vlink = RwcalYang.VirtualLinkReqParams.from_dict({
-                    "name": str(uuid.uuid4()),
+        vlink = RwcalYang.YangData_RwProject_Project_VirtualLinkReqParams.from_dict({
+                    "name": rift.auto.mano.resource_name(short_id()),
                     "subnet": '192.168.1.0/24',
             })
 
@@ -596,7 +606,7 @@
 
         ids = []
         for vdu in vdus.vdu_info_list:
-            status, vdu_single = cal.get_vdu(account, vdu.vdu_id)
+            status, vdu_single = cal.get_vdu(account, vdu.vdu_id, "")
             assert status == RwStatus.SUCCESS
             assert vdu_single.vdu_id == vdu.vdu_id
             ids.append(vdu.vdu_id)
@@ -607,7 +617,7 @@
         account = cloud_config.account
         cal = cloud_config.cal
 
-        vdu_modify = RwcalYang.VDUModifyParams()
+        vdu_modify = RwcalYang.YangData_RwProject_Project_VduModifyParams()
         vdu_modify.vdu_id = cloud_config.vdu_id
         c1 = vdu_modify.connection_points_add.add()
         c1.name = "c_modify1"
diff --git a/rwcal/test/cal_module_test/racfg/cal_module_test.racfg b/rwcal/test/cal_module_test/racfg/cal_module_test.racfg
index cd6d57a..a3ac4b1 100644
--- a/rwcal/test/cal_module_test/racfg/cal_module_test.racfg
+++ b/rwcal/test/cal_module_test/racfg/cal_module_test.racfg
@@ -4,8 +4,8 @@
   "target_vm":"VM",
   "test_description":"System test targeting module tests for CAL accounts",
   "run_as_root": true,
-  "status":"working",
-  "keywords":["nightly","smoke","MANO","openstack"],
+  "status":"broken",
+  "keywords":["nightly","MANO","openstack"],
   "timelimit": 2400,
   "networks":[],
   "vms":[
diff --git a/rwcal/test/cloudtool_cal.py b/rwcal/test/cloudtool_cal.py
index 92f4891..1bc9da8 100755
--- a/rwcal/test/cloudtool_cal.py
+++ b/rwcal/test/cloudtool_cal.py
@@ -167,7 +167,7 @@
             for network in netlist.networkinfo_list:
                  print(network)    
 
-            vm = RwcalYang.VMInfoItem()
+            vm = RwcalYang.YangData_RwProject_Project_VimResources_VminfoList()
             vm.vm_name = vm_name
             vm.flavor_id = size.id
             vm.image_id  = image.id
@@ -176,7 +176,7 @@
             nets = dict()
             for network in netlist.networkinfo_list:
                 if network.network_name != "public":
-                    nwitem = RwcalYang.VMInfoItem_NetworkList()			
+                    nwitem = RwcalYang.YangData_RwProject_Project_VimResources_VminfoList_NetworkList()			
                     nwitem.network_id = network.network_id		    
                     nets[network.network_name] = nwitem
                      
@@ -422,7 +422,7 @@
         
         print("creating image \"%s\" using %s ..." % \
               (cmdargs.image_name, cmdargs.file_name))
-        img = RwcalYang.ImageInfoItem()
+        img = RwcalYang.YangData_RwProject_Project_VimResources_ImageinfoList()
         img.name = cmdargs.image_name
         img.location = cmdargs.file_name
         img.disk_format = "qcow2"
@@ -452,7 +452,7 @@
             print(flv)	    
     elif cmdargs.which == 'create':
         account.openstack.key          = 'admin'    
-        flavor                                     = RwcalYang.FlavorInfoItem()
+        flavor                                     = RwcalYang.YangData_RwProject_Project_VimResources_FlavorinfoList()
         flavor.name                                = cmdargs.flavor_name
         flavor.vm_flavor.memory_mb                 = cmdargs.memory_size
         flavor.vm_flavor.vcpu_count                = cmdargs.vcpu_count
@@ -961,7 +961,7 @@
 
 
     if cmdargs.provider_type == 'OPENSTACK':
-        account                        = RwcalYang.CloudAccount()
+        account                        = RwcalYang.YangData_RwProject_Project_CloudAccounts_CloudAccountList()
         account.account_type           = "openstack"
         account.openstack.key          = cmdargs.user
         account.openstack.secret       = cmdargs.passwd
diff --git a/rwcal/test/ec2.py b/rwcal/test/ec2.py
index 59ad049..175017a 100644
--- a/rwcal/test/ec2.py
+++ b/rwcal/test/ec2.py
@@ -178,7 +178,7 @@
             kwds = {'subnet_id': __default_subnet__}
         else:
             kwds = {'network_interfaces': net_ifs}
-            print net_ifs
+            print(net_ifs)
 
         new_reservation = self._conn.run_instances(
             image_id=self._ami,
@@ -220,7 +220,7 @@
             addr = "%s.%s.10%d.0/25" % (subnet_addrs_split[0], subnet_addrs_split[1], i)
             try:
                 subnet = vpc_conn.create_subnet(vpc.id, addr)
-            except boto.exception.EC2ResponseError, e:
+            except boto.exception.EC2ResponseError as e:
                 if 'InvalidSubnet.Conflict' == e.error_code:
                     subnet = vpc_conn.get_all_subnets(filters=[('vpcId', vpc.id), ('cidrBlock', addr)])[0]
                 else:
diff --git a/rwcal/test/openstack_resources.py b/rwcal/test/openstack_resources.py
index f7fb00d..b4bc5ad 100755
--- a/rwcal/test/openstack_resources.py
+++ b/rwcal/test/openstack_resources.py
@@ -107,7 +107,7 @@
     """
     Returns cal account
     """
-    account                        = RwcalYang.CloudAccount()
+    account                        = RwcalYang.YangData_RwProject_Project_CloudAccounts_CloudAccountList()
     account.account_type           = "openstack"
     account.openstack.key          = openstack_info['username']
     account.openstack.secret       = openstack_info['password']
@@ -222,7 +222,7 @@
         Creates a VM. The VM name is derived from username
 
         """
-        vm = RwcalYang.VDUInitParams()
+        vm = RwcalYang.YangData_RwProject_Project_VduInitParams()
         vm.name = name
         vm.flavor_id = self._flavor_id
         vm.image_id  = self._image_id
@@ -239,7 +239,7 @@
         
     def create_network(self, name):
         logger.info("Creating network with name: %s" %name)
-        network                = RwcalYang.NetworkInfoItem()
+        network                = RwcalYang.YangData_RwProject_Project_VimResources_NetworkinfoList()
         network.network_name   = name
         network.subnet         = openstack_info['subnets'][openstack_info['subnet_index']]
 
@@ -265,7 +265,7 @@
         
 
     def create_image(self, location):
-        img = RwcalYang.ImageInfoItem()
+        img = RwcalYang.YangData_RwProject_Project_VimResources_ImageinfoList()
         img.name = basename(location)
         img.location = location
         img.disk_format = "qcow2"
@@ -299,7 +299,7 @@
         """
         Create Flavor suitable for rift_ping_pong VNF
         """
-        flavor = RwcalYang.FlavorInfoItem()
+        flavor = RwcalYang.YangData_RwProject_Project_VimResources_FlavorinfoList()
         flavor.name = FLAVOR_NAME
         flavor.vm_flavor.memory_mb   = 16384 # 16GB
         flavor.vm_flavor.vcpu_count  = 4 
diff --git a/rwcal/test/test_aws_image_get.py b/rwcal/test/test_aws_image_get.py
new file mode 100644
index 0000000..c9b3738
--- /dev/null
+++ b/rwcal/test/test_aws_image_get.py
@@ -0,0 +1,218 @@
+#!/usr/bin/python3
+
+# 
+#   Copyright 2016 RIFT.IO Inc
+#
+#   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.
+#
+
+
+import sys
+import rw_peas
+from gi import require_version
+require_version('RwCal', '1.0')
+
+from gi.repository import RwcalYang
+from gi.repository.RwTypes import RwStatus
+import argparse
+import logging
+import rwlogger
+
+persistent_resources = {
+    'vms'      : [],
+    'networks' : [],
+}
+
+
+RIFT_IMAGE_AMI = 'ami-7070231a'
+
+logging.basicConfig(level=logging.ERROR)
+logger = logging.getLogger('rift.cal.awsresources')
+logger.setLevel(logging.INFO)
+
+def get_cal_plugin():
+    """
+        Load AWS cal plugin
+    """
+    plugin = rw_peas.PeasPlugin('rwcal_aws', 'RwCal-1.0')
+    engine, info, extension = plugin()
+    cal = plugin.get_interface("Cloud")
+    rwloggerctx = rwlogger.RwLog.Ctx.new("Cal-Log")
+    try:
+        rc = cal.init(rwloggerctx)
+        assert rc == RwStatus.SUCCESS
+    except Exception as e:
+        logger.error("ERROR:Cal plugin instantiation failed with exception %s", repr(e))
+    else:
+        logger.info("AWS Cal plugin successfully instantiated")
+        return cal
+
+def get_cal_account(**kwargs):
+    """
+    Returns AWS cal account
+    """
+    account                        = RwcalYang.YangData_RwProject_Project_CloudAccounts_CloudAccountList()
+    account.account_type           = "aws"
+    account.aws.key = kwargs['key']
+    account.aws.secret = kwargs['secret']
+    account.aws.region = kwargs['region']
+    if 'ssh_key' in kwargs and kwargs['ssh_key'] is not None:
+        account.aws.ssh_key = kwargs['ssh_key']
+    account.aws.availability_zone = kwargs['availability_zone']
+    if 'vpcid' in kwargs and kwargs['vpcid'] is not None: 
+        account.aws.vpcid =  kwargs['vpcid']
+    if 'default_subnet_id' in kwargs and kwargs['default_subnet_id'] is not None:
+        account.aws.default_subnet_id = kwargs['default_subnet_id']
+    return account
+
+class AWSResources(object):
+    """
+    Class with methods to manage AWS resources
+    """
+    def __init__(self, **kwargs):
+        self._cal      = get_cal_plugin()
+        self._acct     = get_cal_account(**kwargs)
+
+    def get_image_list(self):
+        """
+        Get Image list 
+        """
+        logger.info("Initiating Get image list")
+        rc, rsp = self._cal.get_image_list(self._acct)
+
+        print("Return resp: rsp ", rsp)
+
+        logger.info("Get image list complete")
+
+
+    def get_image(self, image_ami_id):
+        """
+        Get Image from AMI id
+        """
+        logger.info("Initiating Get image")
+        rc, rsp = self._cal.get_image(self._acct, image_ami_id)
+
+        print("Return code: rc ", rc)
+        print("Return resp: rsp ", rsp)
+
+        logger.info("Get image complete")
+
+
+
+def main():
+    """
+    Main routine
+
+    New AWS credentials were created as follows:
+    User: aws_riftio
+    Access Key ID: AKIAJQ4D3X5WO3P6JXKA
+    Secret Access key: 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
+    Pasword: RhN*q2ze*fpY
+
+    The following AWS cloud account config can be used on LP CLI:
+       cloud account AWS account-type aws aws key AKIAJQ4D3X5WO3P6JXKA secret 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 region us-east-1 vpcid vpc-cb1cd2af ssh-key rift-awskey availability-zone us-east-1c default-subnet-id subnet-73796d04 plugin-name rwcal_aws dynamic-flavor-support true`
+    """
+    parser = argparse.ArgumentParser(description='Script to manage AWS resources')
+
+    parser.add_argument('--aws-key',
+                        action = 'store',
+                        dest = 'aws_key',
+                        type = str,
+                        help='AWS key')
+
+    parser.add_argument('--aws-secret',
+                        action = 'store',
+                        dest = 'aws_secret',
+                        type = str,
+                        help='AWS secret')
+
+    parser.add_argument('--aws-region',
+                        action = 'store',
+                        dest = 'aws_region',
+                        type = str,
+                        help='AWS region')
+
+    parser.add_argument('--aws-az',
+                        action = 'store',
+                        dest = 'aws_az',
+                        type = str,
+                        help='AWS Availability zone')
+
+    parser.add_argument('--aws-sshkey',
+                        action = 'store',
+                        dest = 'aws_sshkey',
+                        type = str,
+                        help='AWS SSH Key to login to instance')
+
+    parser.add_argument('--aws-vpcid',
+                        action = 'store',
+                        dest = 'aws_vpcid',
+                        type = str,
+                        help='AWS VPC ID to use to indicate non default VPC')
+
+    parser.add_argument('--aws-default-subnet',
+                        action = 'store',
+                        dest = 'aws_default_subnet',
+                        type = str,
+                        help='AWS Default subnet id in VPC to be used for mgmt network')
+
+    argument = parser.parse_args()
+
+    '''
+    User: aws_riftio
+    Access Key ID: AKIAJQ4D3X5WO3P6JXKA
+    Secret Access key: 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
+    Pasword: RhN*q2ze*fpY
+
+    cloud account AWS account-type aws aws key AKIAJQ4D3X5WO3P6JXKA secret 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 region us-east-1 vpcid vpc-cb1cd2af ssh-key rift-awskey availability-zone us-east-1c default-subnet-id subnet-73796d04 plugin-name rwcal_aws dynamic-flavor-support true
+    '''
+
+    argument.aws_key = "AKIAJQ4D3X5WO3P6JXKA"
+    argument.aws_secret = "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"
+    argument.aws_region = "us-east-1"
+    argument.aws_az = "us-east-1c"
+    argument.aws_sshkey = "rift-awskey"
+    argument.aws_vpcid = "vpc-cb1cd2af"
+    argument.aws_default_subnet = "subnet-73796d04"
+
+    if (argument.aws_key is None or argument.aws_secret is None or argument.aws_region is None or
+       argument.aws_az is None):
+        logger.error("Missing mandatory params. AWS Key, Secret, Region, AZ and SSH key are mandatory params")
+        sys.exit(-1)
+
+
+    ### Start processing
+    logger.info("Instantiating cloud-abstraction-layer")
+    drv = AWSResources(key=argument.aws_key, secret=argument.aws_secret, region=argument.aws_region, availability_zone = argument.aws_az, 
+                       ssh_key = argument.aws_sshkey, vpcid = argument.aws_vpcid, default_subnet_id = argument.aws_default_subnet)
+    logger.info("Instantiating cloud-abstraction-layer.......[Done]")
+
+    logger.info("Testing image list APIs")
+    drv.get_image_list()
+    logger.info("Finished testing image list APIs")
+
+    logger.info("Testing get image APIs for rift ping image - Present in Owner account")
+    drv.get_image('ami-eb0a5f81')
+    logger.info("Finished testing get image APIs")
+
+    logger.info("Testing get image APIs for public vyos image")
+    drv.get_image('ami-9ea315f6')
+    logger.info("Finished testing get image APIs")
+
+    logger.info("Testing get image APIs for public PalotAlto FW image")
+    drv.get_image('ami-34ca984f')
+    logger.info("Finished testing get image APIs")
+
+
+if __name__ == '__main__':
+    main()
diff --git a/rwcal/test/test_container_cal.py b/rwcal/test/test_container_cal.py
index 3ec5ca1..fe3105c 100644
--- a/rwcal/test/test_container_cal.py
+++ b/rwcal/test/test_container_cal.py
@@ -66,7 +66,7 @@
 
     # The account object is not currently used, but it is required by the CAL
     # interface, so we create an empty object here to represent it.
-    account = RwcalYang.CloudAccount()
+    account = RwcalYang.YangData_RwProject_Project_CloudAccounts_CloudAccountList()
     account.account_type = "lxc"
 
     # Make sure that any containers that were previously created have been
@@ -88,7 +88,7 @@
     logger.info(args.rootfs)
 
     # Create an image that can be used to create VMs
-    image = RwcalYang.ImageInfoItem()
+    image = RwcalYang.YangData_RwProject_Project_VimResources_ImageinfoList()
     image.name = 'rift-master'
     image.lxc.size = '2.5G'
     image.lxc.template_path = template
@@ -99,7 +99,7 @@
     # Create a VM
     vms = []
     for index in range(args.num_vms):
-        vm = RwcalYang.VMInfoItem()
+        vm = RwcalYang.YangData_RwProject_Project_VimResources_VminfoList()
         vm.vm_name = 'rift-s{}'.format(index + 1)
         vm.image_id = image.id
 
@@ -108,14 +108,14 @@
         vms.append(vm)
 
     # Create the default and data networks
-    network = RwcalYang.NetworkInfoItem(network_name='virbr0')
+    network = RwcalYang.YangData_RwProject_Project_VimResources_NetworkinfoList(network_name='virbr0')
     cal.create_network(account, network)
 
     os.system('/usr/sbin/brctl show')
 
     # Create pairs of ports to connect the networks
     for index, vm in enumerate(vms):
-        port = RwcalYang.PortInfoItem()
+        port = RwcalYang.YangData_RwProject_Project_VimResources_PortinfoList()
         port.port_name = "eth0"
         port.network_id = network.network_id
         port.vm_id = vm.vm_id
diff --git a/rwcal/test/test_openstack_install.py b/rwcal/test/test_openstack_install.py
index 0e4a61f..98a00f8 100644
--- a/rwcal/test/test_openstack_install.py
+++ b/rwcal/test/test_openstack_install.py
@@ -370,9 +370,9 @@
 
     def _get_cal_account(self):
         """
-        Creates an object for class RwcalYang.CloudAccount()
+        Creates an object for class RwcalYang.YangData_RwProject_Project_CloudAccounts_CloudAccountList()
         """
-        account                        = RwcalYang.CloudAccount()
+        account                        = RwcalYang.YangData_RwProject_Project_CloudAccounts_CloudAccountList()
         account.account_type           = "openstack"
         account.openstack.key          = "{}_user".format(self.test_prefix)
         account.openstack.secret       = "mypasswd"
diff --git a/rwcal/test/test_rwcal_openstack.py b/rwcal/test/test_rwcal_openstack.py
index 8278a5e..c2f54c2 100644
--- a/rwcal/test/test_rwcal_openstack.py
+++ b/rwcal/test/test_rwcal_openstack.py
@@ -43,9 +43,9 @@
 # Important information about openstack installation. This needs to be manually verified
 #
 openstack_info = {
-    'username'           : 'xxxx',
-    'password'           : 'xxxxxx',
-    'auth_url'           : 'http://10.66.4.19:5000/v2.0/',
+    'username'           : 'xxxxxx',
+    'password'           : 'xxxxx',
+    'auth_url'           : 'http://10.66.4.102:5000/v2.0/',
     'project_name'       : 'xxxxx',
     'mgmt_network'       : 'private',
     'reserved_flavor'    : 'm1.medium',
@@ -73,9 +73,9 @@
 
 def get_cal_account():
     """
-    Creates an object for class RwcalYang.CloudAccount()
+    Creates an object for class RwcalYang.YangData_RwProject_Project_CloudAccounts_CloudAccountList()
     """
-    account                          = RwcalYang.CloudAccount()
+    account                          = RwcalYang.YangData_RwProject_Project_CloudAccounts_CloudAccountList()
     account.name                     = "Gruntxx"
     account.account_type             = "openstack"
     account.openstack.key            = openstack_info['username']
@@ -236,9 +236,9 @@
 
     def _get_image_info_request(self):
         """
-        Returns request object of type RwcalYang.ImageInfoItem()
+        Returns request object of type RwcalYang.YangData_RwProject_Project_VimResources_ImageinfoList()
         """
-        img = RwcalYang.ImageInfoItem()
+        img = RwcalYang.YangData_RwProject_Project_VimResources_ImageinfoList()
         img.name = "rift.cal.unittest.image"
         img.location = '/net/sharedfiles/home1/common/vm/rift-root-latest.qcow2'
         img.disk_format = "qcow2"
@@ -286,9 +286,9 @@
 
     def _get_flavor_info_request(self):
         """
-        Returns request object of type RwcalYang.FlavorInfoItem()
+        Returns request object of type RwcalYang.YangData_RwProject_Project_VimResources_FlavorinfoList()
         """
-        flavor                                     = RwcalYang.FlavorInfoItem()
+        flavor                                     = RwcalYang.YangData_RwProject_Project_VimResources_FlavorinfoList()
         flavor.name                                = 'rift.cal.unittest.flavor'
         flavor.vm_flavor.memory_mb                 = 16384 # 16GB
         flavor.vm_flavor.vcpu_count                = 4
@@ -363,7 +363,7 @@
         """
         Returns request object of type RwcalYang.VMInfoItem
         """
-        vm = RwcalYang.VMInfoItem()
+        vm = RwcalYang.YangData_RwProject_Project_VimResources_VminfoList()
         vm.vm_name = 'rift.cal.unittest.vm'
         vm.flavor_id = flavor_id
         vm.image_id  = image_id
@@ -695,9 +695,9 @@
 
     def _get_network_info_request(self):
         """
-        Returns request object of type RwcalYang.NetworkInfoItem
+        Returns request object of type RwcalYang.YangData_RwProject_Project_VimResources_NetworkinfoList
         """
-        network                            = RwcalYang.NetworkInfoItem()
+        network                            = RwcalYang.YangData_RwProject_Project_VimResources_NetworkinfoList()
         network.network_name               = 'rift.cal.unittest.network'
         network.subnet                     = '192.168.16.0/24'
         if openstack_info['physical_network']:
@@ -762,9 +762,9 @@
 
     def _get_port_info_request(self, network_id, vm_id):
         """
-        Returns an object of type RwcalYang.PortInfoItem
+        Returns an object of type RwcalYang.YangData_RwProject_Project_VimResources_PortinfoList
         """
-        port = RwcalYang.PortInfoItem()
+        port = RwcalYang.YangData_RwProject_Project_VimResources_PortinfoList()
         port.port_name = 'rift.cal.unittest.port'
         port.network_id = network_id
         if vm_id != None:
@@ -887,10 +887,14 @@
         """
         logger.info("Openstack-CAL-Test: Test Get VDU List APIs")
         rc, rsp = self.cal.get_vdu_list(self._acct)
-        self.assertEqual(rc, RwStatus.SUCCESS)
+        self.assertEqual(rc.status, RwStatus.SUCCESS)
         logger.info("Openstack-CAL-Test: Received %d VDUs" %(len(rsp.vdu_info_list)))
         for vdu in rsp.vdu_info_list:
-            rc, vdu2 = self.cal.get_vdu(self._acct, vdu.vdu_id)
+            rc, vdu2 = self.cal.get_vdu(self._acct, vdu.vdu_id, "")
+            self.assertEqual(rc.status, RwStatus.SUCCESS)
+            # Make changes for the third argument (currently None for mgmt_network).
+            # This is the mgmt_network published in the vdur (vdu.mgmt_network).
+            # Pass accordingly as per the use case of the test. 
             self.assertEqual(vdu2.vdu_id, vdu.vdu_id)
 
 
@@ -909,9 +913,9 @@
 
     def _get_virtual_link_request_info(self):
         """
-        Returns object of type RwcalYang.VirtualLinkReqParams
+        Returns object of type RwcalYang.YangData_RwProject_Project_VirtualLinkReqParams
         """
-        vlink = RwcalYang.VirtualLinkReqParams()
+        vlink = RwcalYang.YangData_RwProject_Project_VirtualLinkReqParams()
         vlink.name = 'rift.cal.virtual_link'
         vlink.subnet = '192.168.1.0/24'
         if openstack_info['physical_network']:
@@ -925,9 +929,9 @@
 
     def _get_vdu_request_info(self, virtual_link_id):
         """
-        Returns object of type RwcalYang.VDUInitParams
+        Returns object of type RwcalYang.YangData_RwProject_Project_VduInitParams
         """
-        vdu = RwcalYang.VDUInitParams()
+        vdu = RwcalYang.YangData_RwProject_Project_VduInitParams()
         vdu.name = "cal.vdu"
         vdu.node_id = OpenStackTest.NodeID
         vdu.image_id = self._image.id
@@ -963,9 +967,9 @@
 
     def _get_vdu_modify_request_info(self, vdu_id, virtual_link_id):
         """
-        Returns object of type RwcalYang.VDUModifyParams
+        Returns object of type RwcalYang.YangData_RwProject_Project_VduModifyParams
         """
-        vdu = RwcalYang.VDUModifyParams()
+        vdu = RwcalYang.YangData_RwProject_Project_VduModifyParams()
         vdu.vdu_id = vdu_id
         c1 = vdu.connection_points_add.add()
         c1.name = "c_modify1"
@@ -975,9 +979,9 @@
 
     def _get_rbsh_vdu_request_info(self, vlink_list):
           """
-          Returns object of type RwcalYang.VDUInitParams
+          Returns object of type RwcalYang.YangData_RwProject_Project_VduInitParams
           """
-          vdu = RwcalYang.VDUInitParams()
+          vdu = RwcalYang.YangData_RwProject_Project_VduInitParams()
           vdu.name = "cal_rbsh_vdu"
           vdu.vm_flavor.memory_mb = 2048
           vdu.vm_flavor.vcpu_count = 1
@@ -1034,7 +1038,7 @@
           logger.info("Openstack-CAL-Test: Test Create Virtual Link API")
           vlink_list = []
           for ctr in range(3):
-             vlink = RwcalYang.VirtualLinkReqParams()
+             vlink = RwcalYang.YangData_RwProject_Project_VirtualLinkReqParams()
              vlink.name = 'rift.cal.virtual_link' + str(ctr)
              vlink.subnet = '11.0.{}.0/24'.format(str(1 + ctr))
 
@@ -1062,7 +1066,11 @@
           test_vdu_id = rsp
 
           ## Check if VDU get is successful
-          rc, rsp = self.cal.get_vdu(self._acct, test_vdu_id)
+          rc, rsp = self.cal.get_vdu(self._acct, test_vdu_id, "")
+          # Make changes for the third argument (currently None for mgmt_network).
+          # This is the mgmt_network published in the vdur (vdu.mgmt_network).
+          # Pass accordingly as per the use case of the test. 
+          self.assertEqual(rc.status, RwStatus.SUCCESS)
           logger.debug("Get VDU response %s", rsp)
           self.assertEqual(rsp.vdu_id, test_vdu_id)
 
@@ -1073,8 +1081,11 @@
           vdu_state = 'inactive'
           cp_state = 'inactive'
           for i in range(15):
-              rc, rsp = self.cal.get_vdu(self._acct, test_vdu_id)
-              self.assertEqual(rc, RwStatus.SUCCESS)
+              rc, rsp = self.cal.get_vdu(self._acct, test_vdu_id, "")
+              # Make changes for the third argument (currently None for mgmt_network).
+              # This is the mgmt_network published in the vdur (vdu.mgmt_network).
+              # Pass accordingly as per the use case of the test. 
+              self.assertEqual(rc.status, RwStatus.SUCCESS)
               logger.info("Openstack-CAL-Test: Iter %d VDU with id : %s. Reached State :  %s, mgmt ip %s" %(i, test_vdu_id, rsp.state, rsp.management_ip))
               if (rsp.state == 'active') and ('management_ip' in rsp) and ('public_ip' in rsp):
                   vdu_state = 'active'
@@ -1094,7 +1105,7 @@
 
           ### Check vdu list as well
           rc, rsp = self.cal.get_vdu_list(self._acct)
-          self.assertEqual(rc, RwStatus.SUCCESS)
+          self.assertEqual(rc.status, RwStatus.SUCCESS)
           found = False
           logger.debug("Get VDU response %s", rsp)
           for vdu in rsp.vdu_info_list:
@@ -1103,7 +1114,7 @@
           self.assertEqual(found, True)
           logger.info("Openstack-CAL-Test: Passed VDU list" )
 
-    @unittest.skip("Skipping test_create_delete_virtual_link_and_vdu")
+    #@unittest.skip("Skipping test_create_delete_virtual_link_and_vdu")
     def test_create_delete_virtual_link_and_vdu(self):
         """
         Test to create VDU
@@ -1132,18 +1143,30 @@
         vdu_id = rsp
 
         ## Check if VDU create is successful
-        rc, rsp = self.cal.get_vdu(self._acct, rsp)
+        rc, rsp = self.cal.get_vdu(self._acct, rsp, "")
+        # Make changes for the third argument (currently None for mgmt_network).
+        # This is the mgmt_network published in the vdur (vdu.mgmt_network).
+        # Pass accordingly as per the use case of the test. 
+            
+        self.assertEqual(rc.status, RwStatus.SUCCESS)
         self.assertEqual(rsp.vdu_id, vdu_id)
 
         ### Wait until vdu_state is active
         for i in range(50):
-            rc, rs = self.cal.get_vdu(self._acct, vdu_id)
-            self.assertEqual(rc, RwStatus.SUCCESS)
+            rc, rs = self.cal.get_vdu(self._acct, vdu_id, "")
+            self.assertEqual(rc.status, RwStatus.SUCCESS)
+            # Make changes for the third argument (currently None for mgmt_network).
+            # This is the mgmt_network published in the vdur (vdu.mgmt_network).
+            # Pass accordingly as per the use case of the test. 
+            self.assertEqual(rc.status, RwStatus.SUCCESS)
             logger.info("Openstack-CAL-Test: VDU with id : %s. Reached State :  %s" %(vdu_id, rs.state))
             if rs.state == 'active':
                 break
-        rc, rs = self.cal.get_vdu(self._acct, vdu_id)
-        self.assertEqual(rc, RwStatus.SUCCESS)
+        rc, rs = self.cal.get_vdu(self._acct, vdu_id, "")
+        # Make changes for the third argument (currently None for mgmt_network).
+        # This is the mgmt_network published in the vdur (vdu.mgmt_network).
+        # Pass accordingly as per the use case of the test. 
+        self.assertEqual(rc.status, RwStatus.SUCCESS)
         self.assertEqual(rs.state, 'active')
         logger.info("Openstack-CAL-Test: VDU with id : %s reached expected state  : %s" %(vdu_id, rs.state))
         logger.info("Openstack-CAL-Test: VDUInfo: %s" %(rs))
@@ -1174,7 +1197,7 @@
         time.sleep(5)
         ### Verify that VDU and virtual link are successfully deleted
         rc, rsp = self.cal.get_vdu_list(self._acct)
-        self.assertEqual(rc, RwStatus.SUCCESS)
+        self.assertEqual(rc.status, RwStatus.SUCCESS)
         for vdu in rsp.vdu_info_list:
             self.assertNotEqual(vdu.vdu_id, vdu_id)
 
@@ -1188,9 +1211,9 @@
 
     def _get_vol_vdu_request_info(self, vlink_list):
           """
-          Returns object of type RwcalYang.VDUInitParams
+          Returns object of type RwcalYang.YangData_RwProject_Project_VduInitParams
           """
-          vdu = RwcalYang.VDUInitParams()
+          vdu = RwcalYang.YangData_RwProject_Project_VduInitParams()
           vdu.name = "cal_vdu"
           vdu.vm_flavor.memory_mb = 512
           vdu.vm_flavor.vcpu_count = 1
@@ -1230,7 +1253,7 @@
           """
           logger.info("Openstack-CAL-Test: Test Create Virtual Link API")
           vlink_list = []
-          vlink = RwcalYang.VirtualLinkReqParams()
+          vlink = RwcalYang.YangData_RwProject_Project_VirtualLinkReqParams()
           vlink.name = 'rift.cal.virtual_link' 
           vlink.subnet = '11.0.1.0/24'
 
@@ -1258,7 +1281,12 @@
           test_vdu_id = rsp
 
           ## Check if VDU get is successful
-          rc, rsp = self.cal.get_vdu(self._acct, test_vdu_id)
+          rc, rsp = self.cal.get_vdu(self._acct, test_vdu_id, "")
+          self.assertEqual(rc.status, RwStatus.SUCCESS)
+          # Make changes for the third argument (currently None for mgmt_network).
+          # This is the mgmt_network published in the vdur (vdu.mgmt_network).
+          # Pass accordingly as per the use case of the test. 
+            
           logger.debug("Get VDU response %s", rsp)
           self.assertEqual(rsp.vdu_id, test_vdu_id)
 
@@ -1269,8 +1297,11 @@
           vdu_state = 'inactive'
           cp_state = 'inactive'
           for i in range(5):
-              rc, rsp = self.cal.get_vdu(self._acct, test_vdu_id)
-              self.assertEqual(rc, RwStatus.SUCCESS)
+              rc, rsp = self.cal.get_vdu(self._acct, test_vdu_id, "")
+              # Make changes for the third argument (currently None for mgmt_network).
+              # This is the mgmt_network published in the vdur (vdu.mgmt_network).
+              # Pass accordingly as per the use case of the test. 
+              self.assertEqual(rc.status, RwStatus.SUCCESS)
               logger.info("Openstack-CAL-Test: VDU with id : %s. Reached State :  %s, mgmt ip %s" %(test_vdu_id, rsp.state, rsp.management_ip))
               if (rsp.state == 'active') and ('management_ip' in rsp) and ('public_ip' in rsp):
                   vdu_state = 'active'
@@ -1294,7 +1325,7 @@
 
           ### Check vdu list as well
           rc, rsp = self.cal.get_vdu_list(self._acct)
-          self.assertEqual(rc, RwStatus.SUCCESS)
+          self.assertEqual(rc.status, RwStatus.SUCCESS)
           found = False
           logger.debug("Get VDU response %s", rsp)
           for vdu in rsp.vdu_info_list: