test_guest.py 13 KB

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