diff options
author | Michal Minar <miminar@redhat.com> | 2013-08-08 12:41:58 +0200 |
---|---|---|
committer | Michal Minar <miminar@redhat.com> | 2013-08-08 12:53:21 +0200 |
commit | 4e77e9373e45ec404cdcefe2a7862b8d064285d8 (patch) | |
tree | c270eeb57104eb6296c4e58d255bb1c76b96f849 /src/software/lmi | |
parent | 86d274d78b8fb170306aa59d9878c78d4d88c2df (diff) | |
download | openlmi-providers-4e77e9373e45ec404cdcefe2a7862b8d064285d8.tar.gz openlmi-providers-4e77e9373e45ec404cdcefe2a7862b8d064285d8.tar.xz openlmi-providers-4e77e9373e45ec404cdcefe2a7862b8d064285d8.zip |
software: support metalink attribute of repository
There can be a situation, when base_urls and mirror_list are empty, but
metalink is filled. Let's fallback to metalink while obtaining
AccessInfo value.
Diffstat (limited to 'src/software/lmi')
-rw-r--r-- | src/software/lmi/software/core/IdentityResource.py | 2 | ||||
-rw-r--r-- | src/software/lmi/software/yumdb/repository.py | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/software/lmi/software/core/IdentityResource.py b/src/software/lmi/software/core/IdentityResource.py index 6ef21f7..dd93b4e 100644 --- a/src/software/lmi/software/core/IdentityResource.py +++ b/src/software/lmi/software/core/IdentityResource.py @@ -554,6 +554,8 @@ def _fill_non_keys(repo, model): access_info = None if repo.mirror_list: access_info = repo.mirror_list + elif repo.metalink: + access_info = repo.metalink elif repo.base_urls: if len(repo.base_urls) > 0: if len(repo.base_urls) > 1: diff --git a/src/software/lmi/software/yumdb/repository.py b/src/software/lmi/software/yumdb/repository.py index 758ae21..23fd5b8 100644 --- a/src/software/lmi/software/yumdb/repository.py +++ b/src/software/lmi/software/yumdb/repository.py @@ -38,6 +38,7 @@ PROPERTY_NAME_MAP = { "enabled" : "enabled", "gpg_check" : "gpgcheck", "last_edit" : "repo_config_age", + "metalink" : "metalink", "mirror_list" : "mirrorlist", "mirror_urls" : "mirrorurls", "name" : "name", @@ -108,6 +109,10 @@ class Repository(object): "last_edit", # datetime of last config modification "last_update", # datetime of last change of repository # on server + "metalink", # Specifies a URL to a metalink file for the + # repomd.xml, a list of mirrors for the entire repository are + # generated by converting the mirrors for the repomd.xml file to a + # baseurl. "mirror_list", # url of mirrorlist, or None "mirror_urls", # list of urls obtained from mirrorlist or None #"persist_dir", # @@ -125,7 +130,7 @@ class Repository(object): def __init__(self, objid, repoid, arch, basearch, base_urls, config_file, cost, enabled, gpg_check, last_edit, last_update, name, pkg_dir, ready, releasever, repo_gpg_check, revision, - timeout, mirror_list=None, mirror_urls=None): + timeout, metalink=None, mirror_list=None, mirror_urls=None): for arg in ('last_edit', 'last_update'): if ( locals()[arg] is not None and not isinstance(locals()[arg], datetime)): @@ -147,6 +152,7 @@ class Repository(object): self.gpg_check = bool(gpg_check) self.last_edit = last_edit self.last_update = last_update + self.metalink = "" if not metalink else metalink self.mirror_list = "" if not mirror_list else mirror_list self.mirror_urls = [] if not mirror_urls else list(mirror_urls) self.name = name |