From c058c61d3358b2def1bb67ec18bfe632b0543751 Mon Sep 17 00:00:00 2001 From: Jason Kincl Date: Thu, 13 Jun 2013 18:50:24 -0400 Subject: Svn: Adding config options for specifying a user and password for subversion and to trust server SSL certificates --- src/lib/Bcfg2/Server/Plugins/Svn.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) (limited to 'src/lib/Bcfg2') diff --git a/src/lib/Bcfg2/Server/Plugins/Svn.py b/src/lib/Bcfg2/Server/Plugins/Svn.py index 51f44c52d..b7f4fec57 100644 --- a/src/lib/Bcfg2/Server/Plugins/Svn.py +++ b/src/lib/Bcfg2/Server/Plugins/Svn.py @@ -59,9 +59,37 @@ class Svn(Bcfg2.Server.Plugin.Version): self.client.callback_conflict_resolver = \ self.get_conflict_resolver(choice) + try: + if self.core.setup.cfp.get( + "svn", + "always_trust").lower() == "true": + self.logger.info("Svn: Trust subversion SSL certificate") + self.client.callback_ssl_server_trust_prompt = \ + self.ssl_server_trust_prompt + except: + pass + + try: + if self.core.setup.cfp.get("svn", "user") and \ + self.core.setup.cfp.get("svn", "password"): + self.logger.info("Svn: Using user and password") + self.client.callback_get_login = \ + self.get_login + except: + pass + self.logger.debug("Svn: Initialized svn plugin with SVN directory %s" % self.vcs_path) + def get_login(self, realm, username, may_save): + return True, \ + self.core.setup.cfp.get("svn", "user"), \ + self.core.setup.cfp.get("svn", "password"), \ + False + + def ssl_server_trust_prompt(self, trust_dict): + return True, trust_dict['failures'], False + def get_conflict_resolver(self, choice): """ Get a PySvn conflict resolution callback """ def callback(conflict_description): -- cgit v1.2.3-1-g7c22 From 98bfb01afb27cd0de0dac5c7a6190ac22fa1d0f3 Mon Sep 17 00:00:00 2001 From: Jason Kincl Date: Fri, 14 Jun 2013 10:02:48 -0400 Subject: Svn: Tidying up code and logging of subversion trust and user/pass options --- src/lib/Bcfg2/Server/Plugins/Svn.py | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) (limited to 'src/lib/Bcfg2') diff --git a/src/lib/Bcfg2/Server/Plugins/Svn.py b/src/lib/Bcfg2/Server/Plugins/Svn.py index b7f4fec57..02656ffbe 100644 --- a/src/lib/Bcfg2/Server/Plugins/Svn.py +++ b/src/lib/Bcfg2/Server/Plugins/Svn.py @@ -63,31 +63,38 @@ class Svn(Bcfg2.Server.Plugin.Version): if self.core.setup.cfp.get( "svn", "always_trust").lower() == "true": - self.logger.info("Svn: Trust subversion SSL certificate") self.client.callback_ssl_server_trust_prompt = \ self.ssl_server_trust_prompt - except: - pass + except (ConfigParser.NoSectionError, ConfigParser.NoOptionError): + self.logger.debug("Svn: Using subversion cache for SSL " + "certificate trust") try: - if self.core.setup.cfp.get("svn", "user") and \ - self.core.setup.cfp.get("svn", "password"): - self.logger.info("Svn: Using user and password") + if (self.core.setup.cfp.get("svn", "user") and + self.core.setup.cfp.get("svn", "password")): self.client.callback_get_login = \ self.get_login - except: - pass + except (ConfigParser.NoSectionError, ConfigParser.NoOptionError): + self.logger.info("Svn: Using subversion cache for " + "password-based authetication") self.logger.debug("Svn: Initialized svn plugin with SVN directory %s" % self.vcs_path) def get_login(self, realm, username, may_save): + self.logger.debug("Svn: Logging in with username: %s" % + self.core.setup.cfp.get("svn", "user")) return True, \ self.core.setup.cfp.get("svn", "user"), \ self.core.setup.cfp.get("svn", "password"), \ False def ssl_server_trust_prompt(self, trust_dict): + self.logger.debug("Svn: Trusting SSL certificate from %s, " + "issued by %s for realm %s" % + (trust_dict['hostname'], + trust_dict['issuer_dname'], + trust_dict['realm'])) return True, trust_dict['failures'], False def get_conflict_resolver(self, choice): -- cgit v1.2.3-1-g7c22 From 06b398542a5bf4a073f407a0fe96b5fed8d8a90a Mon Sep 17 00:00:00 2001 From: Jason Kincl Date: Fri, 14 Jun 2013 14:02:18 -0400 Subject: Svn: Fixing pep8 and pylint checks --- src/lib/Bcfg2/Server/Plugins/Svn.py | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) (limited to 'src/lib/Bcfg2') diff --git a/src/lib/Bcfg2/Server/Plugins/Svn.py b/src/lib/Bcfg2/Server/Plugins/Svn.py index 02656ffbe..04395e144 100644 --- a/src/lib/Bcfg2/Server/Plugins/Svn.py +++ b/src/lib/Bcfg2/Server/Plugins/Svn.py @@ -61,7 +61,7 @@ class Svn(Bcfg2.Server.Plugin.Version): try: if self.core.setup.cfp.get( - "svn", + "svn", "always_trust").lower() == "true": self.client.callback_ssl_server_trust_prompt = \ self.ssl_server_trust_prompt @@ -70,29 +70,32 @@ class Svn(Bcfg2.Server.Plugin.Version): "certificate trust") try: - if (self.core.setup.cfp.get("svn", "user") and + if (self.core.setup.cfp.get("svn", "user") and self.core.setup.cfp.get("svn", "password")): self.client.callback_get_login = \ self.get_login except (ConfigParser.NoSectionError, ConfigParser.NoOptionError): - self.logger.info("Svn: Using subversion cache for " + self.logger.info("Svn: Using subversion cache for " "password-based authetication") self.logger.debug("Svn: Initialized svn plugin with SVN directory %s" % self.vcs_path) - + # pylint: disable=W0613 def get_login(self, realm, username, may_save): - self.logger.debug("Svn: Logging in with username: %s" % + """ PySvn callback to get credentials for HTTP basic authentication """ + self.logger.debug("Svn: Logging in with username: %s" % self.core.setup.cfp.get("svn", "user")) return True, \ - self.core.setup.cfp.get("svn", "user"), \ - self.core.setup.cfp.get("svn", "password"), \ - False + self.core.setup.cfp.get("svn", "user"), \ + self.core.setup.cfp.get("svn", "password"), \ + False + # pylint: enable=W0613 def ssl_server_trust_prompt(self, trust_dict): - self.logger.debug("Svn: Trusting SSL certificate from %s, " + """ PySvn callback to always trust SSL certificates from SVN server """ + self.logger.debug("Svn: Trusting SSL certificate from %s, " "issued by %s for realm %s" % - (trust_dict['hostname'], + (trust_dict['hostname'], trust_dict['issuer_dname'], trust_dict['realm'])) return True, trust_dict['failures'], False -- cgit v1.2.3-1-g7c22 From 9b7317bb94dec3235207598f85f34b1c01cae4f4 Mon Sep 17 00:00:00 2001 From: Jason Kincl Date: Fri, 14 Jun 2013 14:02:48 -0400 Subject: Probes: Fixing Django exception import --- src/lib/Bcfg2/Server/Plugins/Probes.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/lib/Bcfg2') diff --git a/src/lib/Bcfg2/Server/Plugins/Probes.py b/src/lib/Bcfg2/Server/Plugins/Probes.py index 8937e4740..0974184b4 100644 --- a/src/lib/Bcfg2/Server/Plugins/Probes.py +++ b/src/lib/Bcfg2/Server/Plugins/Probes.py @@ -12,6 +12,7 @@ import Bcfg2.Server.Plugin try: from django.db import models + from django.core.exceptions import MultipleObjectsReturned HAS_DJANGO = True class ProbesDataModel(models.Model, @@ -255,7 +256,7 @@ class Probes(Bcfg2.Server.Plugin.Probing, ProbesGroupsModel.objects.get_or_create( hostname=client.hostname, group=group) - except ProbesGroupsModel.MultipleObjectsReturned: + except MultipleObjectsReturned: ProbesGroupsModel.objects.filter(hostname=client.hostname, group=group).delete() ProbesGroupsModel.objects.get_or_create( -- cgit v1.2.3-1-g7c22 From 6ce11c9e50cba0303aea06672388d3af452fa468 Mon Sep 17 00:00:00 2001 From: Jason Kincl Date: Mon, 17 Jun 2013 10:38:42 -0400 Subject: Svn: Fixing pep8 check --- src/lib/Bcfg2/Server/Plugins/Svn.py | 1 + 1 file changed, 1 insertion(+) (limited to 'src/lib/Bcfg2') diff --git a/src/lib/Bcfg2/Server/Plugins/Svn.py b/src/lib/Bcfg2/Server/Plugins/Svn.py index 04395e144..240fd7f89 100644 --- a/src/lib/Bcfg2/Server/Plugins/Svn.py +++ b/src/lib/Bcfg2/Server/Plugins/Svn.py @@ -80,6 +80,7 @@ class Svn(Bcfg2.Server.Plugin.Version): self.logger.debug("Svn: Initialized svn plugin with SVN directory %s" % self.vcs_path) + # pylint: disable=W0613 def get_login(self, realm, username, may_save): """ PySvn callback to get credentials for HTTP basic authentication """ -- cgit v1.2.3-1-g7c22