disk.py 2.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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. from math import ceil
  7. from models.status import StorageMode
  8. __author__ = 'James Iter'
  9. __date__ = '2017/6/25'
  10. __contact__ = 'james.iter.cn@gmail.com'
  11. __copyright__ = '(c) 2017 by James Iter.'
  12. blueprint = Blueprint(
  13. 'v_disk',
  14. __name__,
  15. url_prefix='/disk'
  16. )
  17. blueprints = Blueprint(
  18. 'v_disks',
  19. __name__,
  20. url_prefix='/disks'
  21. )
  22. def show():
  23. url = url_for('api_disks.r_show', _external=True)
  24. if request.args.__len__() >= 1:
  25. args = list()
  26. for k, v in request.args.items():
  27. args.append('='.join([k, v]))
  28. url += '?' + '&'.join(args)
  29. ret = requests.get(url=url, cookies=request.cookies)
  30. ret = json.loads(ret.content)
  31. return render_template('disks_show.html', disks=ret['data']['disks'],
  32. resource_path=request.path,
  33. hosts_mapping_by_node_id=ret['data']['hosts_mapping_by_node_id'],
  34. page=ret['data']['page'], page_size=ret['data']['page_size'], keyword=ret['data']['keyword'],
  35. pages=ret['data']['pages'], order_by=ret['data']['order_by'], order=ret['data']['order'],
  36. last_page=ret['data']['last_page'], paging=ret['data']['paging'],
  37. show_area=ret['data']['show_area'], config=ret['data']['config'],
  38. show_on_host=ret['data']['show_on_host'])
  39. def create():
  40. return render_template('disk_create.html')
  41. def detail(uuid):
  42. host_url = request.host_url.rstrip('/')
  43. disk_url = host_url + url_for('api_disks.r_get', uuids=uuid)
  44. disk_ret = requests.get(url=disk_url, cookies=request.cookies)
  45. disk_ret = json.loads(disk_ret.content)
  46. guest_ret = None
  47. os_template_image_ret = None
  48. config_url = host_url + url_for('api_config.r_get')
  49. config_ret = requests.get(url=config_url, cookies=request.cookies)
  50. config_ret = json.loads(config_ret.content)
  51. if disk_ret['data']['sequence'] != -1:
  52. guest_url = host_url + url_for('api_guests.r_get', uuids=disk_ret['data']['guest_uuid'])
  53. guest_ret = requests.get(url=guest_url, cookies=request.cookies)
  54. guest_ret = json.loads(guest_ret.content)
  55. os_template_image_url = host_url + url_for('api_os_templates_image.r_get',
  56. ids=guest_ret['data']['os_template_image_id'].__str__())
  57. os_template_image_ret = requests.get(url=os_template_image_url, cookies=request.cookies)
  58. os_template_image_ret = json.loads(os_template_image_ret.content)
  59. return render_template('disk_detail.html', uuid=uuid, guest_ret=guest_ret,
  60. os_template_image_ret=os_template_image_ret, disk_ret=disk_ret, config_ret=config_ret)