| Following analysis, the following tasks are needed:
- refactor external facts implementation to create a list of external facts files and associated resolvers and solve them in one step
- implement caching of external facts:
-
- list-cache-groups should list the external facts files
- external resolvers should provide a list of resolved facts, to be used in caching (eg. instead of directly calling facts.add_external_fact, but a proxy resolver method that will cache the facts names, etc.)
- cache module should handle both internal and external resolvers (eg. instead of relying on directly receiving name()/names() instead from resolver they could be received as arguments or implement name/names in external resolvers, etc.)
- if same external facts file is present in more than one place, throw a warning and use only one of them, as filename is used as key for caching and must be unique
|