class TestVmwareSettingsTempla(object):
    def setup(self):
        self.vmware = VmwareSettingsTemplate()

    def test_get_template_default(self):
        assert self.vmware.get_template().substitute(
            virtual_hardware_version='8',
            display_name='some-display-name',
            guest_os='suse',
            disk_id='0',
            vmdk_file='myimage.vmdk')

    def test_get_template_with_periphery(self):
        assert self.vmware.get_template(memory_setup=True,
                                        cpu_setup=True,
                                        network_setup=True,
                                        iso_setup=True).substitute(
                                            virtual_hardware_version='8',
                                            display_name='some-display-name',
                                            guest_os='suse',
                                            disk_id='0',
                                            vmdk_file='myimage.vmdk',
                                            nic_id='0',
                                            memory_size='4096',
                                            number_of_cpus='2',
                                            iso_id='0')

    def test_get_template_scsi_disk(self):
        assert self.vmware.get_template(disk_controller='lsilogic').substitute(
            virtual_hardware_version='8',
            display_name='some-display-name',
            guest_os='suse',
            disk_id='0',
            scsi_controller_name='lsilogic',
            vmdk_file='myimage.vmdk')

    def test_get_template_scsi_iso(self):
        assert self.vmware.get_template(iso_setup=True,
                                        iso_controller='scsi').substitute(
                                            virtual_hardware_version='8',
                                            display_name='some-display-name',
                                            guest_os='suse',
                                            disk_id='0',
                                            vmdk_file='myimage.vmdk',
                                            iso_id='0')

    def test_get_template_custom_network(self):
        assert self.vmware.get_template(network_setup=True,
                                        network_mac='custom',
                                        network_connection_type='link',
                                        network_driver='foo').substitute(
                                            virtual_hardware_version='8',
                                            display_name='some-display-name',
                                            guest_os='suse',
                                            disk_id='0',
                                            vmdk_file='myimage.vmdk',
                                            nic_id='0',
                                            mac_address='98:90:96:a0:3c:58',
                                            network_connection_type='link',
                                            network_driver='foo')
Пример #2
0
 def setup(self):
     self.vmware = VmwareSettingsTemplate()
Пример #3
0
    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)))
Пример #4
0
    def _create_vmware_settings_file(self):                 # noqa: C901
        """
        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_file_path_for_format('vmdk'),
            '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_file_path_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))
            )
Пример #5
0
class TestVmwareSettingsTempla:
    def setup(self):
        self.vmware = VmwareSettingsTemplate()

    def setup_method(self, cls):
        self.setup()

    def test_get_template_default(self):
        assert self.vmware.get_template().substitute(
            virtual_hardware_version='8',
            display_name='some-display-name',
            guest_os='suse',
            disk_id='0',
            vmdk_file='myimage.vmdk')

    def test_get_template_with_periphery(self):
        assert self.vmware.get_template(memory_setup=True,
                                        cpu_setup=True,
                                        iso_setup=True).substitute(
                                            virtual_hardware_version='8',
                                            display_name='some-display-name',
                                            guest_os='suse',
                                            disk_id='0',
                                            vmdk_file='myimage.vmdk',
                                            memory_size='4096',
                                            number_of_cpus='2',
                                            iso_id='0')

    def test_get_template_scsi_disk(self):
        assert self.vmware.get_template(disk_controller='lsilogic').substitute(
            virtual_hardware_version='8',
            display_name='some-display-name',
            guest_os='suse',
            disk_id='0',
            scsi_controller_name='lsilogic',
            vmdk_file='myimage.vmdk')

    def test_get_template_scsi_iso(self):
        assert self.vmware.get_template(iso_setup=True,
                                        iso_controller='scsi').substitute(
                                            virtual_hardware_version='8',
                                            display_name='some-display-name',
                                            guest_os='suse',
                                            disk_id='0',
                                            vmdk_file='myimage.vmdk',
                                            iso_id='0')

    def test_get_template_custom_network(self):
        assert self.vmware.get_template(
            network_setup={
                '0': {
                    'driver': 'foo',
                    'connection_type': 'link',
                    'mac': '98:90:96:a0:3c:58'
                },
                '1': {
                    'driver': 'foo',
                    'connection_type': 'link',
                    'mac': 'generated'
                }
            }).substitute(virtual_hardware_version='8',
                          display_name='some-display-name',
                          guest_os='suse',
                          disk_id='0',
                          vmdk_file='myimage.vmdk')
 def setup(self):
     self.vmware = VmwareSettingsTemplate()
class TestVmwareSettingsTempla(object):
    def setup(self):
        self.vmware = VmwareSettingsTemplate()

    def test_get_template_default(self):
        assert self.vmware.get_template().substitute(
            virtual_hardware_version='8',
            display_name='some-display-name',
            guest_os='suse',
            disk_id='0',
            vmdk_file='myimage.vmdk'
        )

    def test_get_template_with_periphery(self):
        assert self.vmware.get_template(
            memory_setup=True, cpu_setup=True, iso_setup=True
        ).substitute(
            virtual_hardware_version='8',
            display_name='some-display-name',
            guest_os='suse',
            disk_id='0',
            vmdk_file='myimage.vmdk',
            memory_size='4096',
            number_of_cpus='2',
            iso_id='0'
        )

    def test_get_template_scsi_disk(self):
        assert self.vmware.get_template(
            disk_controller='lsilogic'
        ).substitute(
            virtual_hardware_version='8',
            display_name='some-display-name',
            guest_os='suse',
            disk_id='0',
            scsi_controller_name='lsilogic',
            vmdk_file='myimage.vmdk'
        )

    def test_get_template_scsi_iso(self):
        assert self.vmware.get_template(
            iso_setup=True, iso_controller='scsi'
        ).substitute(
            virtual_hardware_version='8',
            display_name='some-display-name',
            guest_os='suse',
            disk_id='0',
            vmdk_file='myimage.vmdk',
            iso_id='0'
        )

    def test_get_template_custom_network(self):
        assert self.vmware.get_template(
            network_setup={
                '0': {
                    'driver': 'foo',
                    'connection_type': 'link',
                    'mac': '98:90:96:a0:3c:58'
                },
                '1': {
                    'driver': 'foo',
                    'connection_type': 'link',
                    'mac': 'generated'
                }
            }
        ).substitute(
            virtual_hardware_version='8',
            display_name='some-display-name',
            guest_os='suse',
            disk_id='0',
            vmdk_file='myimage.vmdk'
        )