test_guest.py 10.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. import requests
  4. import json
  5. import unittest
  6. __author__ = 'James Iter'
  7. __date__ = '2017/4/4'
  8. __contact__ = 'james.iter.cn@gmail.com'
  9. __copyright__ = '(c) 2017 by James Iter.'
  10. class TestGuest(unittest.TestCase):
  11. base_url = 'http://127.0.0.1:8008/api'
  12. uuid = ''
  13. disk_uuid = ''
  14. def setUp(self):
  15. pass
  16. def tearDown(self):
  17. pass
  18. # 创建Guest
  19. # @unittest.skip('skip create guest')
  20. def test_11_create(self):
  21. payload = {
  22. "cpu": 4,
  23. "memory": 4,
  24. "os_template_id": 1,
  25. "quantity": 1,
  26. "name": "",
  27. "password": "pswd.com",
  28. "lease_term": 100
  29. }
  30. url = TestGuest.base_url + '/guest'
  31. headers = {'content-type': 'application/json'}
  32. r = requests.post(url, data=json.dumps(payload), headers=headers)
  33. j_r = json.loads(r.content)
  34. print json.dumps(j_r, ensure_ascii=False)
  35. self.assertEqual('200', j_r['state']['code'])
  36. # 获取 Guest 列表
  37. # def test_12_get_list(self):
  38. # url = TestGuest.base_url + '/guests'
  39. # headers = {'content-type': 'application/json'}
  40. # r = requests.get(url, headers=headers)
  41. # j_r = json.loads(r.content)
  42. # print json.dumps(j_r, ensure_ascii=False)
  43. # TestGuest.uuid = j_r['data'][-1]['uuid']
  44. # self.assertEqual('200', j_r['state']['code'])
  45. # # 获取指定 Guest
  46. # def test_13_get(self):
  47. # url = TestGuest.base_url + '/guest/' + TestGuest.uuid
  48. # headers = {'content-type': 'application/json'}
  49. # r = requests.get(url, headers=headers)
  50. # j_r = json.loads(r.content)
  51. # print json.dumps(j_r, ensure_ascii=False)
  52. # self.assertEqual('200', j_r['state']['code'])
  53. #
  54. # # 更新Guest属性
  55. # def test_14_update(self):
  56. # payload = {
  57. # "remark": "zabbix",
  58. # }
  59. #
  60. # url = TestGuest.base_url + '/guest/' + TestGuest.uuid
  61. # headers = {'content-type': 'application/json'}
  62. # r = requests.patch(url, data=json.dumps(payload), headers=headers)
  63. # j_r = json.loads(r.content)
  64. # print json.dumps(j_r, ensure_ascii=False)
  65. # self.assertEqual('200', j_r['state']['code'])
  66. #
  67. # # 校验更新结果
  68. # def test_15_get(self):
  69. # url = TestGuest.base_url + '/guest/' + TestGuest.uuid
  70. # headers = {'content-type': 'application/json'}
  71. # r = requests.get(url, headers=headers)
  72. # j_r = json.loads(r.content)
  73. # print json.dumps(j_r, ensure_ascii=False)
  74. # self.assertEqual('200', j_r['state']['code'])
  75. # self.assertEqual('zabbix', j_r['data']['remark'])
  76. # # 创建 Disk
  77. # def test_21_create_disk(self):
  78. # payload = {
  79. # "size": 10
  80. # }
  81. #
  82. # url = TestGuest.base_url + '/disk'
  83. # headers = {'content-type': 'application/json'}
  84. # r = requests.post(url, data=json.dumps(payload), headers=headers)
  85. # j_r = json.loads(r.content)
  86. # print json.dumps(j_r, ensure_ascii=False)
  87. # self.assertEqual('200', j_r['state']['code'])
  88. #
  89. # def test_22_get_disks(self):
  90. # url = TestGuest.base_url + '/disks'
  91. # headers = {'content-type': 'application/json'}
  92. # r = requests.get(url, headers=headers)
  93. # j_r = json.loads(r.content)
  94. # print json.dumps(j_r, ensure_ascii=False)
  95. # TestGuest.disk_uuid = j_r['data'][-1]['uuid']
  96. # self.assertEqual('200', j_r['state']['code'])
  97. #
  98. # # @unittest.skip('skip resize disk')
  99. # def test_23_disk_resize(self):
  100. # url = TestGuest.base_url + '/disk/_disk_resize/' + TestGuest.disk_uuid + '/2000'
  101. # headers = {'content-type': 'application/json'}
  102. # r = requests.put(url, headers=headers)
  103. # j_r = json.loads(r.content)
  104. # print json.dumps(j_r, ensure_ascii=False)
  105. # self.assertEqual('200', j_r['state']['code'])
  106. #
  107. # def test_31_attach_disk(self):
  108. # TestGuest.uuid = 'ba102b41-4e7a-4d5b-a9e0-43d162695e4a'
  109. # TestGuest.disk_uuid = 'c5881400-4f98-49a8-b5cf-afb5956a5a4b'
  110. # url = TestGuest.base_url + '/guest/_attach_disk/' + TestGuest.uuid + '/' + TestGuest.disk_uuid
  111. # headers = {'content-type': 'application/json'}
  112. # r = requests.put(url, headers=headers)
  113. # j_r = json.loads(r.content)
  114. # print json.dumps(j_r, ensure_ascii=False)
  115. # self.assertEqual('200', j_r['state']['code'])
  116. # def test_32_detach_disk(self):
  117. # url = TestGuest.base_url + '/guest/_detach_disk/' + TestGuest.disk_uuid
  118. # headers = {'content-type': 'application/json'}
  119. # r = requests.put(url, headers=headers)
  120. # j_r = json.loads(r.content)
  121. # print json.dumps(j_r, ensure_ascii=False)
  122. # self.assertEqual('200', j_r['state']['code'])
  123. #
  124. # # 删除Guest
  125. # # @unittest.skip('skip delete guest')
  126. # def test_41_delete(self):
  127. # url = TestGuest.base_url + '/guests/' + TestGuest.uuid
  128. # headers = {'content-type': 'application/json'}
  129. # r = requests.delete(url, headers=headers)
  130. # j_r = json.loads(r.content)
  131. # print json.dumps(j_r, ensure_ascii=False)
  132. # self.assertEqual('200', j_r['state']['code'])
  133. #
  134. # def test_42_delete_disk(self):
  135. # url = TestGuest.base_url + '/disk/' + TestGuest.disk_uuid
  136. # headers = {'content-type': 'application/json'}
  137. # r = requests.delete(url, headers=headers)
  138. # j_r = json.loads(r.content)
  139. # print json.dumps(j_r, ensure_ascii=False)
  140. # self.assertEqual('200', j_r['state']['code'])
  141. #
  142. # def test_51_reboot(self):
  143. # url = TestGuest.base_url + '/guests/_reboot/' + TestGuest.uuid
  144. # headers = {'content-type': 'application/json'}
  145. # r = requests.put(url, headers=headers)
  146. # j_r = json.loads(r.content)
  147. # print json.dumps(j_r, ensure_ascii=False)
  148. # self.assertEqual('200', j_r['state']['code'])
  149. #
  150. # def test_52_force_reboot(self):
  151. # url = TestGuest.base_url + '/guests/_force_reboot/' + TestGuest.uuid
  152. # headers = {'content-type': 'application/json'}
  153. # r = requests.put(url, headers=headers)
  154. # j_r = json.loads(r.content)
  155. # print json.dumps(j_r, ensure_ascii=False)
  156. # self.assertEqual('200', j_r['state']['code'])
  157. # def test_53_shutdown(self):
  158. # url = TestGuest.base_url + '/guests/_shutdown/' + TestGuest.uuid
  159. # headers = {'content-type': 'application/json'}
  160. # r = requests.put(url, headers=headers)
  161. # j_r = json.loads(r.content)
  162. # print json.dumps(j_r, ensure_ascii=False)
  163. # self.assertEqual('200', j_r['state']['code'])
  164. # def test_54_force_shutdown(self):
  165. # url = TestGuest.base_url + '/guests/_force_shutdown/' + TestGuest.uuid
  166. # headers = {'content-type': 'application/json'}
  167. # r = requests.put(url, headers=headers)
  168. # j_r = json.loads(r.content)
  169. # print json.dumps(j_r, ensure_ascii=False)
  170. # self.assertEqual('200', j_r['state']['code'])
  171. # def test_55_boot(self):
  172. # url = TestGuest.base_url + '/guests/_boot/' + TestGuest.uuid
  173. # headers = {'content-type': 'application/json'}
  174. # r = requests.put(url, headers=headers)
  175. # j_r = json.loads(r.content)
  176. # print json.dumps(j_r, ensure_ascii=False)
  177. # self.assertEqual('200', j_r['state']['code'])
  178. # def test_56_suspend(self):
  179. # url = TestGuest.base_url + '/guests/_suspend/' + TestGuest.uuid
  180. # headers = {'content-type': 'application/json'}
  181. # r = requests.put(url, headers=headers)
  182. # j_r = json.loads(r.content)
  183. # print json.dumps(j_r, ensure_ascii=False)
  184. # self.assertEqual('200', j_r['state']['code'])
  185. # def test_57_resume(self):
  186. # url = TestGuest.base_url + '/guests/_resume/' + TestGuest.uuid
  187. # headers = {'content-type': 'application/json'}
  188. # r = requests.put(url, headers=headers)
  189. # j_r = json.loads(r.content)
  190. # print json.dumps(j_r, ensure_ascii=False)
  191. # def test_58_attach_disk(self):
  192. # url = TestGuest.base_url + '/guest/_attach_disk/' + TestGuest.uuid + '/' + TestGuest.disk_uuid
  193. # headers = {'content-type': 'application/json'}
  194. # r = requests.put(url, headers=headers)
  195. # j_r = json.loads(r.content)
  196. # print json.dumps(j_r, ensure_ascii=False)
  197. # self.assertEqual('200', j_r['state']['code'])
  198. # def test_59_detach_disk(self):
  199. # TestGuest.disk_uuid = '234670cb-3ce4-4ef9-ba23-12bed636184c'
  200. # url = TestGuest.base_url + '/guest/_detach_disk/' + TestGuest.disk_uuid
  201. # headers = {'content-type': 'application/json'}
  202. # r = requests.put(url, headers=headers)
  203. # j_r = json.loads(r.content)
  204. # print json.dumps(j_r, ensure_ascii=False)
  205. # self.assertEqual('200', j_r['state']['code'])
  206. # def test_60_delete(self):
  207. # url = TestGuest.base_url + '/guests/' + TestGuest.uuid
  208. # headers = {'content-type': 'application/json'}
  209. # r = requests.delete(url, headers=headers)
  210. # j_r = json.loads(r.content)
  211. # print json.dumps(j_r, ensure_ascii=False)
  212. # self.assertEqual('200', j_r['state']['code'])
  213. # def test_61_migrate(self):
  214. # url = TestGuest.base_url + '/guests/_migrate/' + TestGuest.uuid + '/10k02.jkser.com'
  215. # headers = {'content-type': 'application/json'}
  216. # r = requests.put(url, headers=headers)
  217. # j_r = json.loads(r.content)
  218. # print json.dumps(j_r, ensure_ascii=False)
  219. # self.assertEqual('200', j_r['state']['code'])
  220. # def test_62_content_search(self):
  221. # url = TestGuest.base_url + '/guests/_search?keyword=10.10.4'
  222. # headers = {'content-type': 'application/json'}
  223. # r = requests.get(url, headers=headers)
  224. # j_r = json.loads(r.content)
  225. # print json.dumps(j_r, ensure_ascii=False)
  226. # self.assertEqual('200', j_r['state']['code'])
  227. if __name__ == '__main__':
  228. unittest.main()