diff options
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Darcs.py')
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Darcs.py | 41 |
1 files changed, 14 insertions, 27 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Darcs.py b/src/lib/Bcfg2/Server/Plugins/Darcs.py index 9fb9ff4f1..9ec8e2df3 100644 --- a/src/lib/Bcfg2/Server/Plugins/Darcs.py +++ b/src/lib/Bcfg2/Server/Plugins/Darcs.py @@ -1,35 +1,22 @@ -import os +""" Darcs is a version plugin for dealing with Bcfg2 repos stored in the +Darcs VCS. """ + from subprocess import Popen, PIPE import Bcfg2.Server.Plugin -# for debugging output only -import logging -logger = logging.getLogger('Bcfg2.Plugins.Darcs') class Darcs(Bcfg2.Server.Plugin.Plugin, Bcfg2.Server.Plugin.Version): - """Darcs is a version plugin for dealing with Bcfg2 repos.""" - name = 'Darcs' + """ Darcs is a version plugin for dealing with Bcfg2 repos stored + in the Darcs VCS. """ __author__ = 'bcfg-dev@mcs.anl.gov' - experimental = True + __vcs_metadata_path__ = "_darcs" def __init__(self, core, datastore): Bcfg2.Server.Plugin.Plugin.__init__(self, core, datastore) - Bcfg2.Server.Plugin.Version.__init__(self) - self.core = core - self.datastore = datastore - - # path to darcs directory for bcfg2 repo - darcs_dir = "%s/_darcs" % datastore - - # Read changeset from bcfg2 repo - if os.path.isdir(darcs_dir): - self.get_revision() - else: - logger.error("%s is not present." % darcs_dir) - raise Bcfg2.Server.Plugin.PluginInitError - - logger.debug("Initialized Darcs plugin with darcs directory = %s" % darcs_dir) + Bcfg2.Server.Plugin.Version.__init__(self, datastore) + self.logger.debug("Initialized Darcs plugin with darcs directory %s" % + self.vcs_path) def get_revision(self): """Read Darcs changeset information for the Bcfg2 repository.""" @@ -40,9 +27,9 @@ class Darcs(Bcfg2.Server.Plugin.Plugin, stdout=PIPE).stdout.readlines() revision = data[0].strip('\n') except: - logger.error("Failed to read darcs repository; disabling Darcs support") - logger.error('''Ran command "darcs changes" from directory "%s"''' % (self.datastore)) - logger.error("Got output: %s" % data) - raise Bcfg2.Server.Plugin.PluginInitError + msg = "Failed to read darcs repository" + self.logger.error(msg) + self.logger.error('Ran command "darcs changes" from directory "%s"' + % self.datastore) + raise Bcfg2.Server.Plugin.PluginExecutionError(msg) return revision - |