From: Nathan Cutler Date: Tue, 18 Feb 2020 14:34:03 +0000 (+0100) Subject: packaging: add Shaman repo correctly on opensuse X-Git-Tag: 1.1.0~153^2 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=fa1835b09b55be29ceb8e18d9526af2cc301d622;p=teuthology.git packaging: add Shaman repo correctly on opensuse Fixes: https://tracker.ceph.com/issues/43655 Works Around: https://tracker.ceph.com/issues/44183 Signed-off-by: Nathan Cutler --- diff --git a/teuthology/packaging.py b/teuthology/packaging.py index 50763f02bb..7b7d0adb6d 100644 --- a/teuthology/packaging.py +++ b/teuthology/packaging.py @@ -973,12 +973,40 @@ class ShamanProject(GitbuilderProject): return resp.text def _install_rpm_repo(self): + dist_release = self.dist_release repo = self._get_repo() - sudo_write_file( - self.remote, - '/etc/yum.repos.d/{proj}.repo'.format(proj=self.project), - repo, - ) + if dist_release in ['opensuse', 'sle']: + # + # Shaman does not currently return opensuse repos in a format that zypper + # understands -- see https://tracker.ceph.com/issues/44183 for details. + # + # So, do some text manipulation to convert the yum-style repo to + # zypper-style. + # + # This text manipulation/conversion code should continue to work even + # after Shaman is fixed. + # + munged_repo = '' + repo_lines = repo.splitlines() + for repo_line in repo_lines: + if repo_line.startswith('baseurl='): + if repo_line.endswith('$basearch'): + repo_line = repo_line[:-len('$basearch')] + if repo_line == '': + break + munged_repo += str(repo_line) + '\n' + log.info("Writing zypper repo: {}".format(munged_repo)) + sudo_write_file( + self.remote, + '/etc/zypp/repos.d/{proj}.repo'.format(proj=self.project), + munged_repo, + ) + else: + sudo_write_file( + self.remote, + '/etc/yum.repos.d/{proj}.repo'.format(proj=self.project), + repo, + ) def _install_deb_repo(self): repo = self._get_repo()