1 from xml.etree import cElementTree as ET
7 PM_INSTALL = "PM_INSTALL"
8 APT_INSTALL = "APT_INSTALL"
9 RPM_INSTALL = "RPM_INSTALL"
13 CONFIGURE = "CONFIGURE"
14 LOAD_IMAGE = "LOAD_IMAGE"
15 SAVE_IMAGE = "SAVE_IMAGE"
16 LOAD_DATA = "LOAD_DATA"
19 SET_DISCONNECTION = "SET_DISCONNECTION"
24 class MessageHandler():
28 def __init__(self, sliceid, expid ):
29 self.SliceID = sliceid
31 print "init" + self.ExpID +" "+ self.SliceID
35 def Mid(self, parent, keyword):
36 mid = ET.SubElement(parent, keyword)
37 mid.set("id", "\'omf-payload\'")
40 def Mtext(self, parent, keyword, text):
41 mtext = ET.SubElement(parent, keyword)
46 def executefunction(self, target, appid, cmdlineargs, path):
47 payload = ET.Element("omf-message")
48 execute = self.Mid(payload,"EXECUTE")
49 env = self.Mtext(execute, "ENV", "")
50 sliceid = self.Mtext(execute,"SLICEID",self.SliceID)
51 expid = self.Mtext(execute,"EXPID",self.ExpID)
52 target = self.Mtext(execute,"TARGET",target)
53 appid = self.Mtext(execute,"APPID",appid)
54 cmdlineargs = self.Mtext(execute,"CMDLINEARGS",cmdlineargs)
55 path = self.Mtext(execute,"PATH",path)
58 def configurefunction(self, target, value, path):
59 payload = ET.Element("omf-message")
60 config = self.Mid(payload, "CONFIGURE")
61 sliceid = self.Mtext(config,"SLICEID",self.SliceID)
62 expid = self.Mtext(config,"EXPID",self.ExpID)
63 target = self.Mtext(config,"TARGET",target)
64 value = self.Mtext(config,"VALUE",value)
65 path = self.Mtext(config,"PATH",path)
68 def logfunction(self,level, logger, level_name, data):
69 payload = ET.Element("omf-message")
70 log = self.Mid(payload, "LOGGING")
71 level = self.Mtext(log,"LEVEL",level)
72 sliceid = self.Mtext(log,"SLICEID",self.SliceID)
73 logger = self.Mtext(log,"LOGGER",logger)
74 expid = self.Mtext(log,"EXPID",self.ExpID)
75 level_name = self.Mtext(log,"LEVEL_NAME",level_name)
76 data = self.Mtext(log,"DATA",data)
79 def aliasfunction(self, name, target):
80 payload = ET.Element("omf-message")
81 alias = self.Mid(payload,"ALIAS")
82 sliceid = self.Mtext(alias,"SLICEID",self.SliceID)
83 expid = self.Mtext(alias,"EXPID",self.ExpID)
84 name = self.Mtext(alias,"NAME",name)
85 target = self.Mtext(alias,"TARGET",target)
88 def enrollfunction(self, enrollkey, image, index, target ):
89 payload = ET.Element("omf-message")
90 enroll = self.Mid(payload,"ENROLL")
91 enrollkey = self.Mtext(enroll,"ENROLLKEY",enrollkey)
92 sliceid = self.Mtext(enroll,"SLICEID",self.SliceID)
93 image = self.Mtext(enroll,"IMAGE",image)
94 expid = self.Mtext(enroll,"EXPID",self.ExpID)
95 index = self.Mtext(enroll,"INDEX",index)
96 target = self.Mtext(enroll,"TARGET",target)
99 def noopfunction(self,target):
100 payload = ET.Element("omf-message")
101 noop = self.Mid(payload,"NOOP")
102 sliceid = self.Mtext(noop,"SLICEID",self.SliceID)
103 expid = self.Mtext(noop,"EXPID",self.ExpID)
104 target = self.Mtext(noop,"TARGET",target)
107 def enrollfunction(self, enrollkey, image, index, target ):
108 payload = ET.Element("omf-message")
109 enroll = self.Mid(payload,"ENROLL")
110 enrollkey = self.Mtext(enroll,"ENROLLKEY",enrollkey)
111 sliceid = self.Mtext(enroll,"SLICEID",self.SliceID)
112 image = self.Mtext(enroll,"IMAGE",image)
113 expid = self.Mtext(enroll,"EXPID",self.ExpID)
114 index = self.Mtext(enroll,"INDEX",index)
115 target = self.Mtext(enroll,"TARGET",target)
118 def newexpfunction(self, experimentid, address):
119 payload = ET.Element("omf-message")
120 newexp = self.Mid(payload,"EXPERIMENT_NEW")
121 experimentid = self.Mtext(newexp,"EXPERIMENT_ID",experimentid)
122 sliceid = self.Mtext(newexp,"SLICEID",self.SliceID)
123 expid = self.Mtext(newexp,"EXPID",self.ExpID)
124 address = self.Mtext(newexp,"ADDRESS",address)
127 def handle_message(self, msg):