guest.py 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import jimit as ji
  4. from filter import FilterFieldType
  5. from orm import ORM
  6. from status import GuestState
  7. __author__ = 'James Iter'
  8. __date__ = '2017/3/22'
  9. __contact__ = 'james.iter.cn@gmail.com'
  10. __copyright__ = '(c) 2017 by James Iter.'
  11. class Guest(ORM):
  12. _table_name = 'guest'
  13. _primary_key = 'id'
  14. def __init__(self):
  15. super(Guest, self).__init__()
  16. self.id = 0
  17. self.uuid = None
  18. self.name = None
  19. self.password = None
  20. self.remark = ''
  21. self.os_template_id = None
  22. self.create_time = ji.Common.tus()
  23. self.status = GuestState.shutdown.value
  24. self.on_host = ''
  25. self.cpu = None
  26. self.memory = None
  27. self.ip = None
  28. self.network = None
  29. self.manage_network = None
  30. self.vnc_port = None
  31. self.vnc_password = None
  32. self.xml = None
  33. @staticmethod
  34. def get_filter_keywords():
  35. return {
  36. 'name': FilterFieldType.STR.value,
  37. 'remark': FilterFieldType.STR.value,
  38. 'on_host': FilterFieldType.STR.value,
  39. 'ip': FilterFieldType.STR.value
  40. }
  41. @staticmethod
  42. def get_allow_update_keywords():
  43. return ['remark', 'cpu', 'memory', 'network', 'manage_network', 'vnc_password']
  44. @staticmethod
  45. def get_allow_content_search_keywords():
  46. return ['name', 'remark', 'on_host', 'ip']
  47. class GuestDisk(ORM):
  48. _table_name = 'guest_disk'
  49. _primary_key = 'id'
  50. def __init__(self):
  51. super(GuestDisk, self).__init__()
  52. self.id = 0
  53. self.label = None
  54. self.size = None
  55. self.sequence = None
  56. self.format = 'qcow2'
  57. self.guest_uuid = None
  58. @staticmethod
  59. def get_filter_keywords():
  60. return {
  61. 'label': FilterFieldType.STR.value,
  62. 'size': FilterFieldType.INT.value,
  63. 'guest_uuid': FilterFieldType.STR.value
  64. }
  65. @staticmethod
  66. def get_allow_update_keywords():
  67. return []
  68. @staticmethod
  69. def get_allow_content_search_keywords():
  70. return ['label', 'size']