Fix photon upgrade tests

This commit is contained in:
Megan Wilhite 2023-10-23 13:36:22 -06:00 committed by Pedro Algarvio
parent 70ad2a4e4e
commit e141799a94

View file

@ -78,6 +78,12 @@ class SaltPkgInstall:
distro_name: str = attr.ib(init=False) distro_name: str = attr.ib(init=False)
distro_version: str = attr.ib(init=False) distro_version: str = attr.ib(init=False)
# Version information
prev_version: str = attr.ib()
use_prev_version: str = attr.ib()
artifact_version: str = attr.ib(init=False)
version: str = attr.ib(init=False)
# Package (and management) metadata # Package (and management) metadata
pkg_mngr: str = attr.ib(init=False) pkg_mngr: str = attr.ib(init=False)
rm_pkg: str = attr.ib(init=False) rm_pkg: str = attr.ib(init=False)
@ -86,12 +92,6 @@ class SaltPkgInstall:
file_ext: bool = attr.ib(default=None) file_ext: bool = attr.ib(default=None)
relenv: bool = attr.ib(default=True) relenv: bool = attr.ib(default=True)
# Version information
prev_version: str = attr.ib()
use_prev_version: str = attr.ib()
artifact_version: str = attr.ib(init=False)
version: str = attr.ib(init=False)
@proc.default @proc.default
def _default_proc(self): def _default_proc(self):
return Subprocess() return Subprocess()
@ -106,11 +106,16 @@ class SaltPkgInstall:
@distro_name.default @distro_name.default
def _default_distro_name(self): def _default_distro_name(self):
if distro.name(): name = distro.name()
return distro.name().split()[0].lower() if name:
if "vmware" in name.lower():
return name.split()[1].lower()
return name.split()[0].lower()
@distro_version.default @distro_version.default
def _default_distro_version(self): def _default_distro_version(self):
if self.distro_name == "photon":
return distro.version().split(".")[0]
return distro.version().lower() return distro.version().lower()
@pkg_mngr.default @pkg_mngr.default
@ -141,8 +146,12 @@ class SaltPkgInstall:
] ]
if self.distro_id in ("centos", "redhat", "amzn", "fedora", "photon"): if self.distro_id in ("centos", "redhat", "amzn", "fedora", "photon"):
salt_pkgs.append("salt") salt_pkgs.append("salt")
dbg_pkg = "salt-debuginfo"
elif self.distro_id in ("ubuntu", "debian"): elif self.distro_id in ("ubuntu", "debian"):
salt_pkgs.append("salt-common") salt_pkgs.append("salt-common")
dbg_pkg = "salt-dbg"
if packaging.version.parse(self.version) >= packaging.version.parse("3006.3"):
salt_pkgs.append(dbg_pkg)
return salt_pkgs return salt_pkgs
@install_dir.default @install_dir.default
@ -439,9 +448,14 @@ class SaltPkgInstall:
] ]
log.info("Installing packages:\n%s", pprint.pformat(self.pkgs)) log.info("Installing packages:\n%s", pprint.pformat(self.pkgs))
args = extra_args + self.pkgs args = extra_args + self.pkgs
upgrade_cmd = "upgrade"
if self.distro_id == "photon":
# tdnf does not detect nightly build versions to be higher version
# than release versions
upgrade_cmd = "install"
ret = self.proc.run( ret = self.proc.run(
self.pkg_mngr, self.pkg_mngr,
"upgrade", upgrade_cmd,
"-y", "-y",
*args, *args,
_timeout=120, _timeout=120,
@ -505,7 +519,14 @@ class SaltPkgInstall:
if self.classic: if self.classic:
root_url = "py3/" root_url = "py3/"
if self.distro_name in ["redhat", "centos", "amazon", "fedora", "vmware"]: if self.distro_name in [
"redhat",
"centos",
"amazon",
"fedora",
"vmware",
"photon",
]:
# Removing EPEL repo files # Removing EPEL repo files
for fp in pathlib.Path("/etc", "yum.repos.d").glob("epel*"): for fp in pathlib.Path("/etc", "yum.repos.d").glob("epel*"):
fp.unlink() fp.unlink()
@ -534,7 +555,11 @@ class SaltPkgInstall:
f"https://repo.saltproject.io/{root_url}{distro_name}/{self.distro_version}/{arch}/{major_ver}.repo", f"https://repo.saltproject.io/{root_url}{distro_name}/{self.distro_version}/{arch}/{major_ver}.repo",
f"/etc/yum.repos.d/salt-{distro_name}.repo", f"/etc/yum.repos.d/salt-{distro_name}.repo",
) )
ret = self.proc.run(self.pkg_mngr, "clean", "expire-cache") if self.distro_name == "photon":
# yum version on photon doesn't support expire-cache
ret = self.proc.run(self.pkg_mngr, "clean", "all")
else:
ret = self.proc.run(self.pkg_mngr, "clean", "expire-cache")
self._check_retcode(ret) self._check_retcode(ret)
cmd_action = "downgrade" if downgrade else "install" cmd_action = "downgrade" if downgrade else "install"
pkgs_to_install = self.salt_pkgs.copy() pkgs_to_install = self.salt_pkgs.copy()