11 from __future__
import print_function
13 from xml.etree
import ElementTree
17 counter, cmask, invmask, sampling_period, startatevent, storeresultsat, family
19 cmask =
map(int, cmask)
20 invmask =
map(int, invmask)
21 sampling_period =
map(int, sampling_period)
22 startatevent = int(startatevent)
24 from Configurables
import ApplicationMgr, AuditorSvc, PerfMonAuditor
27 app.AuditAlgorithms = 1
30 pfaud.EVENT0 = counter[0]
31 pfaud.SP0 = sampling_period[0]
32 pfaud.INV0 = int(invmask[0])
33 pfaud.CMASK0 = int(cmask[0])
34 pfaud.EVENT1 = counter[1]
35 pfaud.SP1 = sampling_period[1]
36 pfaud.INV1 = int(invmask[1])
37 pfaud.CMASK1 = int(cmask[1])
38 pfaud.EVENT2 = counter[2]
39 pfaud.SP2 = sampling_period[2]
40 pfaud.INV2 = int(invmask[2])
41 pfaud.CMASK2 = int(cmask[2])
42 pfaud.EVENT3 = counter[3]
43 pfaud.SP3 = sampling_period[3]
44 pfaud.INV3 = int(invmask[3])
45 pfaud.CMASK3 = int(cmask[3])
50 pfaud.PREFIX =
"%s_%s" % (storeresultsat,
"S" if sampling_period[0] > 0
else "C")
51 pfaud.SAMPLE = int(sampling_period[0] > 0)
52 pfaud.START_AT_EVENT = startatevent
60 Adds object like functionality to the standard dictionary.
66 dict.__init__(self, initdict)
69 return self.__getitem__(item)
72 self.__setitem__(item, value)
76 return self.__getitem__(
"_text")
83 Static method to wrap a dictionary recursively as an XmlDictObject
86 if isinstance(x, dict):
87 return XmlDictObject((k, XmlDictObject.Wrap(v))
for (k, v)
in x.iteritems())
88 elif isinstance(x, list):
89 return [XmlDictObject.Wrap(v)
for v
in x]
95 if isinstance(x, dict):
96 return dict((k, XmlDictObject._UnWrap(v))
for (k, v)
in x.iteritems())
97 elif isinstance(x, list):
98 return [XmlDictObject._UnWrap(v)
for v
in x]
104 Recursively converts an XmlDictObject to a standard dictionary and returns the result.
107 return XmlDictObject._UnWrap(self)
111 assert not isinstance(dictitem, list)
113 if isinstance(dictitem, dict):
114 for tag, child
in dictitem.iteritems():
115 if str(tag) ==
"_text":
116 parent.text = str(child)
117 elif isinstance(child, list):
119 for listchild
in child:
120 elem = ElementTree.Element(tag)
124 elem = ElementTree.Element(tag)
128 parent.text = str(dictitem)
133 Converts a dictionary to an XML ElementTree Element
136 roottag = xmldict.keys()[0]
137 root = ElementTree.Element(roottag)
143 nodedict = dictclass()
145 if len(node.items()) > 0:
147 nodedict.update(dict(node.items()))
152 if child.tag
in nodedict:
154 if isinstance(nodedict[child.tag], list):
156 nodedict[child.tag].append(newitem)
159 nodedict[child.tag] = [nodedict[child.tag], newitem]
162 nodedict[child.tag] = newitem
164 if node.text
is None:
167 text = node.text.strip()
169 if len(nodedict) > 0:
172 nodedict[
"_text"] = text
182 Converts an XML file or ElementTree Element to a dictionary
186 if isinstance(root, str):
187 root = ElementTree.parse(root).getroot()
188 elif not isinstance(root, ElementTree.Element):
189 raise TypeError(
"Expected ElementTree.Element or file path string")