guest.py 2.8 KB

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