diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2013-03-10 22:28:57 +0100 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2013-07-03 11:58:43 +0200 |
commit | b0ebe7b267742e186b5cc3bde7dec95298c98cf1 (patch) | |
tree | 487b64520bbd552476d97785542d60dcec283d58 | |
parent | a83db29b82ea3be6bfd226dd5b66aea1aab50cff (diff) | |
download | bcfg2-b0ebe7b267742e186b5cc3bde7dec95298c98cf1.tar.gz bcfg2-b0ebe7b267742e186b5cc3bde7dec95298c98cf1.tar.bz2 bcfg2-b0ebe7b267742e186b5cc3bde7dec95298c98cf1.zip |
Plugins/Packages/Collection: add cclass marker for Sources
The classes of Sources could now specify another class for the
Collection container. One host could only use one Collection class at
a time. So all different Sources have to reference the same
Collection.
If no "cclass" is defined in the Sources class, the collection class
name is generated by striping the "Source" string from the Sources
class name like before.
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Packages/__init__.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py b/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py index 40afd2690..3420735dd 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py @@ -514,21 +514,23 @@ class Packages(Bcfg2.Server.Plugin.Plugin, for source in self.sources.entries: if source.applies(metadata): relevant.append(source) - sclasses.update([source.__class__]) + if 'cclass' in dir(source): + sclasses.update([source.cclass]) + else: + sclass = source.__class__.__name__.replace("Source", "") + sclasses.update([sclass]) if len(sclasses) > 1: self.logger.warning("Packages: Multiple source types found for " "%s: %s" % - (metadata.hostname, - ",".join([s.__name__ for s in sclasses]))) + (metadata.hostname, ",".join([sclasses]))) cclass = Collection elif len(sclasses) == 0: self.logger.error("Packages: No sources found for %s" % metadata.hostname) cclass = Collection else: - cclass = get_collection_class( - sclasses.pop().__name__.replace("Source", "")) + cclass = get_collection_class(sclasses.pop()) if self.debug_flag: self.logger.error("Packages: Using %s for Collection of sources " |