Pino Toscano
2018-Apr-04 16:22 UTC
[Libguestfs] [PATCH] v2v: OVF: write ovirt:id attribute for the OS in OVirt flavour
When writing the OVF in OVirt flavour, add a ovirt:id attribute to the OperatingSystemSection tag: this attribute represents the numeric value of the ostype ID, which is ignored by oVirt when parsing OVFs in API mode. --- v2v/create_ovf.ml | 202 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 201 insertions(+), 1 deletion(-) diff --git a/v2v/create_ovf.ml b/v2v/create_ovf.ml index 64edd2b86..34cd925e7 100644 --- a/v2v/create_ovf.ml +++ b/v2v/create_ovf.ml @@ -216,6 +216,203 @@ and get_ostype = function typ distro major minor arch product; "Unassigned" +(* Determine the ovirt:id attribute from libguestfs inspection. + * See ovirt-engine sources, file: + * packaging/conf/osinfo-defaults.properties + * and also: + * https://bugzilla.redhat.com/show_bug.cgi?id=1219857#c9 + *) +and get_ovirt_osid = function + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 3; + i_arch = "i386" } -> + 9 + + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 3; + i_arch = "x86_64" } -> + 15 + + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 4; + i_arch = "i386" } -> + 8 + + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 4; + i_arch = "x86_64" } -> + 14 + + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 5; + i_arch = "i386" } -> + 7 + + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 5; + i_arch = "x86_64" } -> + 13 + + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 6; + i_arch = "i386" } -> + 18 + + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 6; + i_arch = "x86_64" } -> + 19 + + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 6; + i_minor_version = min; i_arch = ("ppc64"|"ppc64le") } when min >= 9 -> + 1007 + + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 6; + i_arch = ("ppc64"|"ppc64le") } -> + 1003 + + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 7; + i_arch = "x86_64" } -> + 24 + + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 7; + i_arch = ("ppc64"|"ppc64le") } -> + 1006 + + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 7; + i_arch = "s390x" } -> + 2003 + + | { i_type = "linux"; i_distro = "sles"; i_major_version = 11; + i_arch = "x86_64" } -> + 1193 + + | { i_type = "linux"; i_distro = "sles"; i_major_version = 11; + i_arch = "ppc64" | "ppc64le" } -> + 1004 + + | { i_type = "linux"; i_distro = "sles"; i_major_version = 12; + i_arch = "s390x" } -> + 2004 + + (* Only Debian 7 is available, so use it for any 7+ version. *) + | { i_type = "linux"; i_distro = "debian"; i_major_version = v } + when v >= 7 -> + 1300 + + (* Only Ubuntu 12.04 to 14.04 are available, so use them starting + * from 12.04, and 14.04 for anything after it. + *) + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = v; + i_arch = ("ppc64"|"ppc64le") } when v >= 14 -> + 1005 + + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = v; + i_arch = "s390x" } when v >= 16 -> + 2005 + + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = v } + when v >= 14 -> + 1256 + + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = 12; + i_minor_version = 4 } -> + 1252 + + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = 12; + i_minor_version = 10 } -> + 1253 + + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = 13; + i_minor_version = 4 } -> + 1254 + + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = 13; + i_minor_version = 10 } -> + 1255 + + | { i_type = "linux"; i_arch = ("ppc64"|"ppc64le") } -> + 1002 + + | { i_type = "linux"; i_arch = "s390x" } -> + 2002 + + | { i_type = "linux" } -> + 5 + + | { i_type = "windows"; i_major_version = 5; i_minor_version = 1 } -> + 1 (* no architecture differentiation of XP on RHV *) + + | { i_type = "windows"; i_major_version = 5; i_minor_version = 2; + i_product_name = product } when String.find product "XP" >= 0 -> + 1 (* no architecture differentiation of XP on RHV *) + + | { i_type = "windows"; i_major_version = 5; i_minor_version = 2; + i_arch = "i386" } -> + 3 + + | { i_type = "windows"; i_major_version = 5; i_minor_version = 2; + i_arch = "x86_64" } -> + 10 + + | { i_type = "windows"; i_major_version = 6; i_minor_version = 0; + i_arch = "i386" } -> + 4 + + | { i_type = "windows"; i_major_version = 6; i_minor_version = 0; + i_arch = "x86_64" } -> + 16 + + | { i_type = "windows"; i_major_version = 6; i_minor_version = 1; + i_arch = "i386" } -> + 11 + + | { i_type = "windows"; i_major_version = 6; i_minor_version = 1; + i_arch = "x86_64"; i_product_variant = "Client" } -> + 12 + + | { i_type = "windows"; i_major_version = 6; i_minor_version = 1; + i_arch = "x86_64" } -> + 17 + + | { i_type = "windows"; i_major_version = 6; i_minor_version = 2; + i_arch = "i386" } -> + 20 + + | { i_type = "windows"; i_major_version = 6; i_minor_version = 2; + i_arch = "x86_64"; i_product_variant = "Client" } -> + 21 + + | { i_type = "windows"; i_major_version = 6; i_minor_version = 2; + i_arch = "x86_64" } -> + 23 + + (* Treat Windows 8.1 client like Windows 8. See: + * https://bugzilla.redhat.com/show_bug.cgi?id=1309580#c4 + *) + | { i_type = "windows"; i_major_version = 6; i_minor_version = 3; + i_arch = "i386"; i_product_variant = "Client" } -> + 20 + + | { i_type = "windows"; i_major_version = 6; i_minor_version = 3; + i_arch = "x86_64"; i_product_variant = "Client" } -> + 21 + + | { i_type = "windows"; i_major_version = 6; i_minor_version = 3; + i_arch = "x86_64" } -> + 23 + + | { i_type = "windows"; i_major_version = 10; i_minor_version = 0; + i_arch = "i386" } -> + 26 + + | { i_type = "windows"; i_major_version = 10; i_minor_version = 0; + i_arch = "x86_64"; i_product_variant = "Client" } -> + 27 + + | { i_type = "windows"; i_major_version = 10; i_minor_version = 0; + i_arch = "x86_64" } -> + 29 + + | { i_type = typ; i_distro = distro; + i_major_version = major; i_minor_version = minor; i_arch = arch; + i_product_name = product } -> + warning (f_"unknown guest operating system: %s %s %d.%d %s (%s)") + typ distro major minor arch product; + 0 + (* Set the <Origin/> element based on the source hypervisor. * https://bugzilla.redhat.com/show_bug.cgi?id=1342398#c6 * https://gerrit.ovirt.org/#/c/59147/ @@ -295,6 +492,7 @@ let rec create_ovf source targets guestcaps inspect "xmlns:vssd", "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData"; "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"; "xmlns:ovf", "http://schemas.dmtf.org/ovf/envelope/1/"; + "xmlns:ovirt", "http://ovirt.org/vm/tune/1.0"; "ovf:version", "0.9" ] [ Comment generated_by; @@ -357,8 +555,10 @@ let rec create_ovf source targets guestcaps inspect ] in (match ovf_flavour with | OVirt -> + let ovirt_osid = get_ovirt_osid inspect in e "OperatingSystemSection" ["ovf:id", vm_uuid; - "ovf:required", "false"] + "ovf:required", "false"; + "ovirt:id", string_of_int ovirt_osid] osinfo_subnodes | RHVExportStorageDomain -> e "Section" ["ovf:id", vm_uuid; "ovf:required", "false"; -- 2.14.3
Richard W.M. Jones
2018-Apr-05 07:27 UTC
[Libguestfs] [PATCH] v2v: OVF: write ovirt:id attribute for the OS in OVirt flavour
On Wed, Apr 04, 2018 at 06:22:12PM +0200, Pino Toscano wrote:> When writing the OVF in OVirt flavour, add a ovirt:id attribute to the > OperatingSystemSection tag: this attribute represents the numeric value > of the ostype ID, which is ignored by oVirt when parsing OVFs in API > mode. > --- > v2v/create_ovf.ml | 202 +++++++++++++++++++++++++++++++++++++++++++++++++++++- > 1 file changed, 201 insertions(+), 1 deletion(-) > > diff --git a/v2v/create_ovf.ml b/v2v/create_ovf.ml > index 64edd2b86..34cd925e7 100644 > --- a/v2v/create_ovf.ml > +++ b/v2v/create_ovf.ml > @@ -216,6 +216,203 @@ and get_ostype = function > typ distro major minor arch product; > "Unassigned" > > +(* Determine the ovirt:id attribute from libguestfs inspection. > + * See ovirt-engine sources, file: > + * packaging/conf/osinfo-defaults.properties > + * and also: > + * https://bugzilla.redhat.com/show_bug.cgi?id=1219857#c9 > + *) > +and get_ovirt_osid = function > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 3; > + i_arch = "i386" } -> > + 9 > + > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 3; > + i_arch = "x86_64" } -> > + 15 > + > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 4; > + i_arch = "i386" } -> > + 8 > + > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 4; > + i_arch = "x86_64" } -> > + 14 > + > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 5; > + i_arch = "i386" } -> > + 7 > + > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 5; > + i_arch = "x86_64" } -> > + 13 > + > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 6; > + i_arch = "i386" } -> > + 18 > + > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 6; > + i_arch = "x86_64" } -> > + 19 > + > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 6; > + i_minor_version = min; i_arch = ("ppc64"|"ppc64le") } when min >= 9 -> > + 1007 > + > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 6; > + i_arch = ("ppc64"|"ppc64le") } -> > + 1003 > + > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 7; > + i_arch = "x86_64" } -> > + 24 > + > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 7; > + i_arch = ("ppc64"|"ppc64le") } -> > + 1006 > + > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version = 7; > + i_arch = "s390x" } -> > + 2003 > + > + | { i_type = "linux"; i_distro = "sles"; i_major_version = 11; > + i_arch = "x86_64" } -> > + 1193 > + > + | { i_type = "linux"; i_distro = "sles"; i_major_version = 11; > + i_arch = "ppc64" | "ppc64le" } -> > + 1004 > + > + | { i_type = "linux"; i_distro = "sles"; i_major_version = 12; > + i_arch = "s390x" } -> > + 2004 > + > + (* Only Debian 7 is available, so use it for any 7+ version. *) > + | { i_type = "linux"; i_distro = "debian"; i_major_version = v } > + when v >= 7 -> > + 1300 > + > + (* Only Ubuntu 12.04 to 14.04 are available, so use them starting > + * from 12.04, and 14.04 for anything after it. > + *) > + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = v; > + i_arch = ("ppc64"|"ppc64le") } when v >= 14 -> > + 1005 > + > + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = v; > + i_arch = "s390x" } when v >= 16 -> > + 2005 > + > + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = v } > + when v >= 14 -> > + 1256 > + > + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = 12; > + i_minor_version = 4 } -> > + 1252 > + > + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = 12; > + i_minor_version = 10 } -> > + 1253 > + > + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = 13; > + i_minor_version = 4 } -> > + 1254 > + > + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = 13; > + i_minor_version = 10 } -> > + 1255 > + > + | { i_type = "linux"; i_arch = ("ppc64"|"ppc64le") } -> > + 1002 > + > + | { i_type = "linux"; i_arch = "s390x" } -> > + 2002 > + > + | { i_type = "linux" } -> > + 5 > + > + | { i_type = "windows"; i_major_version = 5; i_minor_version = 1 } -> > + 1 (* no architecture differentiation of XP on RHV *) > + > + | { i_type = "windows"; i_major_version = 5; i_minor_version = 2; > + i_product_name = product } when String.find product "XP" >= 0 -> > + 1 (* no architecture differentiation of XP on RHV *) > + > + | { i_type = "windows"; i_major_version = 5; i_minor_version = 2; > + i_arch = "i386" } -> > + 3 > + > + | { i_type = "windows"; i_major_version = 5; i_minor_version = 2; > + i_arch = "x86_64" } -> > + 10 > + > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 0; > + i_arch = "i386" } -> > + 4 > + > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 0; > + i_arch = "x86_64" } -> > + 16 > + > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 1; > + i_arch = "i386" } -> > + 11 > + > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 1; > + i_arch = "x86_64"; i_product_variant = "Client" } -> > + 12 > + > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 1; > + i_arch = "x86_64" } -> > + 17 > + > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 2; > + i_arch = "i386" } -> > + 20 > + > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 2; > + i_arch = "x86_64"; i_product_variant = "Client" } -> > + 21 > + > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 2; > + i_arch = "x86_64" } -> > + 23 > + > + (* Treat Windows 8.1 client like Windows 8. See: > + * https://bugzilla.redhat.com/show_bug.cgi?id=1309580#c4 > + *) > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 3; > + i_arch = "i386"; i_product_variant = "Client" } -> > + 20 > + > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 3; > + i_arch = "x86_64"; i_product_variant = "Client" } -> > + 21 > + > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 3; > + i_arch = "x86_64" } -> > + 23 > + > + | { i_type = "windows"; i_major_version = 10; i_minor_version = 0; > + i_arch = "i386" } -> > + 26 > + > + | { i_type = "windows"; i_major_version = 10; i_minor_version = 0; > + i_arch = "x86_64"; i_product_variant = "Client" } -> > + 27 > + > + | { i_type = "windows"; i_major_version = 10; i_minor_version = 0; > + i_arch = "x86_64" } -> > + 29 > + > + | { i_type = typ; i_distro = distro; > + i_major_version = major; i_minor_version = minor; i_arch = arch; > + i_product_name = product } -> > + warning (f_"unknown guest operating system: %s %s %d.%d %s (%s)") > + typ distro major minor arch product; > + 0 > + > (* Set the <Origin/> element based on the source hypervisor. > * https://bugzilla.redhat.com/show_bug.cgi?id=1342398#c6 > * https://gerrit.ovirt.org/#/c/59147/ > @@ -295,6 +492,7 @@ let rec create_ovf source targets guestcaps inspect > "xmlns:vssd", "http://schemas.dmtf.org/wbem/wscim/1/cim-schema/2/CIM_VirtualSystemSettingData"; > "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"; > "xmlns:ovf", "http://schemas.dmtf.org/ovf/envelope/1/"; > + "xmlns:ovirt", "http://ovirt.org/vm/tune/1.0"; > "ovf:version", "0.9" > ] [ > Comment generated_by; > @@ -357,8 +555,10 @@ let rec create_ovf source targets guestcaps inspect > ] in > (match ovf_flavour with > | OVirt -> > + let ovirt_osid = get_ovirt_osid inspect in > e "OperatingSystemSection" ["ovf:id", vm_uuid; > - "ovf:required", "false"] > + "ovf:required", "false"; > + "ovirt:id", string_of_int ovirt_osid] > osinfo_subnodes > | RHVExportStorageDomain -> > e "Section" ["ovf:id", vm_uuid; "ovf:required", "false";Yes looks OK, ACK. Also Michal gave his ACK on IRC. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com libguestfs lets you edit virtual machines. Supports shell scripting, bindings from many languages. http://libguestfs.org
Arik Hadas
2018-Apr-05 07:56 UTC
Re: [Libguestfs] [PATCH] v2v: OVF: write ovirt:id attribute for the OS in OVirt flavour
On Thu, Apr 5, 2018 at 10:27 AM, Richard W.M. Jones <rjones@redhat.com> wrote:> On Wed, Apr 04, 2018 at 06:22:12PM +0200, Pino Toscano wrote: > > When writing the OVF in OVirt flavour, add a ovirt:id attribute to the > > OperatingSystemSection tag: this attribute represents the numeric value > > of the ostype ID, which is ignored by oVirt when parsing OVFs in API > > mode. > > --- > > v2v/create_ovf.ml | 202 ++++++++++++++++++++++++++++++ > +++++++++++++++++++++++- > > 1 file changed, 201 insertions(+), 1 deletion(-) > > > > diff --git a/v2v/create_ovf.ml b/v2v/create_ovf.ml > > index 64edd2b86..34cd925e7 100644 > > --- a/v2v/create_ovf.ml > > +++ b/v2v/create_ovf.ml > > @@ -216,6 +216,203 @@ and get_ostype = function > > typ distro major minor arch product; > > "Unassigned" > > > > +(* Determine the ovirt:id attribute from libguestfs inspection. > > + * See ovirt-engine sources, file: > > + * packaging/conf/osinfo-defaults.properties > > + * and also: > > + * https://bugzilla.redhat.com/show_bug.cgi?id=1219857#c9 > > + *) > > +and get_ovirt_osid = function > > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version > 3; > > + i_arch = "i386" } -> > > + 9 > > + > > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version > 3; > > + i_arch = "x86_64" } -> > > + 15 > > + > > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version > 4; > > + i_arch = "i386" } -> > > + 8 > > + > > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version > 4; > > + i_arch = "x86_64" } -> > > + 14 > > + > > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version > 5; > > + i_arch = "i386" } -> > > + 7 > > + > > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version > 5; > > + i_arch = "x86_64" } -> > > + 13 > > + > > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version > 6; > > + i_arch = "i386" } -> > > + 18 > > + > > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version > 6; > > + i_arch = "x86_64" } -> > > + 19 > > + > > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version > 6; > > + i_minor_version = min; i_arch = ("ppc64"|"ppc64le") } when min >> 9 -> > > + 1007 > > + > > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version > 6; > > + i_arch = ("ppc64"|"ppc64le") } -> > > + 1003 > > + > > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version > 7; > > + i_arch = "x86_64" } -> > > + 24 > > + > > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version > 7; > > + i_arch = ("ppc64"|"ppc64le") } -> > > + 1006 > > + > > + | { i_type = "linux"; i_distro = ("rhel"|"centos"); i_major_version > 7; > > + i_arch = "s390x" } -> > > + 2003 > > + > > + | { i_type = "linux"; i_distro = "sles"; i_major_version = 11; > > + i_arch = "x86_64" } -> > > + 1193 > > + > > + | { i_type = "linux"; i_distro = "sles"; i_major_version = 11; > > + i_arch = "ppc64" | "ppc64le" } -> > > + 1004 > > + > > + | { i_type = "linux"; i_distro = "sles"; i_major_version = 12; > > + i_arch = "s390x" } -> > > + 2004 > > + > > + (* Only Debian 7 is available, so use it for any 7+ version. *) > > + | { i_type = "linux"; i_distro = "debian"; i_major_version = v } > > + when v >= 7 -> > > + 1300 > > + > > + (* Only Ubuntu 12.04 to 14.04 are available, so use them starting > > + * from 12.04, and 14.04 for anything after it. > > + *) > > + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = v; > > + i_arch = ("ppc64"|"ppc64le") } when v >= 14 -> > > + 1005 > > + > > + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = v; > > + i_arch = "s390x" } when v >= 16 -> > > + 2005 > > + > > + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = v } > > + when v >= 14 -> > > + 1256 > > + > > + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = 12; > > + i_minor_version = 4 } -> > > + 1252 > > + > > + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = 12; > > + i_minor_version = 10 } -> > > + 1253 > > + > > + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = 13; > > + i_minor_version = 4 } -> > > + 1254 > > + > > + | { i_type = "linux"; i_distro = "ubuntu"; i_major_version = 13; > > + i_minor_version = 10 } -> > > + 1255 > > + > > + | { i_type = "linux"; i_arch = ("ppc64"|"ppc64le") } -> > > + 1002 > > + > > + | { i_type = "linux"; i_arch = "s390x" } -> > > + 2002 > > + > > + | { i_type = "linux" } -> > > + 5 > > + > > + | { i_type = "windows"; i_major_version = 5; i_minor_version = 1 } -> > > + 1 (* no architecture differentiation of XP on RHV *) > > + > > + | { i_type = "windows"; i_major_version = 5; i_minor_version = 2; > > + i_product_name = product } when String.find product "XP" >= 0 -> > > + 1 (* no architecture differentiation of XP on RHV *) > > + > > + | { i_type = "windows"; i_major_version = 5; i_minor_version = 2; > > + i_arch = "i386" } -> > > + 3 > > + > > + | { i_type = "windows"; i_major_version = 5; i_minor_version = 2; > > + i_arch = "x86_64" } -> > > + 10 > > + > > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 0; > > + i_arch = "i386" } -> > > + 4 > > + > > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 0; > > + i_arch = "x86_64" } -> > > + 16 > > + > > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 1; > > + i_arch = "i386" } -> > > + 11 > > + > > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 1; > > + i_arch = "x86_64"; i_product_variant = "Client" } -> > > + 12 > > + > > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 1; > > + i_arch = "x86_64" } -> > > + 17 > > + > > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 2; > > + i_arch = "i386" } -> > > + 20 > > + > > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 2; > > + i_arch = "x86_64"; i_product_variant = "Client" } -> > > + 21 > > + > > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 2; > > + i_arch = "x86_64" } -> > > + 23 > > + > > + (* Treat Windows 8.1 client like Windows 8. See: > > + * https://bugzilla.redhat.com/show_bug.cgi?id=1309580#c4 > > + *) > > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 3; > > + i_arch = "i386"; i_product_variant = "Client" } -> > > + 20 > > + > > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 3; > > + i_arch = "x86_64"; i_product_variant = "Client" } -> > > + 21 > > + > > + | { i_type = "windows"; i_major_version = 6; i_minor_version = 3; > > + i_arch = "x86_64" } -> > > + 23 > > + > > + | { i_type = "windows"; i_major_version = 10; i_minor_version = 0; > > + i_arch = "i386" } -> > > + 26 > > + > > + | { i_type = "windows"; i_major_version = 10; i_minor_version = 0; > > + i_arch = "x86_64"; i_product_variant = "Client" } -> > > + 27 > > + > > + | { i_type = "windows"; i_major_version = 10; i_minor_version = 0; > > + i_arch = "x86_64" } -> > > + 29 > > + > > + | { i_type = typ; i_distro = distro; > > + i_major_version = major; i_minor_version = minor; i_arch = arch; > > + i_product_name = product } -> > > + warning (f_"unknown guest operating system: %s %s %d.%d %s (%s)") > > + typ distro major minor arch product; > > + 0 > > + > > (* Set the <Origin/> element based on the source hypervisor. > > * https://bugzilla.redhat.com/show_bug.cgi?id=1342398#c6 > > * https://gerrit.ovirt.org/#/c/59147/ > > @@ -295,6 +492,7 @@ let rec create_ovf source targets guestcaps inspect > > "xmlns:vssd", "http://schemas.dmtf.org/wbem/ > wscim/1/cim-schema/2/CIM_VirtualSystemSettingData"; > > "xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"; > > "xmlns:ovf", "http://schemas.dmtf.org/ovf/envelope/1/"; > > + "xmlns:ovirt", "http://ovirt.org/vm/tune/1.0"; >The URL should be "http://www.ovirt.org/ovf" (not yet exists, but that is where we plan to place the documentation of the oVirt-specific additions to the OVF)> > "ovf:version", "0.9" > > ] [ > > Comment generated_by; > > @@ -357,8 +555,10 @@ let rec create_ovf source targets guestcaps inspect > > ] in > > (match ovf_flavour with > > | OVirt -> > > + let ovirt_osid = get_ovirt_osid inspect in > > e "OperatingSystemSection" ["ovf:id", vm_uuid; > > - "ovf:required", "false"] > > + "ovf:required", "false"; > > + "ovirt:id", string_of_int > ovirt_osid] >If there is one generator in virt-v2v for 'oVirt flavour' that is supposed to cover both OVFs that are placed in oVirt's export domain and those that are uploaded via the API then that's fine, but if that is an API-specific generator then it's better to place the 'ovf:id' attribute that points to the VM-UUID as a property of the 'VirtualSystem'element rather than of the ' OperatingSystemSection' element.> > osinfo_subnodes > > | RHVExportStorageDomain -> > > e "Section" ["ovf:id", vm_uuid; "ovf:required", "false"; > > Yes looks OK, ACK. > > Also Michal gave his ACK on IRC. > > Rich. > > -- > Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~ > rjones > Read my programming and virtualization blog: http://rwmj.wordpress.com > libguestfs lets you edit virtual machines. Supports shell scripting, > bindings from many languages. http://libguestfs.org > > _______________________________________________ > Libguestfs mailing list > Libguestfs@redhat.com > https://www.redhat.com/mailman/listinfo/libguestfs >
Maybe Matching Threads
- Re: [PATCH v2 1/2] v2v: OVF: write ovirt:id attribute for the OS in OVirt flavour
- Re: [PATCH v2 1/2] v2v: OVF: write ovirt:id attribute for the OS in OVirt flavour
- [PATCH v2 0/2] v2v: improve OVF in OVirt flavour
- [PATCH] v2v: Add support for libosinfo metadata
- [PATCH v3 0/3] v2v: improve OVF in OVirt flavour