summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris St. Pierre <chris.a.st.pierre@gmail.com>2012-06-13 16:15:58 -0400
committerChris St. Pierre <chris.a.st.pierre@gmail.com>2012-06-13 16:15:58 -0400
commit7480e8f11d991b75fe5ece33323734451defc7bd (patch)
tree36ef67490923b15bd3e59f051943d5bb7ca389bf
parentf379b0e43cfa0137379ad0f78f48223eba7db61a (diff)
downloadbcfg2-7480e8f11d991b75fe5ece33323734451defc7bd.tar.gz
bcfg2-7480e8f11d991b75fe5ece33323734451defc7bd.tar.bz2
bcfg2-7480e8f11d991b75fe5ece33323734451defc7bd.zip
fixed ProbeData object to actually be a str, not just try (and fail) to imitate one
-rw-r--r--src/lib/Server/Plugins/Probes.py50
1 files changed, 8 insertions, 42 deletions
diff --git a/src/lib/Server/Plugins/Probes.py b/src/lib/Server/Plugins/Probes.py
index 2c24d6cc4..59f7e30bd 100644
--- a/src/lib/Server/Plugins/Probes.py
+++ b/src/lib/Server/Plugins/Probes.py
@@ -41,56 +41,22 @@ class ClientProbeDataSet(dict):
dict.__init__(self, *args, **kwargs)
-class ProbeData(object):
+class ProbeData(str):
""" a ProbeData object emulates a str object, but also has .xdata
and .json properties to provide convenient ways to use ProbeData
objects as XML or JSON data """
def __init__(self, data):
- self.data = data
+ str.__init__(self, data)
self._xdata = None
self._json = None
self._yaml = None
- def __str__(self):
- return str(self.data)
-
- def __repr__(self):
- return repr(self.data)
-
- def __getattr__(self, name):
- """ make ProbeData act like a str object """
- return getattr(self.data, name)
-
- def __complex__(self):
- return complex(self.data)
-
- def __int__(self):
- return int(self.data)
-
- def __long__(self):
- return long(self.data)
-
- def __float__(self):
- return float(self.data)
-
- def __eq__(self, other):
- return str(self) == str(other)
-
- def __ne__(self, other):
- return str(self) != str(other)
-
- def __gt__(self, other):
- return str(self) > str(other)
-
- def __lt__(self, other):
- return str(self) < str(other)
-
- def __ge__(self, other):
- return self > other or self == other
-
- def __le__(self, other):
- return self < other or self == other
-
+ @property
+ def data(self):
+ """ provide backwards compatibility with broken ProbeData
+ object in bcfg2 1.2.0 thru 1.2.2 """
+ return str(self)
+
@property
def xdata(self):
if self._xdata is None: