Author: tmckay
Date: 2011-10-05 15:34:14 +0000 (Wed, 05 Oct 2011)
New Revision: 5041
Modified:
trunk/cumin/bin/cumin-web
trunk/cumin/python/cumin/config.py
trunk/cumin/python/cumin/main.py
trunk/sage/python/sage/aviary/aviaryoperations.py
trunk/sage/python/sage/verifiedhttps.py
Log:
Add development flag for suds logging as an aid to debug/verify Aviary.
Add a few "is not None" and "hasattr" checks.
BZ733677 modifications
Modified: trunk/cumin/bin/cumin-web
===================================================================
--- trunk/cumin/bin/cumin-web 2011-10-04 20:36:30 UTC (rev 5040)
+++ trunk/cumin/bin/cumin-web 2011-10-05 15:34:14 UTC (rev 5041)
@@ -22,6 +22,9 @@
cumin.aviary_root_cert = values.aviary_root_cert
cumin.aviary_domain_verify = values.aviary_domain_verify
+ # For development use. Default is False. Undocumented.
+ cumin.aviary_suds_logs = values.aviary_suds_logs
+
def set_wallaby_configs(cumin, values, brokers):
if values.wallaby_broker == "":
cumin.wallaby_broker = brokers[0]
Modified: trunk/cumin/python/cumin/config.py
===================================================================
--- trunk/cumin/python/cumin/config.py 2011-10-04 20:36:30 UTC (rev 5040)
+++ trunk/cumin/python/cumin/config.py 2011-10-05 15:34:14 UTC (rev 5041)
@@ -176,6 +176,11 @@
param = ConfigParameter(self, "aviary-domain-verify", bool)
param.default = True
+ # Intended for development use, not the end user.
+ # Undocumented.
+ param = ConfigParameter(self, "aviary-suds-logs", bool)
+ param.default = False
+
self.log_file = ConfigParameter(self, "log-file", str)
param = ConfigParameter(self, "log-level", str)
Modified: trunk/cumin/python/cumin/main.py
===================================================================
--- trunk/cumin/python/cumin/main.py 2011-10-04 20:36:30 UTC (rev 5040)
+++ trunk/cumin/python/cumin/main.py 2011-10-05 15:34:14 UTC (rev 5041)
@@ -92,6 +92,9 @@
self.aviary_cert = ""
self.aviary_root_cert = ""
self.aviary_domain_verify=True
+
+ # For development use only
+ self.aviary_suds_logs = False
self.wallaby = None
self.wallaby_broker = None
@@ -179,7 +182,9 @@
(self.aviary_query_servers and "Enabling" or
"Disabling"))
if self.aviary_job_servers or self.aviary_query_servers:
- from sage.aviary.aviaryoperations import AviaryOperationsFactory
+ 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
@@ -244,12 +249,15 @@
self.session.start()
self.server.start()
- self.wallaby.start()
+ if self.wallaby is not None:
+ self.wallaby.start()
def stop(self):
log.info("Stopping %s", self)
- self.wallaby.stop()
+ if self.wallaby is not None:
+ self.wallaby.stop()
+
self.server.stop()
try:
self.session.stop()
Modified: trunk/sage/python/sage/aviary/aviaryoperations.py
===================================================================
--- trunk/sage/python/sage/aviary/aviaryoperations.py 2011-10-04 20:36:30 UTC (rev 5040)
+++ trunk/sage/python/sage/aviary/aviaryoperations.py 2011-10-05 15:34:14 UTC (rev 5041)
@@ -15,37 +15,40 @@
from sage.https import *
from datetime import datetime
-
log = logging.getLogger("sage.aviary")
-#f = open("./suds.client.log", 'a+')
-#h = logging.StreamHandler(f)
-#logging.getLogger('suds.client').setLevel(logging.DEBUG)
+class SudsLogging(object):
+ _on = False
+ sudslogs = {"suds.client": None, "suds.transport": None,
"suds.xsd.schema": None, "suds.wsdl": None}
-#f = open("./suds.client.log", 'a+')
-#h = logging.StreamHandler(f)
-#logging.getLogger('suds.client').addHandler(h)
+ @classmethod
+ def set(cls, flag, home):
+ if flag:
+ SudsLogging._on = True
+ for k,v in SudsLogging.sudslogs.iteritems():
+ l = logging.getLogger(k)
+ l.setLevel(logging.DEBUG)
+ try:
+ f = open(os.path.join(home, "log/"+k+".log"),
'a+')
+ h = logging.StreamHandler(f)
+ l.addHandler(h)
+ SudsLogging.sudslogs[k] = h
+ except:
+ pass
+ log.debug("AviaryOperations: suds logging on")
-#logging.getLogger('suds.transport').setLevel(logging.DEBUG)
-#f = open("./suds.transport.log", 'a+')
-#h = logging.StreamHandler(f)
-#logging.getLogger('suds.transport').addHandler(h)
+ elif SudsLogging._on:
+ SudsLogging._on = False
+ for k,v in SudsLogging.sudslogs.iteritems():
+ try:
+ logging.getLogger(k).removeHandler(v)
+ except:
+ pass
+ log.debug("AviaryOperations: suds logging off")
-#logging.getLogger('suds.xsd.schema').setLevel(logging.DEBUG)
-#f = open("./suds.xsd.log", 'a+')
-#h = logging.StreamHandler(f)
-#logging.getLogger('suds.xsd.schema').addHandler(h)
-
-#logging.getLogger('suds.wsdl').setLevel(logging.DEBUG)
-#f = open("./suds.wsdl.log", 'a+')
-#h = logging.StreamHandler(f)
-#logging.getLogger('suds.wsdl').addHandler(h)
-
'''
Stuff to do:
-- Add logging to Aviary
-
- Test pool/schedd/stuff with hierarchical collectors
- Add a summary comment at the top like QMF opreations
Modified: trunk/sage/python/sage/verifiedhttps.py
===================================================================
--- trunk/sage/python/sage/verifiedhttps.py 2011-10-04 20:36:30 UTC (rev 5040)
+++ trunk/sage/python/sage/verifiedhttps.py 2011-10-05 15:34:14 UTC (rev 5041)
@@ -46,7 +46,8 @@
# There is no timeout attribute in earlier versions of this object.
# The only option available is to set a global default timeout for
# all socket objects.
- socket.setdefaulttimeout(self.timeout)
+ if hasattr(self, "timeout"):
+ socket.setdefaulttimeout(self.timeout)
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect((self.host, self.port))