summaryrefslogtreecommitdiffstats
path: root/src/sbin
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2006-02-27 20:07:09 +0000
committerNarayan Desai <desai@mcs.anl.gov>2006-02-27 20:07:09 +0000
commit9e19b48f3213af71b63432800cc66fedeb4c000d (patch)
tree816737e9e38cedf45eb324e36407b10856339f7d /src/sbin
parentfc9881381c8bb4d6e729532de2fe030b3ff418b3 (diff)
downloadbcfg2-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/sbin')
-rwxr-xr-xsrc/sbin/bcfg222
1 files changed, 17 insertions, 5 deletions
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)