libvirt-back/main.py

50 lines
1.5 KiB
Python

#!/usr/bin/python3
from bottle import run, route, request, template,get ,post
import libvirt
session = libvirt.open('qemu:///system')
def listVDS():
VdsListVar = list()
for domain in session.listAllDomains(0):
VdsListVar.append(dict(name=domain.name(),state=domain.isActive()))
return VdsListVar
@route('/')
def index():
return str(listVDS())
@get('/action') # or @route('/login')
def login():
return '''
<form action="/action" method="post">
VDS Name: <input name="name" type="text" /> <br>
Action (start/stop): <br>
<input type="radio" name="act" value="start"> Start<Br>
<input type="radio" name="act" value="stop"> Stop<Br>
<input type="radio" name="act" value="destroy"> destroy<Br>
<input value="Exec" type="submit" />
</form>
'''
@post('/action') # or @route('/login', method='POST')
def do_action():
act = request.forms.get('act')
dom = session.lookupByName(request.forms.get('name'))
if (act == "start"):
dom.create()
return dict(name=request.forms.get('name'),state="started")
elif (act == "stop"):
dom.shutdown()
return dict(name=request.forms.get('name'),state="shutdown")
elif (act == "destroy"):
dom.destroy()
return dict(name=request.forms.get('name'),state="destroyed")
else:
return dict(state="error")
if __name__ == '__main__':
run(host='0.0.0.0', port=5000, debug=True)