Install previous version. This is used for upgrade tests.
(self, downgrade=False)
| 1123 | self._check_retcode(ret) |
| 1124 | |
| 1125 | def install_previous(self, downgrade=False): |
| 1126 | """ |
| 1127 | Install previous version. This is used for upgrade tests. |
| 1128 | """ |
| 1129 | major_ver = packaging.version.parse(self.prev_version).major |
| 1130 | relenv = packaging.version.parse(self.prev_version) >= packaging.version.parse( |
| 1131 | "3006.0" |
| 1132 | ) |
| 1133 | distro_name = self.distro_name |
| 1134 | if distro_name in ("almalinux", "rocky", "centos", "fedora"): |
| 1135 | distro_name = "redhat" |
| 1136 | root_url = "https://packages.broadcom.com/artifactory" |
| 1137 | |
| 1138 | if self.distro_name in [ |
| 1139 | "almalinux", |
| 1140 | "rocky", |
| 1141 | "redhat", |
| 1142 | "centos", |
| 1143 | "amazon", |
| 1144 | "fedora", |
| 1145 | "vmware", |
| 1146 | "photon", |
| 1147 | ]: |
| 1148 | # Removing EPEL repo files |
| 1149 | for fp in pathlib.Path("/etc", "yum.repos.d").glob("epel*"): |
| 1150 | fp.unlink() |
| 1151 | |
| 1152 | if platform.is_aarch64(): |
| 1153 | arch = "arm64" |
| 1154 | # Starting with 3006.5, we prioritize the aarch64 repo paths for rpm-based distros |
| 1155 | if packaging.version.parse( |
| 1156 | self.prev_version |
| 1157 | ) >= packaging.version.parse("3006.5"): |
| 1158 | arch = "aarch64" |
| 1159 | else: |
| 1160 | arch = "x86_64" |
| 1161 | ret = self.proc.run( |
| 1162 | "rpm", |
| 1163 | "--import", |
| 1164 | "https://packages.broadcom.com/artifactory/api/security/keypair/SaltProjectKey/public", |
| 1165 | ) |
| 1166 | self._check_retcode(ret) |
| 1167 | download_file( |
| 1168 | "https://github.com/saltstack/salt-install-guide/releases/latest/download/salt.repo", |
| 1169 | f"/etc/yum.repos.d/salt-{distro_name}.repo", |
| 1170 | ) |
| 1171 | |
| 1172 | cmd_action = "downgrade" if downgrade else "install" |
| 1173 | pkgs_to_install = self.salt_pkgs.copy() |
| 1174 | |
| 1175 | if self.distro_name == "photon": |
| 1176 | rpm_prev = pep440_version_to_rpm_nevra_version(self.prev_version) |
| 1177 | orig_pkgs = pkgs_to_install[:] |
| 1178 | pkgs_to_install = [] |
| 1179 | for _ in orig_pkgs: |
| 1180 | pkgs_to_install.append(f"{_}-{rpm_prev}") |
| 1181 | ret = self.proc.run(self.pkg_mngr, "clean", "all") |
| 1182 | self._check_retcode(ret) |