summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-06-01 15:56:33 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-06-01 15:56:33 -0400
commite7f94617ef01a31ca90550cfa661d1b2618671b1 (patch)
tree55cf560d0149672a775d8b6913bfd668ccc5ccad /src/lib/Bcfg2/Server/Plugins/Packages/Collection.py
parent8ddf1d0b4a08dd3786d2c135c5a0312f589f3657 (diff)
downloadbcfg2-e7f94617ef01a31ca90550cfa661d1b2618671b1.tar.gz
bcfg2-e7f94617ef01a31ca90550cfa661d1b2618671b1.tar.bz2
bcfg2-e7f94617ef01a31ca90550cfa661d1b2618671b1.zip
fixed caching of Collection objects; moved bcfg2-info packagesources code into Collection.py
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Packages/Collection.py')
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Packages/Collection.py33
1 files changed, 29 insertions, 4 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py b/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py
index b2155dfa9..efa50f0a6 100644
--- a/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py
+++ b/src/lib/Bcfg2/Server/Plugins/Packages/Collection.py
@@ -1,4 +1,4 @@
-import sys
+ import sys
import copy
import logging
import Bcfg2.Server.Plugin
@@ -52,13 +52,38 @@ class Collection(Bcfg2.Server.Plugin.Debuggable):
@property
def cachekey(self):
- return md5(self.get_config().encode(Bcfg2.Server.Plugin.encoding)).hexdigest()
+ return md5(self.sourcelist().encode(Bcfg2.Server.Plugin.encoding)).hexdigest()
def get_config(self):
- self.logger.error("Packages: Cannot generate config for host with "
- "multiple source types (%s)" % self.metadata.hostname)
+ self.logger.error("Packages: Cannot generate config for host %s with "
+ "no sources or multiple source types" %
+ self.metadata.hostname)
return ""
+ def sourcelist(self):
+ srcs = []
+ for source in self.sources:
+ # get_urls() loads url_map as a side-effect
+ source.get_urls()
+ for url_map in source.url_map:
+ reponame = source.get_repo_name(url_map)
+ srcs.append("Name: %s" % reponame)
+ srcs.append(" Type: %s" % source.ptype)
+ if url_map['url']:
+ srcs.append(" URL: %s" % url_map['url'])
+ elif url_map['rawurl']:
+ srcs.append(" RAWURL: %s" % url_map['rawurl'])
+ if source.gpgkeys:
+ srcs.append(" GPG Key(s): %s" % ", ".join(source.gpgkeys))
+ else:
+ srcs.append(" GPG Key(s): None")
+ if len(source.blacklist):
+ srcs.append(" Blacklist: %s" % ", ".join(source.blacklist))
+ if len(source.whitelist):
+ srcs.append(" Whitelist: %s" % ", ".join(source.whitelist))
+ srcs.append("")
+ return "\n".join(srcs)
+
def get_relevant_groups(self):
groups = []
for source in self.sources: