summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Plugin.py
diff options
context:
space:
mode:
authorSol Jerome <sol.jerome@gmail.com>2011-04-26 15:18:04 -0500
committerSol Jerome <sol.jerome@gmail.com>2011-04-26 15:18:04 -0500
commitbef2d0c73eb0b3fd071f616aa43a945ae2d103b7 (patch)
tree6b7442075da3d88d649ac9cbe82d6007558e7c8f /src/lib/Server/Plugin.py
parent944df5470f9d30717baccf7b716fd4847b31da27 (diff)
downloadbcfg2-bef2d0c73eb0b3fd071f616aa43a945ae2d103b7.tar.gz
bcfg2-bef2d0c73eb0b3fd071f616aa43a945ae2d103b7.tar.bz2
bcfg2-bef2d0c73eb0b3fd071f616aa43a945ae2d103b7.zip
Plugins: Add full PY3K compatibility
Signed-off-by: Sol Jerome <sol.jerome@gmail.com>
Diffstat (limited to 'src/lib/Server/Plugin.py')
-rw-r--r--src/lib/Server/Plugin.py27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/lib/Server/Plugin.py b/src/lib/Server/Plugin.py
index 69b38c4ff..e18bf09a1 100644
--- a/src/lib/Server/Plugin.py
+++ b/src/lib/Server/Plugin.py
@@ -8,13 +8,19 @@ import os
import pickle
import posixpath
import re
-import Queue
import threading
from lxml.etree import XML, XMLSyntaxError
import Bcfg2.Options
+# py3k compatibility
+if sys.hexversion >= 0x03000000:
+ from functools import reduce
+from Bcfg2.Bcfg2Py3k import Queue
+from Bcfg2.Bcfg2Py3k import Empty
+from Bcfg2.Bcfg2Py3k import Full
+
# grab default metadata info from bcfg2.conf
opts = {'owner': Bcfg2.Options.MDATA_OWNER,
'group': Bcfg2.Options.MDATA_GROUP,
@@ -169,7 +175,7 @@ class ThreadedStatistics(Statistics,
threading.Thread.__init__(self)
# Event from the core signaling an exit
self.terminate = core.terminate
- self.work_queue = Queue.Queue(100000)
+ self.work_queue = Queue(100000)
self.pending_file = "%s/etc/%s.pending" % (datastore, self.__class__.__name__)
self.daemon = True
self.start()
@@ -184,7 +190,7 @@ class ThreadedStatistics(Statistics,
pending_data.append((metadata.hostname, lxml.etree.tostring(data)))
except:
self.logger.warning("Dropping interaction for %s" % metadata.hostname)
- except Queue.Empty:
+ except Empty:
pass
try:
@@ -204,7 +210,8 @@ class ThreadedStatistics(Statistics,
savefile = open(self.pending_file, 'r')
pending_data = pickle.load(savefile)
savefile.close()
- except Exception, e:
+ except Exception:
+ e = sys.exc_info()[1]
self.logger.warning("Failed to load pending data: %s" % e)
for (pmetadata, pdata) in pending_data:
# check that shutdown wasnt called early
@@ -224,10 +231,11 @@ class ThreadedStatistics(Statistics,
return False
self.work_queue.put_nowait((metadata, lxml.etree.fromstring(pdata)))
- except Queue.Full:
+ except Full:
self.logger.warning("Queue.Full: Failed to load queue data")
break
- except lxml.etree.LxmlError, lxml_error:
+ except lxml.etree.LxmlError:
+ lxml_error = sys.exc_info()[1]
self.logger.error("Unable to load save interaction: %s" % lxml_error)
except Bcfg2.Server.Plugins.Metadata.MetadataConsistencyError:
self.logger.error("Unable to load metadata for save interaction: %s" % pmetadata)
@@ -244,9 +252,10 @@ class ThreadedStatistics(Statistics,
while not self.terminate.isSet():
try:
(xdata, client) = self.work_queue.get(block=True, timeout=2)
- except Queue.Empty:
+ except Empty:
continue
- except Exception, e:
+ except Exception:
+ e = sys.exc_info()[1]
self.logger.error("ThreadedStatistics: %s" % e)
continue
self.handle_statistic(xdata, client)
@@ -258,7 +267,7 @@ class ThreadedStatistics(Statistics,
try:
self.work_queue.put_nowait((metadata, copy.deepcopy(data)))
warned = False
- except Queue.Full:
+ except Full:
if not warned:
self.logger.warning("%s: Queue is full. Dropping interactions." % self.__class__.__name__)
warned = True