summaryrefslogtreecommitdiffstats
path: root/src/lib/Bcfg2/Server
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2013-07-09 14:08:00 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2013-07-09 14:08:00 -0400
commit217b8c75e3f5163debb56150c27440b5268e3542 (patch)
tree59dad5d8582efbce0e9e0738348ceb09464cd4fc /src/lib/Bcfg2/Server
parentaccbb1831ae88e57baabf01a783fe7a8ee0a0ccb (diff)
downloadbcfg2-217b8c75e3f5163debb56150c27440b5268e3542.tar.gz
bcfg2-217b8c75e3f5163debb56150c27440b5268e3542.tar.bz2
bcfg2-217b8c75e3f5163debb56150c27440b5268e3542.zip
Core: Gracefully handle failure to add client without default group
Diffstat (limited to 'src/lib/Bcfg2/Server')
-rw-r--r--src/lib/Bcfg2/Server/Core.py7
-rw-r--r--src/lib/Bcfg2/Server/Plugins/Metadata.py9
2 files changed, 10 insertions, 6 deletions
diff --git a/src/lib/Bcfg2/Server/Core.py b/src/lib/Bcfg2/Server/Core.py
index a22531d2d..1291584b0 100644
--- a/src/lib/Bcfg2/Server/Core.py
+++ b/src/lib/Bcfg2/Server/Core.py
@@ -858,7 +858,12 @@ class BaseCore(object):
imd = self.metadata_cache.get(client_name, None)
if not imd:
self.logger.debug("Building metadata for %s" % client_name)
- imd = self.metadata.get_initial_metadata(client_name)
+ try:
+ imd = self.metadata.get_initial_metadata(client_name)
+ except MetadataConsistencyError:
+ self.critical_error(
+ "Client metadata resolution error for %s: %s" %
+ (client_name, sys.exc_info()[1]))
connectors = self.plugins_by_type(Connector)
for conn in connectors:
grps = conn.get_additional_groups(imd)
diff --git a/src/lib/Bcfg2/Server/Plugins/Metadata.py b/src/lib/Bcfg2/Server/Plugins/Metadata.py
index 213f29cd0..67fd4c93d 100644
--- a/src/lib/Bcfg2/Server/Plugins/Metadata.py
+++ b/src/lib/Bcfg2/Server/Plugins/Metadata.py
@@ -1142,9 +1142,8 @@ class Metadata(Bcfg2.Server.Plugin.Metadata,
require_public=False)
profile = _add_group(pgroup)
else:
- msg = "Cannot add new client %s; no default group set" % client
- self.logger.error(msg)
- raise Bcfg2.Server.Plugin.MetadataConsistencyError(msg)
+ raise Bcfg2.Server.Plugin.MetadataConsistencyError(
+ "Cannot add new client %s; no default group set" % client)
for cgroup in self.clientgroups.get(client, []):
if cgroup in groups:
@@ -1167,8 +1166,8 @@ class Metadata(Bcfg2.Server.Plugin.Metadata,
try:
bundles.update(self.groups[group].bundles)
except KeyError:
- self.logger.warning("%s: %s is a member of undefined group %s"
- % (self.name, client, group))
+ self.logger.warning("%s: %s is a member of undefined group %s" %
+ (self.name, client, group))
aliases = self.raliases.get(client, set())
addresses = self.raddresses.get(client, set())