First set of OSM model changes for multi-disk/config-files/etc.
[osm/SO.git] / rwlaunchpad / plugins / rwvnfm / rift / tasklets / rwvnfmtasklet / rwvnfmtasklet.py
index e493d3a..e0de7b0 100755 (executable)
@@ -425,24 +425,22 @@ class VirtualDeploymentUnitRecord(object):
                            metadata_list = list()
                            for metadata_item in opvolume.custom_meta_data:
                                metadata_list.append(metadata_item.as_dict())
-                           if 'guest_params' not in vdurvol_data[0]:
-                               vdurvol_data[0]['guest_params'] = dict()
-                           vdurvol_data[0]['guest_params']['custom_meta_data'] = metadata_list
-
-            if self._vm_resp.has_field('custom_boot_data'):
-                vdur_dict['custom_boot_data'] = dict()
-                if self._vm_resp.custom_boot_data.has_field('custom_drive'):
-                    vdur_dict['custom_boot_data']['custom_drive'] = self._vm_resp.custom_boot_data.custom_drive
-                if self._vm_resp.custom_boot_data.has_field('custom_meta_data'):
+                           vdurvol_data[0]['custom_meta_data'] = metadata_list
+
+            if self._vm_resp.has_field('supplemental_boot_data'):
+                vdur_dict['supplemental_boot_data'] = dict()
+                if self._vm_resp.supplemental_boot_data.has_field('boot_data_drive'):
+                    vdur_dict['supplemental_boot_data']['boot_data_drive'] = self._vm_resp.supplemental_boot_data.boot_data_drive
+                if self._vm_resp.supplemental_boot_data.has_field('custom_meta_data'):
                     metadata_list = list()
-                    for metadata_item in self._vm_resp.custom_boot_data.custom_meta_data:
+                    for metadata_item in self._vm_resp.supplemental_boot_data.custom_meta_data:
                        metadata_list.append(metadata_item.as_dict())
-                    vdur_dict['custom_boot_data']['custom_meta_data'] = metadata_list
-                if self._vm_resp.custom_boot_data.has_field('custom_config_files'):
+                    vdur_dict['supplemental_boot_data']['custom_meta_data'] = metadata_list
+                if self._vm_resp.supplemental_boot_data.has_field('config_file'):
                     file_list = list()
-                    for file_item in self._vm_resp.custom_boot_data.custom_config_files:
+                    for file_item in self._vm_resp.supplemental_boot_data.config_file:
                        file_list.append(file_item.as_dict())
-                    vdur_dict['custom_boot_data']['custom_config_files'] = file_list
+                    vdur_dict['supplemental_boot_data']['config_file'] = file_list
 
         icp_list = []
         ii_list = []
@@ -466,13 +464,13 @@ class VirtualDeploymentUnitRecord(object):
 
         ei_list = []
         for intf, cp, vlr in self._ext_intf:
