Source code for kiwi.storage.subformat.template.vmware_settings

# Copyright (c) 2015 SUSE Linux GmbH.  All rights reserved.
#
# This file is part of kiwi.
#
# kiwi is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# kiwi is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with kiwi.  If not, see <http://www.gnu.org/licenses/>
#
from string import Template
from textwrap import dedent


[docs] class VmwareSettingsTemplate: """ VMware machine settings template """ def __init__(self): self.cr = '\n' self.header = dedent(''' #!/usr/bin/env vmware # kiwi generated VMware settings file config.version = "8" tools.syncTime = "true" uuid.action = "create" virtualHW.version = "${virtual_hardware_version}" displayName = "${display_name}" guestOS = "${guest_os}" ''').strip() + self.cr self.ide_disk = dedent(''' ide${disk_id}:0.present = "true" ide${disk_id}:0.fileName= "${vmdk_file}" ide${disk_id}:0.redo = "" ''').strip() + self.cr self.scsi_disk = dedent(''' scsi${disk_id}.present = "true" scsi${disk_id}.sharedBus = "none" scsi${disk_id}.virtualDev = "${scsi_controller_name}" scsi${disk_id}:0.present = "true" scsi${disk_id}:0.fileName = "${vmdk_file}" scsi${disk_id}:0.deviceType = "scsi-hardDisk" ''').strip() + self.cr self.network = dedent(''' ethernet{nic_id}.present = "true" ethernet{nic_id}.allow64bitVmxnet = "true" ''').strip() + self.cr self.network_mac_static = dedent(''' ethernet{nic_id}.addressType = "static" ethernet{nic_id}.address = "{mac_address}" ''').strip() + self.cr self.network_mac_generated = dedent(''' ethernet{nic_id}.addressType = "generated" ''').strip() + self.cr self.network_driver = dedent(''' ethernet{nic_id}.virtualDev = "{network_driver}" ''').strip() + self.cr self.network_connection_type = dedent(''' ethernet{nic_id}.connectionType = "{mode}" ''').strip() + self.cr self.memory = dedent(''' memsize = "${memory_size}" ''').strip() + self.cr self.number_of_cpus = dedent(''' numvcpus = "${number_of_cpus}" ''').strip() + self.cr self.ide_iso = dedent(''' ide${iso_id}:0.present = "true" ide${iso_id}:0.deviceType = "cdrom-raw" ide${iso_id}:0.autodetect = "true" ide${iso_id}:0.startConnected = "true" ''').strip() + self.cr self.scsi_iso = dedent(''' scsi${iso_id}:0.present = "true" scsi${iso_id}:0.deviceType = "cdrom-raw" scsi${iso_id}:0.autodetect = "true" scsi${iso_id}:0.startConnected = "true" ''').strip() + self.cr self.usb = dedent(''' usb.present = "true" ''').strip() + self.cr self.defaults = dedent(''' priority.grabbed = "normal" priority.ungrabbed = "normal" powerType.powerOff = "soft" powerType.powerOn = "soft" powerType.suspend = "soft" powerType.reset = "soft" ''').strip() + self.cr
[docs] def get_template( self, memory_setup=False, cpu_setup=False, network_setup=False, iso_setup=False, disk_controller='ide', iso_controller='ide' ): """ VMware machine configuration template :param bool memory_setup: with main memory setup true|false :param bool cpu_setup: with number of CPU's setup true|false :param bool network_setup: with network emulation true|false :param bool iso_setup: with CD/DVD drive emulation true|false :param string disk_controller: add disk controller setup to template :param string iso_controller: add CD/DVD controller setup to template :param string network_mac: add static MAC address setup to template :param string network_driver: add network driver setup to template :param string network_connection_type: add connection type to template :rtype: Template """ template_data = self.header template_data += self.defaults if memory_setup: template_data += self.memory if cpu_setup: template_data += self.number_of_cpus if disk_controller == 'ide': template_data += self.ide_disk else: template_data += self.scsi_disk if network_setup: for nic_id, nic_setup in list(network_setup.items()): template_data += self.network.format(nic_id=nic_id) if nic_setup['mac'] == 'generated': template_data += self.network_mac_generated.format( nic_id=nic_id ) else: template_data += self.network_mac_static.format( nic_id=nic_id, mac_address=nic_setup['mac'] ) if nic_setup['driver']: template_data += self.network_driver.format( nic_id=nic_id, network_driver=nic_setup['driver'] ) if nic_setup['connection_type']: template_data += self.network_connection_type.format( nic_id=nic_id, mode=nic_setup['connection_type'] ) if iso_setup: if iso_controller == 'ide': template_data += self.ide_iso else: template_data += self.scsi_iso template_data += self.usb return Template(template_data)