1 """server - Holds abstractions that represent different server types."""
2 import pkg_resources
3 from pyvb import *
4 from turbogears import controllers, start_server, config, expose
5 import simplejson
10
11 @expose()
14
15 @expose()
17 result=[]
18 for i in self.vb.listVMS():
19 result.append(i.__dict__)
20 return simplejson.dumps(result)
21
22 @expose()
24 result=[]
25 for i in self.vb.listOsTypes():
26 result.append(i.__dict__)
27 return simplejson.dumps(result)
28
29 @expose()
31 result=[]
32 for i in self.vb.listHostDvds():
33 result.append(i.__dict__)
34 return simplejson.dumps(result)
35
36 @expose()
38 result=[]
39 for i in self.vb.listDvds():
40 result.append(i.__dict__)
41 return simplejson.dumps(result)
42
43 @expose()
45 result=[]
46 for i in self.vb.listHdds():
47 result.append(i.__dict__)
48 return simplejson.dumps(result)
49
53
54 @expose()
57
58 @expose()
59 - def vm(self, *args, **kw):
60 return simplejson.dumps(self.vb.getVM(args[0]).__dict__)
61
62 @expose()
63 - def hdd(self, *args, **kw):
64 return simplejson.dumps(self.vb.getHDD(args[0]).__dict__)
65
69
70 @expose()
73
74 @expose()
75 - def start(self, *args, **kw):
76 try:
77 type=args[1]
78 except IndexError:
79 type='gui'
80 try:
81 v=self.vb.getVM(args[0])
82 self.vb.startVM(v, type=type)
83 return simplejson.dumps(v.__dict__)
84 except Exception,e:
85 return simplejson.dumps(e.message)
86
87 @expose()
89 try:
90 v=self.vb.getVM(args[0])
91 self.vb.poweroffVM(v)
92 return simplejson.dumps(v.__dict__)
93 except Exception,e:
94 return simplejson.dumps(e.message)
95
96 @expose()
98 try:
99 v=self.vb.getVM(args[0])
100 self.vb.acpipoweroffVM(v)
101 return simplejson.dumps(v.__dict__)
102 except Exception,e:
103 return simplejson.dumps(e.message)
104
105 @expose()
106 - def pause(self, *args, **kw):
107 try:
108 v=self.vb.getVM(args[0])
109 self.vb.pauseVM(v)
110 return simplejson.dumps(v.__dict__)
111 except Exception,e:
112 return simplejson.dumps(e.message)
113
114 @expose()
115 - def resume(self, *args, **kw):
116 try:
117 v=self.vb.getVM(args[0])
118 self.vb.resumeVM(v)
119 return simplejson.dumps(v.__dict__)
120 except Exception,e:
121 return simplejson.dumps(e.message)
122
132
135
136 @expose()
138 return "%s <i>%s</i>"%\
139 (pkg_resources.get_distribution('pyvb').version,\
140 _("pyvb REST Server"))
141