From 17d157820f001ba1ce36404e038bd72c70af8ad5 Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Mon, 10 Jun 2019 19:31:37 -0400 Subject: [PATCH] guest: move libosinfo resource setting to virt-install This puts all the default resource setting in one place, and the only place that was depending on it, as virt-manager explicitly sets the values on its own. This will be used in future patches to add more default setup and report the values to the user --- .../compare/virt-install-default-f27.xml | 2 +- virt-install | 24 ++++++++++++------- virtinst/guest.py | 17 +++---------- 3 files changed, 20 insertions(+), 23 deletions(-) diff --git a/tests/cli-test-xml/compare/virt-install-default-f27.xml b/tests/cli-test-xml/compare/virt-install-default-f27.xml index a04459f5..81623d06 100644 --- a/tests/cli-test-xml/compare/virt-install-default-f27.xml +++ b/tests/cli-test-xml/compare/virt-install-default-f27.xml @@ -8,7 +8,7 @@ 65536 65536 - 2 + 1 exe /bin/sh diff --git a/virt-install b/virt-install index 7c258519..bbd24d03 100755 --- a/virt-install +++ b/virt-install @@ -519,18 +519,26 @@ def build_installer(options, guest): def set_resources_from_osinfo(options, guest): if guest.os.is_container(): return - if options.disk: - return + + # We need to do this upfront, so we don't incorrectly set guest.vcpus + guest.sync_vcpus_topology() res = guest.osinfo.get_recommended_resources() storage = res.get_recommended_storage(guest.os.arch) - if not storage: - return + ram = res.get_recommended_ram(guest.os.arch) + ncpus = res.get_recommended_ncpus(guest.os.arch) - diskstr = 'size=%d' % (storage // (1024 ** 3)) - logging.debug("Generated default libosinfo '--disk %s'", diskstr) - options.disk = [diskstr] - cli.ParserDisk(diskstr, guest=guest).parse(None) + if ram and not guest.currentMemory: + guest.currentMemory = ram // 1024 + + if ncpus and not guest.vcpus: + guest.vcpus = ncpus + + if storage and not options.disk: + diskstr = 'size=%d' % (storage // (1024 ** 3)) + logging.debug("Generated default libosinfo '--disk %s'", diskstr) + options.disk = [diskstr] + cli.ParserDisk(diskstr, guest=guest).parse(None) def build_guest_instance(conn, options): diff --git a/virtinst/guest.py b/virtinst/guest.py index 341dd87c..a752997a 100644 --- a/virtinst/guest.py +++ b/virtinst/guest.py @@ -676,7 +676,9 @@ class Guest(XMLBuilder): self.uuid = Guest.generate_uuid(self.conn) self.sync_vcpus_topology() - self._set_default_resources() + if not self.vcpus: + self.vcpus = 1 + self._set_default_machine() self._set_default_uefi() @@ -708,19 +710,6 @@ class Guest(XMLBuilder): # Private xml routines # ######################## - def _set_default_resources(self): - res = self.osinfo.get_recommended_resources() - - if not self.currentMemory: - ram = res.get_recommended_ram(self.os.arch) - if ram: - self.currentMemory = ram // 1024 - - if not self.vcpus: - ncpus = res.get_recommended_ncpus(self.os.arch) - self.vcpus = ncpus or 1 - - def _set_default_machine(self): if self.os.machine: return