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
34 def Mid(self, parent, keyword):
35 mid = ET.SubElement(parent, keyword)
36 mid.set("id", "\'omf-payload\'")
39 def Mtext(self, parent, keyword, text):
40 mtext = ET.SubElement(parent, keyword)
44 def executefunction(self, target, appid, cmdlineargs, path, env):
45 payload = ET.Element("omf-message")
46 execute = self.Mid(payload,"EXECUTE")
47 env = self.Mtext(execute, "ENV", env)
48 sliceid = self.Mtext(execute,"SLICEID",self.SliceID)
49 expid = self.Mtext(execute,"EXPID",self.ExpID)
50 target = self.Mtext(execute,"TARGET",target)
51 appid = self.Mtext(execute,"APPID",appid)
52 cmdlineargs = self.Mtext(execute,"CMDLINEARGS",cmdlineargs)
53 path = self.Mtext(execute,"PATH",path)
56 def exitfunction(self, target, appid):
57 payload = ET.Element("omf-message")
58 execute = self.Mid(payload,"EXIT")
59 sliceid = self.Mtext(execute,"SLICEID",self.SliceID)
60 expid = self.Mtext(execute,"EXPID",self.ExpID)
61 target = self.Mtext(execute,"TARGET",target)
62 appid = self.Mtext(execute,"APPID",appid)
65 def configurefunction(self, target, value, path):
66 payload = ET.Element("omf-message")
67 config = self.Mid(payload, "CONFIGURE")
68 sliceid = self.Mtext(config,"SLICEID",self.SliceID)
69 expid = self.Mtext(config,"EXPID",self.ExpID)
70 target = self.Mtext(config,"TARGET",target)
71 value = self.Mtext(config,"VALUE",value)
72 path = self.Mtext(config,"PATH",path)
75 def logfunction(self,level, logger, level_name, data):
76 payload = ET.Element("omf-message")
77 log = self.Mid(payload, "LOGGING")
78 level = self.Mtext(log,"LEVEL",level)
79 sliceid = self.Mtext(log,"SLICEID",self.SliceID)
80 logger = self.Mtext(log,"LOGGER",logger)
81 expid = self.Mtext(log,"EXPID",self.ExpID)
82 level_name = self.Mtext(log,"LEVEL_NAME",level_name)
83 data = self.Mtext(log,"DATA",data)
86 def aliasfunction(self, name, target):
87 payload = ET.Element("omf-message")
88 alias = self.Mid(payload,"ALIAS")
89 sliceid = self.Mtext(alias,"SLICEID",self.SliceID)
90 expid = self.Mtext(alias,"EXPID",self.ExpID)
91 name = self.Mtext(alias,"NAME",name)
92 target = self.Mtext(alias,"TARGET",target)
95 def enrollfunction(self, enrollkey, image, index, target ):
96 payload = ET.Element("omf-message")
97 enroll = self.Mid(payload,"ENROLL")
98 enrollkey = self.Mtext(enroll,"ENROLLKEY",enrollkey)
99 sliceid = self.Mtext(enroll,"SLICEID",self.SliceID)
100 image = self.Mtext(enroll,"IMAGE",image)
101 expid = self.Mtext(enroll,"EXPID",self.ExpID)
102 index = self.Mtext(enroll,"INDEX",index)
103 target = self.Mtext(enroll,"TARGET",target)
106 def noopfunction(self,target):
107 payload = ET.Element("omf-message")
108 noop = self.Mid(payload,"NOOP")
109 sliceid = self.Mtext(noop,"SLICEID",self.SliceID)
110 expid = self.Mtext(noop,"EXPID",self.ExpID)
111 target = self.Mtext(noop,"TARGET",target)
114 def newexpfunction(self, experimentid, address):
115 payload = ET.Element("omf-message")
116 newexp = self.Mid(payload,"EXPERIMENT_NEW")
117 experimentid = self.Mtext(newexp,"EXPERIMENT_ID",experimentid)
118 sliceid = self.Mtext(newexp,"SLICEID",self.SliceID)
119 expid = self.Mtext(newexp,"EXPID",self.ExpID)
120 address = self.Mtext(newexp,"ADDRESS",address)
123 def handle_message(self, msg):