Exemplo n.º 1
0
                    # This is the VMWare OS name
                    os_type_ignore = vs_node.prop("osType")

                elif vs_node.name == "VirtualHardwareSection":
                    _parse_hw_section(vm, node_list(vs_node), file_refs,
                                      disk_section)

                elif vs_node.name == "AnnotationSection":
                    for an_node in node_list(vs_node):
                        if an_node.name == "Annotation":
                            desc = an_node.content


        vm.name = name
        vm.description = desc
        vm.validate()

        return vm

    @staticmethod
    def export(vm):
        """
        Export a configuration file as a string.
        @vm vm configuration instance

        Raises ValueError if configuration is not suitable.
        """
        raise NotImplementedError

formats.register_parser(ovf_parser)
Exemplo n.º 2
0
        out = image_template % {
            "boot_template": boot_xml,
            "name" : vmname,
            "description" : escape(vm.description),
            "nr_vcpus" : vm.nr_vcpus,
            # Mb to Kb
            "memory" : int(vm.memory) * 1024,
            "interface" : interface,
            "storage" : "".join(storage),
        }

        return out

    @staticmethod
    def export_file(vm, output_file):
        """
        Export a configuration file.
        @vm vm configuration instance
        @output_file Output file

        Raises ValueError if configuration is not suitable, or another
        exception on failure to write the output file.
        """
        output = virtimage_parser.export(vm)

        outfile = open(output_file, "w")
        outfile.writelines(output)
        outfile.close()

formats.register_parser(virtimage_parser)
Exemplo n.º 3
0
                    # This is the VMWare OS name
                    os_type_ignore = vs_node.prop("osType")

                elif vs_node.name == "VirtualHardwareSection":
                    _parse_hw_section(vm, node_list(vs_node), file_refs,
                                      disk_section)

                elif vs_node.name == "AnnotationSection":
                    for an_node in node_list(vs_node):
                        if an_node.name == "Annotation":
                            desc = an_node.content

        vm.name = name
        vm.description = desc
        vm.validate()

        return vm

    @staticmethod
    def export(vm):
        """
        Export a configuration file as a string.
        @vm vm configuration instance

        Raises ValueError if configuration is not suitable.
        """
        raise NotImplementedError


formats.register_parser(ovf_parser)
Exemplo n.º 4
0
            "vm_nr_vcpus": vm.nr_vcpus,
            "vm_memory": long(vm.memory)
        }
        vmx_out = _VMX_MAIN_TEMPLATE % vmx_dict
        vmx_out_template.append(vmx_out)

        disk_out_template = []
        for devid, disk in sorted(vm.disks.items()):
            bus, dev_nr = devid
            if bus.lower() != "ide":
                logging.debug("Disk bus '%s' not yet supported. Skipping." % \
                               bus.lower())
                continue

            dev = "%d:%d" % (dev_nr / 2, dev_nr % 2)
            disk_dict = {"dev": dev, "disk_filename": disk.path}
            disk_out = _VMX_IDE_TEMPLATE % disk_dict
            disk_out_template.append(disk_out)

        eth_out_template = []
        if len(vm.netdevs):
            for devnum in vm.netdevs:
                eth_dict = {"dev": devnum}
                eth_out = _VMX_ETHERNET_TEMPLATE % eth_dict
                eth_out_template.append(eth_out)

        return "".join(vmx_out_template + disk_out_template + eth_out_template)


formats.register_parser(vmx_parser)
Exemplo n.º 5
0
        vmx_out_template.append(vmx_out)

        disk_out_template = []
        for devid, disk in sorted(vm.disks.items()):
            bus, dev_nr = devid
            if bus.lower() != "ide":
                logging.debug("Disk bus '%s' not yet supported. Skipping.",
                               bus.lower())
                continue

            dev = "%d:%d" % (dev_nr / 2, dev_nr % 2)
            disk_dict = {
                "dev": dev,
                "disk_filename" : disk.path
           }
            disk_out = _VMX_IDE_TEMPLATE % disk_dict
            disk_out_template.append(disk_out)

        eth_out_template = []
        if len(vm.netdevs):
            for devnum in vm.netdevs:
                eth_dict = {
                   "dev" : devnum
               }
                eth_out = _VMX_ETHERNET_TEMPLATE % eth_dict
                eth_out_template.append(eth_out)

        return "".join(vmx_out_template + disk_out_template + eth_out_template)

formats.register_parser(vmx_parser)