mirror of
https://github.com/virt-manager/virt-manager.git
synced 2025-02-25 18:55:27 -06:00
urlfetcher: Make fedora detection more robust
This commit is contained in:
parent
97b5961506
commit
b45f676086
@ -778,13 +778,6 @@ class FedoraDistro(RedHatDistro):
|
|||||||
name = "Fedora"
|
name = "Fedora"
|
||||||
urldistro = "fedora"
|
urldistro = "fedora"
|
||||||
|
|
||||||
def _latestFedoraVariant(self):
|
|
||||||
"""
|
|
||||||
Search osdict list, find newest fedora version listed
|
|
||||||
"""
|
|
||||||
latest = OSDB.latest_fedora_version()
|
|
||||||
return latest, int(latest[6:])
|
|
||||||
|
|
||||||
def isValidStore(self):
|
def isValidStore(self):
|
||||||
if not self.treeinfo:
|
if not self.treeinfo:
|
||||||
return self.fetcher.hasFile("Fedora")
|
return self.fetcher.hasFile("Fedora")
|
||||||
@ -792,22 +785,41 @@ class FedoraDistro(RedHatDistro):
|
|||||||
if not re.match(".*Fedora.*", self.treeinfo.get("general", "family")):
|
if not re.match(".*Fedora.*", self.treeinfo.get("general", "family")):
|
||||||
return False
|
return False
|
||||||
|
|
||||||
lateststr, latestnum = self._latestFedoraVariant()
|
|
||||||
ver = self.treeinfo.get("general", "version")
|
ver = self.treeinfo.get("general", "version")
|
||||||
if not ver:
|
if not ver:
|
||||||
|
logging.debug("No version found in .treeinfo")
|
||||||
return False
|
return False
|
||||||
|
logging.debug("Found treeinfo version=%s", ver)
|
||||||
|
|
||||||
|
latest_variant = OSDB.latest_fedora_version()
|
||||||
|
if re.match("fedora[0-9]+", latest_variant):
|
||||||
|
latest_vernum = int(latest_variant[6:])
|
||||||
|
else:
|
||||||
|
logging.debug("Failed to parse version number from latest "
|
||||||
|
"fedora variant=%s. Using safe default 22", latest_variant)
|
||||||
|
latest_vernum = 22
|
||||||
|
|
||||||
# rawhide trees changed to use version=Rawhide in Apr 2016
|
# rawhide trees changed to use version=Rawhide in Apr 2016
|
||||||
if ver in ["development", "rawhide", "Rawhide"]:
|
if ver in ["development", "rawhide", "Rawhide"]:
|
||||||
self._version_number = latestnum
|
self._version_number = latest_vernum
|
||||||
self.os_variant = lateststr
|
self.os_variant = latest_variant
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
# Dev versions can be like '23_Alpha'
|
||||||
if "_" in ver:
|
if "_" in ver:
|
||||||
ver = ver.split("_")[0]
|
ver = ver.split("_")[0]
|
||||||
vernum = int(str(ver).split("-")[0])
|
|
||||||
if vernum > latestnum:
|
# Typical versions are like 'fedora-23'
|
||||||
self.os_variant = lateststr
|
vernum = str(ver).split("-")[0]
|
||||||
|
if vernum.isdigit():
|
||||||
|
vernum = int(vernum)
|
||||||
|
else:
|
||||||
|
logging.debug("Failed to parse version number from treeinfo "
|
||||||
|
"version=%s, using vernum=latest=%s", ver, latest_vernum)
|
||||||
|
vernum = latest_vernum
|
||||||
|
|
||||||
|
if vernum > latest_vernum:
|
||||||
|
self.os_variant = latest_variant
|
||||||
else:
|
else:
|
||||||
self.os_variant = "fedora" + str(vernum)
|
self.os_variant = "fedora" + str(vernum)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user