guest.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  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 GuestStatus
  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 = None
  21. self.os_template_id = None
  22. self.create_time = ji.Common.tus()
  23. self.status = GuestStatus.shutdown.value
  24. self.cpu = None
  25. self.memory = None
  26. self.ip = None
  27. self.network = None
  28. self.manage_network = None
  29. self.vnc_port = None
  30. self.vnc_password = None
  31. self.xml = None
  32. @staticmethod
  33. def get_filter_keywords():
  34. return {
  35. 'name': FilterFieldType.STR.value,
  36. 'remark': FilterFieldType.INT.value,
  37. 'ip': FilterFieldType.INT.value
  38. }
  39. @staticmethod
  40. def get_allow_update_keywords():
  41. return ['remark', 'cpu', 'memory', 'network', 'manage_network', 'vnc_password']
  42. @staticmethod
  43. def get_allow_content_search_keywords():
  44. return ['name', 'remark', 'ip']
  45. class GuestDisk(ORM):
  46. _table_name = 'guest_disk'
  47. _primary_key = 'id'
  48. def __init__(self):
  49. super(GuestDisk, self).__init__()
  50. self.id = 0
  51. self.label = None
  52. self.size = None
  53. self.sequence = None
  54. self.format = 'qcow2'
  55. self.guest_uuid = None
  56. @staticmethod
  57. def get_filter_keywords():
  58. return {
  59. 'label': FilterFieldType.STR.value,
  60. 'size': FilterFieldType.INT.value,
  61. 'guest_id': FilterFieldType.INT.value
  62. }
  63. @staticmethod
  64. def get_allow_update_keywords():
  65. return []
  66. @staticmethod
  67. def get_allow_content_search_keywords():
  68. return ['label', 'size']