2015-05-04 22:15:01 +02:00
|
|
|
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.
|
2014-10-29 18:03:15 +01:00
|
|
|
Index: virt-manager-1.1.0/virtinst/urlfetcher.py
|
2014-04-11 01:19:20 +02:00
|
|
|
===================================================================
|
2014-10-29 18:03:15 +01:00
|
|
|
--- virt-manager-1.1.0.orig/virtinst/urlfetcher.py
|
|
|
|
+++ virt-manager-1.1.0/virtinst/urlfetcher.py
|
2015-01-05 19:16:33 +01:00
|
|
|
@@ -407,6 +407,24 @@ def _distroFromContent(fetcher, arch, vm
|
2014-04-11 01:19:20 +02:00
|
|
|
|
|
|
|
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)
|
2015-01-05 19:16:33 +01:00
|
|
|
@@ -426,6 +444,10 @@ def getDistroStore(guest, fetcher):
|
2014-04-11 01:19:20 +02:00
|
|
|
if dist:
|
|
|
|
return dist
|
|
|
|
|
|
|
|
+ dist = _distroFromAutorun(fetcher, arch, _type)
|
|
|
|
+ if dist:
|
|
|
|
+ return dist
|
|
|
|
+
|
2014-10-29 18:03:15 +01:00
|
|
|
stores = _allstores[:]
|
|
|
|
|
|
|
|
# If user manually specified an os_distro, bump it's URL class
|
2015-05-04 22:15:01 +02:00
|
|
|
@@ -1204,6 +1226,13 @@ class ALTLinuxDistro(Distro):
|
2014-04-11 01:19:20 +02:00
|
|
|
logging.debug("Regex didn't match, not a %s distro", self.name)
|
|
|
|
return False
|
|
|
|
|
|
|
|
+class WindowsDistro(Distro):
|
|
|
|
+
|
|
|
|
+ urldistro = "windows"
|
2015-05-04 22:15:01 +02:00
|
|
|
+ os_variant = "win8.1"
|
2014-04-11 01:19:20 +02:00
|
|
|
+
|
|
|
|
+ def isValidStore(self):
|
|
|
|
+ return False
|
|
|
|
|
|
|
|
# Build list of all *Distro classes
|
|
|
|
def _build_distro_list():
|