def setup(self): self.vmware = VmwareSettingsTemplate()
def _create_vmware_settings_file(self): """ In order to run a vmdk image in VMware products a settings file is needed or the possibility to convert machine settings into an ovf via VMware's proprietary ovftool """ template_record = { 'display_name': self.xml_state.xml_data.get_displayname() or self.xml_state.xml_data.get_name(), 'vmdk_file': self.get_target_name_for_format(self.image_format), 'virtual_hardware_version': '9', 'guest_os': 'suse-64', 'disk_id': '0' } # Basic setup machine_setup = self.xml_state.get_build_type_machine_section() memory_setup = None cpu_setup = None if machine_setup: memory_setup = machine_setup.get_memory() hardware_version = machine_setup.get_HWversion() guest_os = machine_setup.get_guestOS() cpu_setup = machine_setup.get_ncpus() if hardware_version: template_record['virtual_hardware_version'] = hardware_version if guest_os: template_record['guest_os'] = guest_os if memory_setup: template_record['memory_size'] = memory_setup if cpu_setup: template_record['number_of_cpus'] = cpu_setup # CD/DVD setup iso_setup = self.xml_state.get_build_type_vmdvd_section() iso_controller = 'ide' if iso_setup: iso_controller = iso_setup.get_controller() or iso_controller template_record['iso_id'] = iso_setup.get_id() # Network setup network_setup = self.xml_state.get_build_type_vmnic_section() network_driver = None network_connection_type = None network_mac = 'generated' if network_setup: network_driver = network_setup.get_driver() network_connection_type = network_setup.get_mode() network_mac = network_setup.get_mac() or network_mac template_record['nic_id'] = network_setup.get_interface() or '0' template_record['mac_address'] = \ network_mac template_record['network_connection_type'] = \ network_connection_type template_record['network_driver'] = \ network_driver # Disk setup disk_setup = self.xml_state.get_build_type_vmdisk_section() disk_controller = 'ide' if disk_setup: disk_controller = disk_setup.get_controller() or disk_controller disk_id = disk_setup.get_id() if not disk_controller == 'ide': template_record['scsi_controller_name'] = disk_controller if disk_id: template_record['disk_id'] = disk_id # Addition custom entries custom_entries = self.xml_state.get_build_type_vmconfig_entries() # Build settings template and write settings file settings_template = VmwareSettingsTemplate().get_template( memory_setup, cpu_setup, network_setup, iso_setup, disk_controller, iso_controller, network_mac, network_driver, network_connection_type) try: settings_file = self.get_target_name_for_format('vmx') with open(settings_file, 'w') as config: config.write(settings_template.substitute(template_record)) for custom_entry in custom_entries: config.write(custom_entry + os.linesep) except Exception as e: raise KiwiTemplateError('%s: %s' % (type(e).__name__, format(e)))