--- a/koan/virtinstall.py 2018-11-12 05:32:23.803251480 -0500 +++ b/koan/virtinstall.py 2018-11-12 06:40:17.454546012 -0500 @@ -70,12 +70,13 @@ except: supported_variants.add(variant.split()[0]) except: try: - # maybe on newer os using osinfo-query? - rc, response = utils.subprocess_get_response( - shlex.split('osinfo-query os')) + rc, response = subprocess_get_response( + shlex.split('osinfo-query -f short-id os')) variants = response.decode('utf-8').split('\n') for variant in variants: - supported_variants.add(variant.split()[0]) + supported_variants.add(variant.strip()) + # osinfo-query does not list virtio26, add it here for fallback + supported_variants.add('virtio26') except: # okay, probably on old os and we'll just use generic26 pass @@ -367,19 +368,24 @@ def build_commandline(uri, if suse_version_re.match(os_version): os_version = suse_version_re.match(os_version).groups()[0] # make sure virt-install knows about our os_version, - # otherwise default it to generic26 - found = False + # otherwise default it to virtio26 or generic26 + # found = False if os_version in supported_variants: - cmd += "--os-variant %s " % os_version + pass # os_version is correct elif os_version + ".0" in supported_variants: # osinfo based virt-install only knows about major.minor # variants, not just major variants like it used to. Default # to major.0 variant in that case. Lack of backwards # compatibility in virt-install grumble grumble. - cmd += "--os-variant %s" % os_version + ".0 " + os_version = os_version + ".0" else: - print(("- warning: virt-install doesn't know this os_version, defaulting to generic26")) - cmd += "--os-variant generic26 " + if "virtio26" in supported_variants: + os_version = "virtio26" + else: + os_version = "generic26" + print("- warning: virt-install doesn't know this os_version, " + "defaulting to %s" % os_version) + cmd += "--os-variant %s " % os_version else: distro = "unix" if breed in [ "debian", "suse", "redhat" ]: