Enhancement to detect windows media. It is based solely upon finding an autorun.inf file in the root of the installation source. It only assumes windows, not the specific version of windows. Index: virt-manager-1.1.0/virtinst/urlfetcher.py =================================================================== --- virt-manager-1.1.0.orig/virtinst/urlfetcher.py +++ virt-manager-1.1.0/virtinst/urlfetcher.py @@ -407,6 +407,24 @@ def _distroFromContent(fetcher, arch, vm return ob +def _distroFromAutorun(fetcher, arch, vmtype=None): + # Just look for autorun.inf (also in uppercase) + # If present media is likely from a windows iso. + distro_version = None + if not fetcher.hasFile("autorun.inf"): + return None + + dclass = WindowsDistro + + ob = dclass(fetcher, arch, vmtype) + if dclass != GenericDistro: + ob.content = distro_version + + # Explictly call this, so we populate os_type/variant info + ob.isValidStore() + + return ob + def getDistroStore(guest, fetcher): stores = [] logging.debug("Finding distro store for location=%s", fetcher.location) @@ -426,6 +444,10 @@ def getDistroStore(guest, fetcher): if dist: return dist + dist = _distroFromAutorun(fetcher, arch, _type) + if dist: + return dist + stores = _allstores[:] # If user manually specified an os_distro, bump it's URL class @@ -1204,6 +1226,13 @@ class ALTLinuxDistro(Distro): logging.debug("Regex didn't match, not a %s distro", self.name) return False +class WindowsDistro(Distro): + + urldistro = "windows" + os_variant = "win8.1" + + def isValidStore(self): + return False # Build list of all *Distro classes def _build_distro_list():