Shorten VDU names

Change-Id: Ibad9e8abcb1deaf149f4990525518ae5df598ac8
Signed-off-by: chamarty <ravi.chamarty@riftio.com>
diff --git a/rwcal/plugins/vala/rwcal_openstack/rift/rwcal/openstack/utils/compute.py b/rwcal/plugins/vala/rwcal_openstack/rift/rwcal/openstack/utils/compute.py
index fc053c2..5538201 100644
--- a/rwcal/plugins/vala/rwcal_openstack/rift/rwcal/openstack/utils/compute.py
+++ b/rwcal/plugins/vala/rwcal_openstack/rift/rwcal/openstack/utils/compute.py
@@ -283,6 +283,12 @@
         }
         """
         kwargs = dict()
+        metadata = dict()
+
+        if vdu_params.has_field('node_id'):
+            metadata['rift_node_id'] = vdu_params.node_id
+            kwargs['metadata'] = metadata
+
         if vdu_params.has_field('vdu_init') and vdu_params.vdu_init.has_field('userdata'):
             kwargs['userdata'] = vdu_params.vdu_init.userdata
         else:
@@ -302,11 +308,15 @@
         else:
             kwargs['config_drive'] = False
 
-        if vdu_params.supplemental_boot_data.has_field('custom_meta_data'):
-            metadata = dict()
-            for cm in vdu_params.supplemental_boot_data.custom_meta_data:
-                metadata[cm] = cm.value                
-            kwargs['metadata'] = metadata
+        try:
+            # Rift model only
+            if vdu_params.supplemental_boot_data.has_field('custom_meta_data'):
+                metadata = dict()
+                for cm in vdu_params.supplemental_boot_data.custom_meta_data:
+                    metadata[cm.name] = cm.value
+                    kwargs['metadata'] = metadata
+        except Exception as e:
+            pass
 
         return kwargs
 
@@ -490,6 +500,38 @@
         else:
             return str()
 
+    def _parse_vdu_boot_config_data(self, vm_info):
+        """
+        Parses VDU supplemental boot data
+        Arguments:
+          vm_info : A dictionary returned by novaclient library listing VM attributes
+
+        Returns:
+          List of RwcalYang.VDUInfoParams_SupplementalBootData()
+        """
+        supplemental_boot_data = None
+        node_id = None
+        if 'config_drive' in vm_info:
+            supplemental_boot_data = RwcalYang.VDUInfoParams_SupplementalBootData()
+            supplemental_boot_data.boot_data_drive = vm_info['config_drive']
+        # Look for any metadata
+        if 'metadata' not in vm_info:
+            return node_id, supplemental_boot_data
+        if supplemental_boot_data is None:
+            supplemental_boot_data = RwcalYang.VDUInfoParams_SupplementalBootData()
+        for key, value in vm_info['metadata'].items():
+            if key == 'rift_node_id':
+                node_id = value
+            else:
+                try:
+                    # rift only
+                    cm = supplemental_boot_data.custom_meta_data.add()
+                    cm.name = key
+                    cm.value = str(value)
+                except Exception as e:
+                    pass
+        return node_id, supplemental_boot_data 
+
     def _parse_vdu_volume_info(self, vm_info):
         """
         Get VDU server group information
@@ -595,6 +637,8 @@
                 ha = vdu.host_aggregate.add()
                 ha.from_dict(aggr.as_dict())
 
+        vdu.node_id, vdu.supplemental_boot_data = self._parse_vdu_boot_config_data(vm_info)
+
         cp_list = self._parse_vdu_cp_info(vdu.vdu_id)
         for cp in cp_list:
             vdu.connection_points.append(cp)
diff --git a/rwcal/test/test_rwcal_openstack.py b/rwcal/test/test_rwcal_openstack.py
index 6b0a247..654e1a3 100644
--- a/rwcal/test/test_rwcal_openstack.py
+++ b/rwcal/test/test_rwcal_openstack.py
@@ -28,7 +28,7 @@
 
 from gi.repository import RwcalYang
 from gi.repository.RwTypes import RwStatus
-from rift.rwcal.openstack.openstack_drv import KeystoneDriver, NovaDriver, KeystoneDriverV3, KeystoneDriverV2
+#from rift.rwcal.openstack.openstack_drv import KeystoneDriver, NovaDriver, KeystoneDriverV3, KeystoneDriverV2
 
 logger = logging.getLogger('rwcal-openstack')
 
@@ -43,10 +43,10 @@
 # Important information about openstack installation. This needs to be manually verified
 #
 openstack_info = {
-    'username'           : 'pluto',
-    'password'           : 'mypasswd',
-    'auth_url'           : 'http://10.66.4.17:5000/v3/',
-    'project_name'       : 'demo',
+    'username'           : 'xxxxxx',
+    'password'           : 'xxxxxx',
+    'auth_url'           : 'http://10.66.4.102:5000/v2.0/',
+    'project_name'       : 'xxxxxx',
     'mgmt_network'       : 'private',
     'reserved_flavor'    : 'm1.medium',
     'reserved_image'     : 'Fedora-x86_64-20-20131211.1-sda-ping.qcow2',
@@ -544,6 +544,7 @@
         rc = self.cal.do_delete_flavor(self._acct, flavor_id)
         self.assertEqual(rc, RwStatus.SUCCESS)
 
+    '''
     @unittest.skip("Skipping test_expiry_token")
     def test_expiry_token(self):
         """
@@ -664,6 +665,7 @@
         except Exception: 
             auth_exp = True
         self.assertFalse(auth_exp)
+    '''
 
     @unittest.skip("Skipping test_vm_operations")
     def test_vm_operations(self):
@@ -929,17 +931,23 @@
         vdu.name = "cal.vdu"
         vdu.node_id = OpenStackTest.NodeID
         vdu.image_id = self._image.id
+        vdu.vm_flavor.memory_mb = 512
+        vdu.vm_flavor.vcpu_count = 1
+        vdu.vm_flavor.storage_gb = 4 
         vdu.flavor_id = self._flavor.id
         vdu.vdu_init.userdata = PING_USERDATA
         vdu.allocate_public_address = True
-        meta1 = vdu.supplemental_boot_data.custom_meta_data.add()
-        meta1.name = "EMS_IP"
-        meta1.data_type = "STRING"
-        meta1.value = "10.5.6.6"
-        #meta2 = vdu.supplemental_boot_data.custom_meta_data.add()
-        #meta2.name = "Cluster_data"
-        #meta2.data_type = "JSON"
-        #meta2.value = '''{ "cluster_id": "12" , "vnfc_id": "112" }'''
+        try:
+            meta1 = vdu.supplemental_boot_data.custom_meta_data.add()
+            meta1.name = "EMS_IP"
+            meta1.data_type = "STRING"
+            meta1.value = "10.5.6.6"
+            #meta2 = vdu.supplemental_boot_data.custom_meta_data.add()
+            #meta2.name = "Cluster_data"
+            #meta2.data_type = "JSON"
+            #meta2.value = '''{ "cluster_id": "12" , "vnfc_id": "112" }'''
+        except Exception as e:
+            pass
         #vdu.supplemental_boot_data.boot_data_drive = True
         customfile1 = vdu.supplemental_boot_data.config_file.add()
         customfile1.source = "abcdef124"
@@ -965,7 +973,7 @@
 
         return vdu
 
-    @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
@@ -1054,7 +1062,9 @@
           """
           vdu = RwcalYang.VDUInitParams()
           vdu.name = "cal_vdu"
-          vdu.flavor_id = self._flavor.id
+          vdu.vm_flavor.memory_mb = 512
+          vdu.vm_flavor.vcpu_count = 1
+          vdu.vm_flavor.storage_gb = 4 
           vdu.allocate_public_address = True
           ctr = 0
           for vl in vlink_list:
@@ -1068,16 +1078,22 @@
           vol0.name = "vda"
           vol0.image = openstack_info['reserved_image']
           vol0.size = 10
-          vol0.boot_priority = 0
+          try:
+              vol0.boot_priority = 0
+          except Exception as e:
+              pass
           vol0.device_type = "disk"
-          meta1 = vol0.custom_meta_data.add()
-          meta1.name = "fs_type"
-          meta1.data_type = "STRING"
-          meta1.value = "ext4"
+          try:
+             meta1 = vol0.custom_meta_data.add()
+             meta1.name = "fs_type"
+             meta1.data_type = "STRING"
+             meta1.value = "ext4"
+          except Exception as e:
+             pass
 
           return vdu
 
-    #@unittest.skip("Skipping test_create_vol_vdu")
+    @unittest.skip("Skipping test_create_vol_vdu")
     def test_create_vol_vdu(self):
           """
           Test to create VDU with mgmt port using Volumes