diff --git a/changelogs/fragments/10224-zypper_repository-metalink.yml b/changelogs/fragments/10224-zypper_repository-metalink.yml new file mode 100644 index 0000000000..8dd1987a4e --- /dev/null +++ b/changelogs/fragments/10224-zypper_repository-metalink.yml @@ -0,0 +1,2 @@ +bugfixes: + - zypper_repository - use ``metalink`` attribute to identify repositories without ```` element (https://github.com/ansible-collections/community.general/issues/10224, https://github.com/ansible-collections/community.general/pull/10225). diff --git a/plugins/modules/zypper_repository.py b/plugins/modules/zypper_repository.py index 94f2c504fc..17de63bb6d 100644 --- a/plugins/modules/zypper_repository.py +++ b/plugins/modules/zypper_repository.py @@ -174,7 +174,10 @@ def _parse_repos(module): opts = {} for o in REPO_OPTS: opts[o] = repo.getAttribute(o) - opts['url'] = repo.getElementsByTagName('url')[0].firstChild.data + try: + opts['url'] = repo.getElementsByTagName('url')[0].firstChild.data + except IndexError: + opts['url'] = repo.getAttribute('metalink') # A repo can be uniquely identified by an alias + url repos.append(opts) return repos