James Iter %!s(int64=9) %!d(string=hai) anos
pai
achega
934bf925e3
Modificáronse 1 ficheiros con 186 adicións e 0 borrados
  1. 186 0
      docs/os_init.md

+ 186 - 0
docs/os_init.md

@@ -7,6 +7,11 @@
 - [更新实例初始化操作簇](#更新实例初始化操作簇)
 - [获取实例初始化操作簇列表](#获取实例初始化操作簇列表)
 - [删除实例初始化操作簇](#删除实例初始化操作簇)
+- [初始化操作内容变量](#初始化操作内容变量)
+- [添加初始化操作](#添加初始化操作)
+- [获取初始化操作列表](#获取初始化操作列表)
+- [更新实例初始化操作](#更新实例初始化操作)
+- [删除实例初始化操作](#删除实例初始化操作)
 
 
 ## 创建实例初始化操作簇
@@ -165,6 +170,187 @@ DELETE https://$domain
 ```
 
 
+## 初始化操作内容变量
+
+> 初始化操作时,在内容中可用的变量。最终这些变量,会被替换成全局或当时设定好的内容。
+
+|    变量     | 描述                    |
+|:----------:|:-----------------------|
+|    {IP}    | Guest 分配到的 IP 地址。 |
+| {HOSTNAME} | Guest 分配到的主机名。   |
+| {NETMASK}  | 全局定义的子网掩码。      |
+| {GATEWAY}  | 全局定义的网关。         |
+|   {DNS1}   | 全局定义的 DNS1。        |
+|   {DNS2}   | 全局定义的 DNS2。        |
+
+
+## 添加初始化操作
+
+> 为从模板初始化的实例,添加具体的操作
+
+```http
+POST https://$domain
+  /api/os_init_write
+Body:
+{
+    "os_init_id": 3,
+    "path": "/etc/resolv.conf",
+    "content": "\n".join([
+        "nameserver {DNS1}",
+        "nameserver {DNS2}"
+    ])
+}
+```
+
+|  参数名称   | 必须 |  类型  | 说明                                            |
+|:----------:|:---:|:------:|:------------------------------------------------|
+| os_init_id |  Y  |  Long  | 初始化操作簇 ID                                  |
+|    path    |  Y  | String | 将修改的文件在实例中的路径                         |
+|  content   |  Y  | String | 文件内容。内容中可用的变量参见 [初始化操作内容变量](#初始化操作内容变量) |
+
+响应示例
+
+```json
+{
+    "state": {
+        "en-us": "OK",
+        "zh-cn": "成功",
+        "code": "200"
+    },
+    "data": {
+        "content": "nameserver {DNS1}\nnameserver {DNS2}",
+        "path": "/etc/resolv.conf",
+        "id": 1,
+        "os_init_id": 3
+    }
+}
+```
+
+
+## 获取初始化操作列表
+
+> 获取初始化操作列表
+
+```http
+GET https://$domain
+  /api/os_init_writes?offset={number}&limit={number}
+  or
+  /api/os_init_writes?page={number}&page_size={number}
+```
+
+|  参数名称  | 必须 |  类型  | 说明                                        |
+|:---------:|:---:|:------:|:--------------------------------------------|
+|  offset   |  N  | Number | 偏移量, 默认值0                              |
+|   limit   |  N  | Number | 返回条目数量, 默认值50                        |
+|   page    |  N  | Number | 页号, 与offset同时存在时, 以offset为准, 默认值1 |
+| page_size |  N  | Number | 页大小, 默认值50                             |
+| order_by  |  N  | String | 所依据的字段                                 |
+|   order   |  N  |  Enum  | 排序策略,`asc`\|`desc`                      |
+
+响应示例
+
+```json
+{
+    "state": {
+        "en-us": "OK",
+        "zh-cn": "成功",
+        "code": "200"
+    },
+    "data": [{
+        "content": "nameserver {DNS1}\nnameserver {DNS2}",
+        "path": "/etc/resolv.conf",
+        "id": 1,
+        "os_init_id": 3
+    }],
+    "paging": {
+        "prev": "http://127.0.0.1:8008/api/os_init_writes?page=1&page_size=50&filter=&order=asc&order_by=id",
+        "last": "http://127.0.0.1:8008/api/os_init_writes?page=1&page_size=50&filter=&order=asc&order_by=id",
+        "page_size": 50,
+        "next": "http://127.0.0.1:8008/api/os_init_writes?page=1&page_size=50&filter=&order=asc&order_by=id",
+        "limit": 50,
+        "offset": 0,
+        "total": 1,
+        "page": 1,
+        "first": "http://127.0.0.1:8008/api/os_init_writes?page=1&page_size=50&filter=&order=asc&order_by=id"
+    }
+}
+```
+
+| 参数名称    | 必须 |  类型  | 说明           |
+|:-----------|:---:|:------:|:---------------|
+| id         |  Y  |  Long  | ID             |
+| os_init_id |  Y  |  Long  | 实例初始化簇 ID |
+| path       |  Y  | String | 初始化的文件路径 |
+| content    |  Y  | String | 初始化的文件内容 |
+
+
+## 更新实例初始化操作
+
+> 更新实例初始操作
+
+```http
+PATCH https://$domain
+  /api/os_init_write/{os_init_id}
+Body:
+{
+    "path": "/etc/hostname",
+    "content": "{HOSTNAME}"
+}
+```
+
+|  参数名称   | 必须 |  类型  | 说明               |
+|:----------:|:---:|:------:|:-------------------|
+| os_init_id |  Y  | Number | 初始化操作 ID       |
+|    path    |  N  | String | 初始化操作的文件路径 |
+|  content   |  N  | String | 初始化操作的文件内容 |
+
+响应示例
+
+```json
+{
+    "state": {
+        "en-us": "OK",
+        "zh-cn": "成功",
+        "code": "200"
+    },
+    "data": {
+        "content": "{HOSTNAME}",
+        "path": "/etc/hostname",
+        "id": 1,
+        "os_init_id": 3
+    }
+}
+```
+
+实例初始化操作 信息字段描述参见 [获取初始化操作列表](#获取初始化操作列表)
+
+
+## 删除实例初始化操作
+
+> 删除指定 id 的实例初始化操作
+
+```http
+DELETE https://$domain
+  /api/os_init_write/{id}
+```
+
+| 参数名称 | 必须 |  类型  | 说明                |
+|:--------|:---:|:------:|:--------------------|
+| id      |  Y  | Number | 实例初始化操作的id。 |
+
+响应示例
+
+```json
+{
+    "state": {
+        "en-us": "OK",
+        "zh-cn": "成功",
+        "code": "200"
+    }
+}
+```
+
+
 [返回上一级](../README.md)
 =====================