Add .treeinfo detection. At some point the SLE15 media will have this.

OBS-URL: https://build.opensuse.org/package/show/Virtualization/virt-manager?expand=0&rev=366
This commit is contained in:
Charles Arnold 2017-09-15 21:07:50 +00:00 committed by Git OBS Bridge
parent 9fa3d17bf8
commit 535f36cb25
2 changed files with 62 additions and 11 deletions

View File

@ -24,13 +24,15 @@ Index: virt-manager-1.4.2/virtinst/urlfetcher.py
else: else:
self.os_variant += "9" self.os_variant += "9"
@@ -1090,6 +1096,9 @@ class SuseDistro(Distro): @@ -1098,6 +1104,11 @@ class SLESDistro(SuseDistro):
return osobj.name class SLEDDistro(SuseDistro):
return self.os_variant urldistro = "sled"
+
+class CAASPDistro(SuseDistro): +class CAASPDistro(SuseDistro):
+ urldistro = "caasp" + urldistro = "caasp"
+ +
+
class OESDistro(SuseDistro):
urldistro = "oes"
class SLESDistro(SuseDistro):
urldistro = "sles"

View File

@ -1,11 +1,10 @@
References: bsc#1054986 References: bsc#1054986
With SLE15 and openSUSE 15 the content file has been removed from the media. With SLE15 and openSUSE 15 the content file has been removed from the media.
This file was used for SUSE distro version and arch detection. Now detection This file was used for SUSE distro version and arch detection. Now detection
must be done by parsing the media.1/products file for distro version and the must be done by parsing the .treeinfo file.
media.1/build file for the arch. The media.1/products and media.1/build files We must continue to keep the content parsing code for the older distros.
have always been around so the entire _distroFromSUSEContent could be rewritten As a fallback, detection is also setup to look at the media.1/products and
(and simplified) to only check them. The products file format did change media.1/build files.
between 11-SP4 and 12. SLE10 has no build file.
Index: virt-manager-1.4.2/virtinst/urlfetcher.py Index: virt-manager-1.4.2/virtinst/urlfetcher.py
=================================================================== ===================================================================
@ -52,7 +51,15 @@ Index: virt-manager-1.4.2/virtinst/urlfetcher.py
dclass = OpensuseDistro dclass = OpensuseDistro
if distro_version is None: if distro_version is None:
distro_version = ['VERSION', distribution[0].strip().rsplit(':')[4]] distro_version = ['VERSION', distribution[0].strip().rsplit(':')[4]]
@@ -1040,8 +1054,11 @@ class SuseDistro(Distro): @@ -1003,6 +1017,7 @@ class SLDistro(RHELDistro):
class SuseDistro(Distro):
name = "SUSE"
+ uses_treeinfo = True
_boot_iso_paths = ["boot/boot.iso"]
@@ -1040,8 +1055,11 @@ class SuseDistro(Distro):
self._xen_kernel_paths = [("boot/%s/vmlinuz-xenpae" % self.arch, self._xen_kernel_paths = [("boot/%s/vmlinuz-xenpae" % self.arch,
"boot/%s/initrd-xenpae" % self.arch)] "boot/%s/initrd-xenpae" % self.arch)]
else: else:
@ -66,3 +73,45 @@ Index: virt-manager-1.4.2/virtinst/urlfetcher.py
def _variantFromVersion(self): def _variantFromVersion(self):
distro_version = self.version_from_content[1].strip() distro_version = self.version_from_content[1].strip()
@@ -1053,7 +1071,7 @@ class SuseDistro(Distro):
if len(distro_version.split('.', 1)) == 2:
sp_version = 'sp' + distro_version.split('.', 1)[1].strip()
self.os_variant += version
- if sp_version:
+ if sp_version and sp_version != 'sp0':
self.os_variant += sp_version
elif self.os_variant.startswith("opensuse"):
if len(version) == 8:
@@ -1077,6 +1095,23 @@ class SuseDistro(Distro):
self.os_variant += "9"
def isValidStore(self):
+ if self.treeinfo:
+ ret = False
+ if self.urldistro:
+ family = self.treeinfo.get("general", "family")
+ if "SUSE Linux Enterprise Server" in family and 'sles' in self.urldistro or \
+ "SUSE Linux Enterprise Desktop" in family and 'sled' in self.urldistro or \
+ "SUSE Containers" in family and 'caasp' in self.urldistro or \
+ "openSUSE" in family and 'opensuse' in self.urldistro or \
+ "Open Enterprise" in family and 'oes' in self.urldistro:
+ ret = True
+ if ret:
+ version = self.treeinfo.get("general", "version")
+ distro_version = ['VERSION', version]
+ self.version_from_content = distro_version
+ self._variantFromVersion()
+ return ret
+
# self.version_from_content is the VERSION line from the contents file
if (not self.version_from_content or
self.version_from_content[1] is None):
@@ -1128,8 +1163,6 @@ class OESDistro(SuseDistro):
urldistro = "oes"
-# Suse image store is harder - we fetch the kernel RPM and a helper
-# RPM and then munge bits together to generate a initrd
class OpensuseDistro(SuseDistro):
urldistro = "opensuse"