Package pyvb :: Module server
[hide private]
[frames] | no frames]

Source Code for Module pyvb.server

  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 
6 7 -class vbRestListController(controllers.Controller):
8 - def __init__(self, vb):
9 self.vb=vb
10 11 @expose()
12 - def index(self):
13 return "/list"
14 15 @expose()
16 - def vms(self):
17 result=[] 18 for i in self.vb.listVMS(): 19 result.append(i.__dict__) 20 return simplejson.dumps(result)
21 22 @expose()
23 - def ostypes(self):
24 result=[] 25 for i in self.vb.listOsTypes(): 26 result.append(i.__dict__) 27 return simplejson.dumps(result)
28 29 @expose()
30 - def hostdvds(self):
31 result=[] 32 for i in self.vb.listHostDvds(): 33 result.append(i.__dict__) 34 return simplejson.dumps(result)
35 36 @expose()
37 - def dvds(self):
38 result=[] 39 for i in self.vb.listDvds(): 40 result.append(i.__dict__) 41 return simplejson.dumps(result)
42 43 @expose()
44 - def hdds(self):
45 result=[] 46 for i in self.vb.listHdds(): 47 result.append(i.__dict__) 48 return simplejson.dumps(result)
49
50 -class vbRestGetController(controllers.Controller):
51 - def __init__(self, vb):
52 self.vb=vb
53 54 @expose()
55 - def index(self):
56 return "/get"
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
66 -class vbRestVmController(controllers.Controller):
67 - def __init__(self, vb):
68 self.vb=vb
69 70 @expose()
71 - def index(self):
72 return "/vm"
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()
88 - def poweroff(self, *args, **kw):
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()
97 - def acpipoweroff(self, *args, **kw):
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
123 -class vbRestServer(controllers.RootController):
124 - def __init__(self):
125 self.vb=vb.VB() 126 self.list=vbRestListController(self.vb) 127 self.get=vbRestGetController(self.vb) 128 self.vm=vbRestVmController(self.vb) 129 cfg={"server.environment":"production",\ 130 "server.socket_port":8080} 131 config.update(cfg)
132
133 - def startServer(self):
134 start_server(self)
135 136 @expose()
137 - def index(self):
138 return "%s <i>%s</i>"%\ 139 (pkg_resources.get_distribution('pyvb').version,\ 140 _("pyvb REST Server"))
141