-            ei_list.append({"name": cp,
-                            "vnfd_connection_point_ref": cp,
+            ei_list.append({"name": cp.name,
+                            "vnfd_connection_point_ref": cp.name,
                             "virtual_interface": {}})
-            self._vnfr.update_cp(cp,
-                                 self.cp_ip_addr(cp),
-                                 self.cp_mac_addr(cp),
-                                 self.cp_id(cp))
+            self._vnfr.update_cp(cp.name,
+                                 self.cp_ip_addr(cp.name),
+                                 self.cp_mac_addr(cp.name),
+                                 self.cp_id(cp.name))
 
         vdur_dict["external_interface"] = ei_list
 
@@ -577,24 +575,24 @@ class VirtualDeploymentUnitRecord(object):
 
     def process_custom_bootdata(self, vm_create_msg_dict):
         """Process the custom boot data"""
-        if 'custom_config_files' not in vm_create_msg_dict['custom_boot_data']:
+        if 'config_file' not in vm_create_msg_dict['supplemental_boot_data']:
             return
 
+        self._vnfd_package_store.refresh()
         stored_package = self._vnfd_package_store.get_package(self._vnfr.vnfd_id)
-        script_extractor = rift.package.script.PackageScriptExtractor(self._log)
-        for custom_file_item in vm_create_msg_dict['custom_boot_data']['custom_config_files']:
-            if 'source' not in custom_file_item or 'dest' not in custom_file_item:
+        cloud_init_extractor = rift.package.cloud_init.PackageCloudInitExtractor(self._log)
+        for file_item in vm_create_msg_dict['supplemental_boot_data']['config_file']:
+            if 'source' not in file_item or 'dest' not in file_item:
                 continue
-            source = custom_file_item['source']
+            source = file_item['source']
             # Find source file in scripts dir of VNFD
-            self._vnfd_package_store.refresh()
             self._log.debug("Checking for source config file at %s", source)
             try:
-               source_file_str = script_extractor.read_script(stored_package, source)
-            except rift.package.script.ScriptExtractionError as e:
+               source_file_str = cloud_init_extractor.read_script(stored_package, source)
+            except rift.package.cloud_init.CloudInitExtractionError as e:
                raise  VirtualDeploymentUnitRecordError(e)
             # Update source file location with file contents
-            custom_file_item['source'] = source_file_str
+            file_item['source'] = source_file_str
 
         return
 
@@ -605,7 +603,7 @@ class VirtualDeploymentUnitRecord(object):
                       "hypervisor_epa",
                       "host_epa",
                       "volumes",
-                      "custom_boot_data"]
+                      "supplemental_boot_data"]
 
         self._log.debug("Creating params based on VDUD: %s", self._vdud)
         vdu_copy_dict = {k: v for k, v in self._vdud.as_dict().items() if k in vdu_fields}
@@ -633,9 +631,10 @@ class VirtualDeploymentUnitRecord(object):
 
         cp_list = []
         for intf, cp, vlr in self._ext_intf:
-            cp_info = {"name": cp,
+            cp_info = {"name": cp.name,
                        "virtual_link_id": vlr.network_id,
-                       "type_yang": intf.virtual_interface.type_yang}
+                       "type_yang": intf.virtual_interface.type_yang,
+                       "port_security_enabled": cp.port_security_enabled}
 
             if (intf.virtual_interface.has_field('vpci') and
                     intf.virtual_interface.vpci is not None):
@@ -656,13 +655,14 @@ class VirtualDeploymentUnitRecord(object):
             else:
                 cp_list.append({"name": cp,
                                 "virtual_link_id": vlr.network_id,
-                                "type_yang": intf.virtual_interface.type_yang})
+                                "type_yang": intf.virtual_interface.type_yang,
+                                "port_security_enabled": cp.port_security_enabled})
 
         vm_create_msg_dict["connection_points"] = cp_list
         vm_create_msg_dict.update(vdu_copy_dict)
 
         self.process_placement_groups(vm_create_msg_dict)
-        if 'custom_boot_data' in vm_create_msg_dict:
+        if 'supplemental_boot_data' in vm_create_msg_dict:
              self.process_custom_bootdata(vm_create_msg_dict) 
 
         msg = RwResourceMgrYang.VDUEventData()
@@ -781,7 +781,7 @@ class VirtualDeploymentUnitRecord(object):
 
             vlr = vnfr.ext_vlr_by_id(cp.vlr_ref)
 
-            etuple = (ext_intf, cp.name, vlr)
+            etuple = (ext_intf, cp, vlr)
             self._ext_intf.append(etuple)
 
             self._log.debug("Created external interface tuple  : %s", etuple)
@@ -1798,7 +1798,7 @@ class VirtualNetworkFunctionRecord(object):
 
             def cpr_from_cp(cp):
                 """ Creates a record level connection point from the desciptor cp"""
-                cp_fields = ["name", "image", "vm-flavor"]
+                cp_fields = ["name", "image", "vm-flavor", "port_security_enabled"]
                 cp_copy_dict = {k: v for k, v in cp.as_dict().items() if k in cp_fields}
                 cpr_dict = {}
                 cpr_dict.update(cp_copy_dict)