Adding baskend for OMF
[nepi.git] / src / nepi / testbeds / omf / omf_messages.py
1 from xml.etree import cElementTree as ET
2
3 EXECUTE = "EXECUTE"
4 KILL = "KILL"
5 STDIN = "STDIN"
6 NOOP = "NOOP"
7 PM_INSTALL = "PM_INSTALL"
8 APT_INSTALL = "APT_INSTALL"
9 RPM_INSTALL = "RPM_INSTALL"
10 RESET = "RESET"
11 REBOOT = "REBOOT"
12 MODPROBE = "MODPROBE"
13 CONFIGURE = "CONFIGURE"
14 LOAD_IMAGE = "LOAD_IMAGE"
15 SAVE_IMAGE = "SAVE_IMAGE"
16 LOAD_DATA = "LOAD_DATA"
17 SET_LINK = "SET_LINK"
18 ALIAS = "ALIAS"
19 SET_DISCONNECTION = "SET_DISCONNECTION"
20 RESTART = "RESTART"
21 ENROLL = "ENROLL"
22 EXIT = "EXIT" 
23
24 class MessageHandler():
25     SliceID = ""
26     ExpID = ""
27
28     def __init__(self, sliceid, expid ):
29         self.SliceID = sliceid
30         self.ExpID = expid
31         print "init" + self.ExpID +"  "+ self.SliceID
32         pass
33
34
35     def Mid(self, parent, keyword):
36         mid = ET.SubElement(parent, keyword)
37         mid.set("id", "\'omf-payload\'")
38         return mid
39
40     def Mtext(self, parent, keyword, text):
41         mtext = ET.SubElement(parent, keyword)
42         mtext.text = text
43         return mtext
44
45
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)
56         return payload
57
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)
66         return payload
67
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)
77         return payload
78
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)
86         return payload
87
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)
97         return payload
98
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)
105         return payload
106
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)
116         return payload
117
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)
125         return payload
126
127     def handle_message(self, msg):
128         # Do something!!!
129         return msg