diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2013-03-10 22:28:57 +0100 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2015-05-10 16:25:27 +0200 |
commit | a7d91adc6613ef43b6ab2cace17eb200625b5da6 (patch) | |
tree | 493ed9a98f8d2fe15073f56684867ecdbd59c49d /src/lib/Bcfg2/Server | |
parent | 2ab4e18d5f2f0caabc60d4aa44e8f9026be79196 (diff) | |
download | bcfg2-a7d91adc6613ef43b6ab2cace17eb200625b5da6.tar.gz bcfg2-a7d91adc6613ef43b6ab2cace17eb200625b5da6.tar.bz2 bcfg2-a7d91adc6613ef43b6ab2cace17eb200625b5da6.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.
Diffstat (limited to 'src/lib/Bcfg2/Server')
-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 4dd5fcd1d..d1d937deb 100644 --- a/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py +++ b/src/lib/Bcfg2/Server/Plugins/Packages/__init__.py @@ -552,21 +552,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 " |