On 3/26/19 5:42 AM, Lin Ma wrote: > Libvirt supports VM generation ID since 4.4.0, This patchset adds it > for virt-manager. > > The value either is specified through cli or is generated by libvirt. > ex: > virt-install --genid e90ff655-47a5-4484-9f9c-79a683c2a2e2 --memory ... > OR > virt-install --genid --memory ... > While conceptually --genid makes sense due to the placement of the <domain><genid> tag in the XML, I don't want to add a top level cli argument just for this fairly obscure feature, which will entail adding docs, --help output, and ensuring it's wired up in multiple places (for example this patch misses virt-xml). Please make it a suboption of the --metadata element. '--metadata genid=' can be used to map to <genid/> Also it can be a separate patch but we should unset a genid value on virt-clone and reset it to <genid/>, that's one of the primary features is to distinguish between vm clones or snapshots - Cole > Microsoft details about VM generation ID: > http://go.microsoft.com/fwlink/?LinkId=260709 > > Signed-off-by: Lin Ma <lma@xxxxxxxx> > --- > .../compare/virt-install-many-devices.xml | 1 + > tests/clitest.py | 2 ++ > virt-install | 15 +++++++++++++++ > virtinst/guest.py | 3 ++- > 4 files changed, 20 insertions(+), 1 deletion(-) > > diff --git a/tests/cli-test-xml/compare/virt-install-many-devices.xml b/tests/cli-test-xml/compare/virt-install-many-devices.xml > index 61c7df07..3e6877be 100644 > --- a/tests/cli-test-xml/compare/virt-install-many-devices.xml > +++ b/tests/cli-test-xml/compare/virt-install-many-devices.xml > @@ -6,6 +6,7 @@ > <libosinfo:os id="http://fedoraproject.org/fedora/unknown"/> > </libosinfo:libosinfo> > </metadata> > + <genid>e90ff655-47a5-4484-9f9c-79a683c2a2e2</genid> > <memory>65536</memory> > <currentMemory>65536</currentMemory> > <vcpu placement="static">4</vcpu> > diff --git a/tests/clitest.py b/tests/clitest.py > index 8194e796..1ec246b0 100644 > --- a/tests/clitest.py > +++ b/tests/clitest.py > @@ -466,6 +466,8 @@ c.add_compare(""" \ > --vcpus 4,cores=1,placement=static \ > --cpu none \ > \ > +--genid e90ff655-47a5-4484-9f9c-79a683c2a2e2 \ > +\ > --disk /dev/default-pool/UPPER,cache=writeback,io=threads,perms=sh,serial=WD-WMAP9A966149,boot_order=2 \ > --disk %(NEWIMG1)s,sparse=false,size=.001,perms=ro,error_policy=enospace,discard=unmap,detect_zeroes=yes \ > --disk device=cdrom,bus=sata,read_bytes_sec=1,read_iops_sec=2,total_bytes_sec=10,total_iops_sec=20,write_bytes_sec=5,write_iops_sec=6,driver.copy_on_read=on,geometry.cyls=16383,geometry.heads=16,geometry.secs=63,geometry.trans=lba \ > diff --git a/virt-install b/virt-install > index 57835849..0ca117d3 100755 > --- a/virt-install > +++ b/virt-install > @@ -550,6 +550,12 @@ def build_guest_instance(conn, options): > guest.os.arch = options.arch > if options.machine: > guest.os.machine = options.machine > + if options.genid is None: > + # The value of genid will be generated by libvirt in case of > + # specifying --genid suboption without value > + guest.genid = True > + elif options.genid: > + guest.genid = options.genid > > # If explicit os-variant requested, set it early since it will > # provide more defaults in the future > @@ -793,6 +799,15 @@ def parse_args(): > geng.add_argument("-u", "--uuid", help=argparse.SUPPRESS) > geng.add_argument("--description", help=argparse.SUPPRESS) > > + genid_kwargs = { > + "dest": "genid", > + "default": False, > + "nargs": '?', > + "help": _("Enable VM generation ID for windows."), > + } > + > + geng.add_argument("--genid", **genid_kwargs) > + > insg = parser.add_argument_group(_("Installation Method Options")) > insg.add_argument("-c", dest="cdrom_short", help=argparse.SUPPRESS) > insg.add_argument("--cdrom", help=_("CD-ROM installation media")) > diff --git a/virtinst/guest.py b/virtinst/guest.py > index 0538ccfd..1ae60e5e 100644 > --- a/virtinst/guest.py > +++ b/virtinst/guest.py > @@ -140,7 +140,7 @@ class Guest(XMLBuilder): > > XML_NAME = "domain" > _XML_PROP_ORDER = [ > - "type", "name", "uuid", "title", "description", "_metadata", > + "type", "name", "uuid", "title", "description", "_metadata", "genid", > "hotplugmemorymax", "hotplugmemoryslots", "maxmemory", "_memory", > "blkiotune", "memtune", "memoryBacking", > "_vcpus", "curvcpus", "vcpu_placement", > @@ -206,6 +206,7 @@ class Guest(XMLBuilder): > cpuset = XMLProperty("./vcpu/@cpuset") > > uuid = XMLProperty("./uuid") > + genid = XMLProperty("./genid") > id = XMLProperty("./@id", is_int=True) > type = XMLProperty("./@type") > bootloader = XMLProperty("./bootloader") > - Cole _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list