Author: tmckay
Date: 2011-10-06 14:43:37 +0000 (Thu, 06 Oct 2011)
New Revision: 5049
Modified:
trunk/cumin/python/cumin/main.py
Log:
Prevent cumin-web crash on failed imports for Aviary, disable Aviary interface
with a log message and continue.
Modified: trunk/cumin/python/cumin/main.py
===================================================================
--- trunk/cumin/python/cumin/main.py 2011-10-06 14:15:37 UTC (rev 5048)
+++ trunk/cumin/python/cumin/main.py 2011-10-06 14:43:37 UTC (rev 5049)
@@ -175,27 +175,34 @@
self.remote = Catalog()
ops = [QmfOperations("qmf", self.session)]
+ imports_ok = True
+ if self.aviary_job_servers or self.aviary_query_servers:
+ try:
+ from sage.aviary.aviaryoperations import \
+ SudsLogging, AviaryOperationsFactory
+ except:
+ imports_ok = False
+ if imports_ok:
+ SudsLogging.set(self.aviary_suds_logs, self.home)
+ aviary_dir = os.path.join(self.home, "rpc-defs/aviary")
+
+ # The factory will choose an impl that gives us jobs, queries, or both
+ aviary_itf = AviaryOperationsFactory("aviary", aviary_dir,
+ self.aviary_job_servers,
+ self.aviary_query_servers,
+ self.aviary_key, self.aviary_cert,
+ self.aviary_root_cert,
+ self.aviary_domain_verify)
+ ops.insert(0, aviary_itf)
+ else:
+ log.info("Imports failed for Aviary interface, disabling")
+
log.info("%s Aviary interface for job submission and control." % \
- (self.aviary_job_servers and "Enabling" or
"Disabling"))
+ ((self.aviary_job_servers and imports_ok) and "Enabled" or
"Disabled"))
log.info("%s Aviary interface for query operations." % \
- (self.aviary_query_servers and "Enabling" or
"Disabling"))
+ ((self.aviary_query_servers and imports_ok) and "Enabled" or
"Disabled"))
- if self.aviary_job_servers or self.aviary_query_servers:
- from sage.aviary.aviaryoperations import \
- SudsLogging, AviaryOperationsFactory
- SudsLogging.set(self.aviary_suds_logs, self.home)
- aviary_dir = os.path.join(self.home, "rpc-defs/aviary")
-
- # The factory will choose an impl that gives us jobs, queries, or both
- aviary_itf = AviaryOperationsFactory("aviary", aviary_dir,
- self.aviary_job_servers,
- self.aviary_query_servers,
- self.aviary_key, self.aviary_cert,
- self.aviary_root_cert,
- self.aviary_domain_verify)
- ops.insert(0, aviary_itf)
-
self.remote.add_mechanisms(ops)
# Create RPC interface for Wallaby
Show replies by date