diff options
Diffstat (limited to 'src/lib/Bcfg2/Server/Plugins/Git.py')
-rw-r--r-- | src/lib/Bcfg2/Server/Plugins/Git.py | 42 |
1 files changed, 13 insertions, 29 deletions
diff --git a/src/lib/Bcfg2/Server/Plugins/Git.py b/src/lib/Bcfg2/Server/Plugins/Git.py index 8f8ea87f1..30416a147 100644 --- a/src/lib/Bcfg2/Server/Plugins/Git.py +++ b/src/lib/Bcfg2/Server/Plugins/Git.py @@ -1,44 +1,28 @@ -"""The Git plugin provides a revision interface for Bcfg2 repos using git.""" +""" The Git plugin provides a revision interface for Bcfg2 repos using +git. """ -import os -from dulwich.repo import Repo +from dulwich.repo import Repo # pylint: disable=F0401 import Bcfg2.Server.Plugin -# for debugging output only -import logging -logger = logging.getLogger('Bcfg2.Plugins.Git') - class Git(Bcfg2.Server.Plugin.Plugin, Bcfg2.Server.Plugin.Version): - """Git is a version plugin for dealing with Bcfg2 repos.""" - name = 'Git' + """ The Git plugin provides a revision interface for Bcfg2 repos + using git. """ __author__ = 'bcfg-dev@mcs.anl.gov' + __vcs_metadata_path__ = ".git" 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 git directory for bcfg2 repo - git_dir = "%s/.git" % datastore - - # Read revision from bcfg2 repo - if os.path.isdir(git_dir): - self.get_revision() - else: - logger.error("%s is not a directory" % git_dir) - raise Bcfg2.Server.Plugin.PluginInitError - - logger.debug("Initialized git plugin with git directory %s" % git_dir) + Bcfg2.Server.Plugin.Version.__init__(self, datastore) + self.logger.debug("Initialized git plugin with git directory %s" % + self.vcs_path) def get_revision(self): """Read git revision information for the Bcfg2 repository.""" try: - repo = Repo(self.datastore) - revision = repo.head() + return Repo(self.datastore).head() except: - logger.error("Failed to read git repository; disabling git support") - raise Bcfg2.Server.Plugin.PluginInitError - return revision + msg = "Failed to read git repository" + self.logger.error(msg) + raise Bcfg2.Server.Plugin.PluginExecutionError(msg) |