summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Admin/Pull.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Server/Admin/Pull.py')
-rw-r--r--src/lib/Server/Admin/Pull.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/lib/Server/Admin/Pull.py b/src/lib/Server/Admin/Pull.py
index 2a6432f22..a8113f233 100644
--- a/src/lib/Server/Admin/Pull.py
+++ b/src/lib/Server/Admin/Pull.py
@@ -26,7 +26,6 @@ class Pull(Bcfg2.Server.Admin.MetadataCore):
def __init__(self, configfile):
Bcfg2.Server.Admin.MetadataCore.__init__(self, configfile,
self.__usage__)
- self.stats = self.bcore.stats
self.log = False
self.mode = 'interactive'
@@ -49,12 +48,15 @@ class Pull(Bcfg2.Server.Admin.MetadataCore):
def BuildNewEntry(self, client, etype, ename):
'''construct a new full entry for given client/entry from statistics'''
new_entry = {'type':etype, 'name':ename}
- try:
- (owner, group, perms, contents) = \
- self.stats.GetCurrentEntry(client, etype, ename)
- except Bcfg2.Server.Plugin.PluginExecutionError:
- print "Statistics plugin failure; could not fetch current state"
- raise SystemExit(1)
+ for plugin in self.bcore.pull_sources:
+ try:
+ (owner, group, perms, contents) = \
+ plugin.GetCurrentEntry(client, etype, ename)
+ break
+ except Bcfg2.Server.Plugin.PluginExecutionError:
+ if plugin == self.bcore.pull_sources[-1]:
+ print "Pull Source failure; could not fetch current state"
+ raise SystemExit(1)
data = {'owner':owner, 'group':group, 'perms':perms, 'text':contents}
for k, v in data.iteritems():