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