diff options
author | Narayan Desai <desai@mcs.anl.gov> | 2006-02-27 20:07:09 +0000 |
---|---|---|
committer | Narayan Desai <desai@mcs.anl.gov> | 2006-02-27 20:07:09 +0000 |
commit | 9e19b48f3213af71b63432800cc66fedeb4c000d (patch) | |
tree | 816737e9e38cedf45eb324e36407b10856339f7d /src | |
parent | fc9881381c8bb4d6e729532de2fe030b3ff418b3 (diff) | |
download | bcfg2-9e19b48f3213af71b63432800cc66fedeb4c000d.tar.gz bcfg2-9e19b48f3213af71b63432800cc66fedeb4c000d.tar.bz2 bcfg2-9e19b48f3213af71b63432800cc66fedeb4c000d.zip |
Improve error handling for server problems
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@1773 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/Client/Proxy.py | 2 | ||||
-rwxr-xr-x | src/sbin/bcfg2 | 22 |
2 files changed, 18 insertions, 6 deletions
diff --git a/src/lib/Client/Proxy.py b/src/lib/Client/Proxy.py index a58f8bd53..b019e5656 100644 --- a/src/lib/Client/Proxy.py +++ b/src/lib/Client/Proxy.py @@ -52,7 +52,7 @@ class SafeProxy: time.sleep(0.5) except: break - self.log.error("%s failed:\nCould not connect to %s" % (method_name, self.component)) + raise xmlrpclib.Fault(20, 'Server Failure') def __get_location(self, name): '''Perform component location lookups if needed''' diff --git a/src/sbin/bcfg2 b/src/sbin/bcfg2 index 5265601ab..3c97e8bab 100755 --- a/src/sbin/bcfg2 +++ b/src/sbin/bcfg2 @@ -6,7 +6,7 @@ __revision__ = '$Revision$' from ConfigParser import ConfigParser, NoSectionError, NoOptionError from lxml.etree import Element, XML, tostring, XMLSyntaxError -import getopt, logging, os, signal, sys, tempfile, time, traceback +import getopt, logging, os, signal, sys, tempfile, time, traceback, xmlrpclib import Bcfg2.Client.Proxy, Bcfg2.Logging def cb_sigint_handler(signum, frame): @@ -285,8 +285,12 @@ class Client: if self.setup['profile']: proxy.AssertProfile(self.setup['profile']) - - probe_data = proxy.GetProbes() + + try: + probe_data = proxy.GetProbes() + except xmlrpclib.Fault: + self.logger.error("Failed to download probes from bcfg2") + raise SystemExit, 1 times['probe_download'] = time.time() @@ -309,7 +313,11 @@ class Client: times['probe_upload'] = time.time() - rawconfig = proxy.GetConfig() + try: + rawconfig = proxy.GetConfig() + except xmlrpclib.Fault: + self.logger.error("Failed to download configuration from bcfg2") + raise SystemExit, 2 times['config_download'] = time.time() @@ -378,7 +386,11 @@ class Client: stats.append(timeinfo) feedback.append(stats) - proxy.RecvStats(tostring(feedback)) + try: + proxy.RecvStats(tostring(feedback)) + except xmlrpclib.Fault: + self.logger.error("Failed to upload configuration statistics") + raise SystemExit, 2 if __name__ == '__main__': signal.signal(signal.SIGINT, cb_sigint_handler) |