guest.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import json
  4. from flask import Blueprint, url_for, request
  5. import requests
  6. from . import render
  7. __author__ = 'James Iter'
  8. __date__ = '2017/5/30'
  9. __contact__ = 'james.iter.cn@gmail.com'
  10. __copyright__ = '(c) 2017 by James Iter.'
  11. blueprint = Blueprint(
  12. 'v_guest',
  13. __name__,
  14. url_prefix='/guest'
  15. )
  16. blueprints = Blueprint(
  17. 'v_guests',
  18. __name__,
  19. url_prefix='/guests'
  20. )
  21. def show():
  22. url = url_for('api_guests.r_show', _external=True)
  23. if request.args.__len__() >= 1:
  24. args = list()
  25. for k, v in request.args.items():
  26. args.append('='.join([k, v]))
  27. url += '?' + '&'.join(args)
  28. ret = requests.get(url=url, cookies=request.cookies)
  29. ret = json.loads(ret.content)
  30. return render('guests_show.html', guests=ret['data']['guests'],
  31. resource_path=request.path,
  32. os_templates_image_mapping_by_id=ret['data']['os_templates_image_mapping_by_id'],
  33. os_templates_profile_mapping_by_id=ret['data']['os_templates_profile_mapping_by_id'],
  34. hosts_mapping_by_node_id=ret['data']['hosts_mapping_by_node_id'], page=ret['data']['page'],
  35. page_size=ret['data']['page_size'], keyword=ret['data']['keyword'],
  36. paging=ret['data']['paging'], pages=ret['data']['pages'], last_page=ret['data']['last_page'])
  37. def vnc(uuid):
  38. vnc_url = url_for('api_guest.r_vnc', uuid=uuid, _external=True)
  39. vnc_ret = requests.get(url=vnc_url, cookies=request.cookies)
  40. vnc_ret = json.loads(vnc_ret.content)
  41. return render('vnc_lite.html', port=vnc_ret['data']['port'], password=vnc_ret['data']['vnc_password'])
  42. def detail(uuid):
  43. guest_detail_url = url_for('api_guest.r_detail', uuid=uuid, _external=True)
  44. guest_detail_ret = requests.get(url=guest_detail_url, cookies=request.cookies)
  45. guest_detail_ret = json.loads(guest_detail_ret.content)
  46. return render('guest_detail.html', uuid=uuid, guest=guest_detail_ret['data']['guest'],
  47. os_template_image=guest_detail_ret['data']['os_template_image'],
  48. os_templates_profile_mapping_by_id=
  49. guest_detail_ret['data']['os_templates_profile_mapping_by_id'],
  50. hosts_mapping_by_node_id=guest_detail_ret['data']['hosts_mapping_by_node_id'],
  51. disks=guest_detail_ret['data']['disks'], config=guest_detail_ret['data']['config'])
  52. def create():
  53. hosts_url = url_for('api_hosts.r_get_by_filter', alive=True, _external=True)
  54. hosts_ret = requests.get(url=hosts_url, cookies=request.cookies)
  55. hosts_ret = json.loads(hosts_ret.content)
  56. return render('guest_create.html', hosts_ret=hosts_ret)