From 65af39760a0cb37e33caec50cf195323d7b79b4b Mon Sep 17 00:00:00 2001 From: Rafael dos Santos Date: Nov 20 2018 15:48:20 +0000 Subject: Add lookup for default stream and profiles stream_defaults = {module-name: stream-name} profile_defaults = {module-name: {stream-name: [profiles]}} Signed-off-by: Rafael dos Santos --- diff --git a/_fedmod/_fetchrepodata.py b/_fedmod/_fetchrepodata.py index 4e00efd..527539b 100644 --- a/_fedmod/_fetchrepodata.py +++ b/_fedmod/_fetchrepodata.py @@ -141,11 +141,15 @@ def _get_distro_paths(dataset_name): _MODULE_FORWARD_LOOKUP_CACHE = "module-contents" _PROFILE_FORWARD_LOOKUP_CACHE = "module-profiles" +_STREAM_DEFAULT_FORWARD_LOOKUP_CACHE = "stream-defaults" +_PROFILE_DEFAULT_FORWARD_LOOKUP_CACHE = "profile-defaults" _SRPM_REVERSE_LOOKUP_CACHE = "srpm-to-module" _RPM_REVERSE_LOOKUP_CACHE = "rpm-to-module" _ALL_CACHES = [_MODULE_FORWARD_LOOKUP_CACHE, _PROFILE_FORWARD_LOOKUP_CACHE, + _STREAM_DEFAULT_FORWARD_LOOKUP_CACHE, + _PROFILE_DEFAULT_FORWARD_LOOKUP_CACHE, _SRPM_REVERSE_LOOKUP_CACHE, _RPM_REVERSE_LOOKUP_CACHE] @@ -267,6 +271,10 @@ def _write_lookup_caches(paths): rpm_reverse_lookup = defaultdict(list) # {module-name: {stream: [profiles]}} profile_forward_lookup = defaultdict(dict) + # {module-name: stream} + stream_defaults_forward_lookup = {} + # {module-name: {stream : [profiles]}} + profile_defaults_forward_lookup = defaultdict(dict) for index_set in index_sets: for index in index_set: @@ -288,10 +296,24 @@ def _write_lookup_caches(paths): profiles = list(module.get_profiles().keys()) # only names profile_forward_lookup[module_name][sname] = profiles + defaults = index.get_defaults() + if not defaults: + continue + + stream_defaults_forward_lookup[module_name] = defaults.peek_default_stream() + # Default profiles for each stream in the module + for s, pset in defaults.peek_profile_defaults().items(): + profile_defaults_forward_lookup[module_name][s] = pset.get() + + # Cache the lookup tables as local JSON files print("Caching lookup tables") _write_cache(paths, _MODULE_FORWARD_LOOKUP_CACHE, module_forward_lookup) _write_cache(paths, _PROFILE_FORWARD_LOOKUP_CACHE, profile_forward_lookup) + _write_cache(paths, _STREAM_DEFAULT_FORWARD_LOOKUP_CACHE, + stream_defaults_forward_lookup) + _write_cache(paths, _PROFILE_DEFAULT_FORWARD_LOOKUP_CACHE, + profile_defaults_forward_lookup) _write_cache(paths, _SRPM_REVERSE_LOOKUP_CACHE, srpm_reverse_lookup) _write_cache(paths, _RPM_REVERSE_LOOKUP_CACHE, rpm_reverse_lookup) @@ -313,6 +335,8 @@ class LocalMetadataCache: rpm_to_modules = attrib(type=dict) module_to_packages = attrib(type=dict) module_to_profiles = attrib(type=dict) + stream_defaults = attrib(type=dict) + profile_defaults = attrib(type=dict) repo_cache_paths = attrib(type=dict) @@ -347,6 +371,8 @@ def load_cached_repodata(dataset_name): rpm_to_modules=_read_cache(paths, _RPM_REVERSE_LOOKUP_CACHE), module_to_packages=_read_cache(paths, _MODULE_FORWARD_LOOKUP_CACHE), module_to_profiles=_read_cache(paths, _PROFILE_FORWARD_LOOKUP_CACHE), + stream_defaults=_read_cache(paths, _STREAM_DEFAULT_FORWARD_LOOKUP_CACHE), + profile_defaults=_read_cache(paths, _PROFILE_DEFAULT_FORWARD_LOOKUP_CACHE), repo_cache_paths={ n: (c.arch.local_cache_path, c.src.local_cache_path) for n, c in paths.repo_paths_by_name.items()