From 5f279043651e5f246d8e14bf3d63d096367eef83 Mon Sep 17 00:00:00 2001 From: Jan Kaluza Date: Jun 23 2016 12:33:30 +0000 Subject: Fix situation when we have half-enabled some module because of error during enabling --- diff --git a/fm/metadata_cache.py b/fm/metadata_cache.py index d5cbcbc..1e42cb8 100644 --- a/fm/metadata_cache.py +++ b/fm/metadata_cache.py @@ -188,11 +188,18 @@ class MetadataCache(object): def is_cached(self, mod): """ - Returns True if the Module is in cache in valid state. + Returns True if the Module is in cache. :param Module mod: Module to look for in a cache. """ - #TODO: Add some caching limits. - return False mmd_file = os.path.join(self.cache_dir, mod.name + ".yaml") return os.path.exists(mmd_file) + + def is_valid(self, mod): + """ + Returns True if the Module is in cache and is valid (not expired). + + :param Module mod: Module to look for in a cache. + """ + #TODO: Add some caching limits. + return False diff --git a/fm/modules.py b/fm/modules.py index 5d0272a..c38b11e 100644 --- a/fm/modules.py +++ b/fm/modules.py @@ -95,7 +95,7 @@ class Modules(OrderedDict): solver = ModulesResolver() for name, mod in self.items(): - if mod.is_enabled(): + if mod.is_enabled() and self.enabled_cache.is_cached(mod): solver.add_enabled_mmd(mod.mmd) else: solver.add_available_mmd(mod.mmd) @@ -221,7 +221,7 @@ class Modules(OrderedDict): OrderedDict.__setitem__(self, name, mod) - if not mod.mmd or self.available_cache.is_cached(mod): + if not mod.mmd or self.available_cache.is_valid(mod): return if self.disable_cache: