Răsfoiți Sursa

更新文档

James Iter 9 ani în urmă
părinte
comite
74afe5dde4
3 a modificat fișierele cu 69 adăugiri și 3 ștergeri
  1. 51 2
      docs/guest.md
  2. 1 1
      route_table.py
  3. 17 0
      tests/test_guest.py

+ 51 - 2
docs/guest.md

@@ -20,7 +20,7 @@ Body:
 ```
 
 |参数名称|必须|类型|说明|
-|:--:|:--:|:--:|:--:|
+|:--:|:--:|:--:|:--|
 |cpu|Y|Long|CPU 个数|
 |memory|Y|Long|内存大小,单位`MB`|
 |os_template_id|Y|Long|模板ID|
@@ -99,7 +99,7 @@ GET https://$domain
 ```
 
 |参数名称|必须|类型|说明|
-|:--:|:--:|:--:|:--:|
+|:--:|:--:|:--:|:--|
 |offset|N|Number|偏移量, 默认值0|
 |limit|N|Number|返回条目数量, 默认值50|
 |page|N|Number|页号, 与offset同时存在时, 以offset为准, 默认值1|
@@ -421,5 +421,54 @@ PUT https://$domain
 ```
 
 
+## 迁移 Guest
+> 迁移指定 uuid 的 Guest 到目标 host
+
+``` http
+PUT https://$domain
+  /api/guests/{uuids}/{destination_host}
+```
+
+|参数名称|必须|类型|说明|
+|:--|:--:|:--:|:--|
+|uuids|Y|String|uuids可为多个或单个uuid。多个实例的uuid以逗号间隔。|
+|destination_host|Y|String|目标Host主机名。|
+
+响应示例
+``` json
+{
+    "state": {
+        "en-us": "OK",
+        "zh-cn": "成功",
+        "code": "200"
+    }
+}
+```
+
+
+## 删除 Guest
+> 删除指定 uuid 的 Guest
+
+``` http
+DELETE https://$domain
+  /api/guests/{uuids}
+```
+
+|参数名称|必须|类型|说明|
+|:--|:--:|:--:|:--|
+|uuids|Y|String|uuids可为多个或单个uuid。多个实例的uuid以逗号间隔。|
+
+响应示例
+``` json
+{
+    "state": {
+        "en-us": "OK",
+        "zh-cn": "成功",
+        "code": "200"
+    }
+}
+```
+
+
 [返回上一级](../README.md)
 ===

+ 1 - 1
route_table.py

@@ -53,7 +53,7 @@ add_rule(guest.blueprints, '/_suspend/<uuids>', view_func='guest.r_suspend', met
 add_rule(guest.blueprints, '/_resume/<uuids>', view_func='guest.r_resume', methods=['PUT'])
 add_rule(guest.blueprint, '/_attach_disk/<uuid>/<disk_uuid>', view_func='guest.r_attach_disk', methods=['PUT'])
 add_rule(guest.blueprint, '/_detach_disk/<disk_uuid>', view_func='guest.r_detach_disk', methods=['PUT'])
-add_rule(guest.blueprint, '/_migrate/<uuids>/<destination_host>', view_func='guest.r_migrate', methods=['PUT'])
+add_rule(guest.blueprints, '/_migrate/<uuids>/<destination_host>', view_func='guest.r_migrate', methods=['PUT'])
 add_rule(guest.blueprint, '/<uuid>', view_func='guest.r_get', methods=['GET'])
 add_rule(guest.blueprints, '', view_func='guest.r_get_by_filter', methods=['GET'])
 add_rule(guest.blueprints, '/_search', view_func='guest.r_content_search', methods=['GET'])

+ 17 - 0
tests/test_guest.py

@@ -227,6 +227,23 @@ class TestGuest(unittest.TestCase):
     #     print json.dumps(j_r, ensure_ascii=False)
     #     self.assertEqual('200', j_r['state']['code'])
 
+    # def test_60_delete(self):
+    #     url = TestGuest.base_url + '/guests/' + TestGuest.uuid
+    #     headers = {'content-type': 'application/json'}
+    #     r = requests.delete(url, headers=headers)
+    #     j_r = json.loads(r.content)
+    #     print json.dumps(j_r, ensure_ascii=False)
+    #     self.assertEqual('200', j_r['state']['code'])
+
+    def test_61_migrate(self):
+        url = TestGuest.base_url + '/guests/_migrate/' + TestGuest.uuid + '/10k02.jkser.com'
+        headers = {'content-type': 'application/json'}
+        r = requests.put(url, headers=headers)
+        j_r = json.loads(r.content)
+        print json.dumps(j_r, ensure_ascii=False)
+        self.assertEqual('200', j_r['state']['code'])
+
+
 if __name__ == '__main__':
     unittest.main()