挂载云硬盘
该接口通过鉴权接口颁发的token作为访问令牌,需要从云硬盘列表中取硬盘ID,云硬盘状态必须是待挂载。需要从我的主机列表中取得主机ID。目前挂载主机的订购类型仅支持’按量’ useType=0。挂载的主机必须是关机。主机从未开过机不支持挂载。如若是挂载过的硬盘需要挂载到其他主机,需要保证两台主机都是关机状态。挂载提交后为挂载中,待后台处理完成后扭转为使用中。每台主机挂载上限30。
1.接口描述
接口请求地址:POST v1/PveMachineHardDisk/open/pveCreate
2.输入参数
| 参数名称 | 描述 | 是否必选 | 类型 | Location |
|---|---|---|---|---|
| Finovy-Access-Token | 令牌-口令 | yes | string | header |
| id | 硬盘ID (云硬盘'area'跟主机'area'须保持一致) | yes | string | body |
| pveId | 主机实例ID (云硬盘'area'跟主机'area'须保持一致) | yes | string | body |
3.输出参数
详情可查看规范说明响应公共字段
4.示例
示例1:请求成功示例
输入示例
POST https://client.xuandashi.com/v1/PveMachineHardDisk/open/pveCreate / HTTP/1.1
Finovy-Access-Token: 4vL4rcNGNcgx5v0RLCcFew
<公共请求参数>
{
"id": "teTapaFHde",
"pveId":"teTapaSUFq"
}
输出示例
{
"code": 0,
"data": true,
"msg": "success",
"success": true,
"traceId": "xxxxxxxxxxxxxx"
}
5.错误码
| 错误码 | 错误描述 | 解决方案 |
|---|---|---|
| 1021 | 机器不存在 | 确认主机id是否正确 ,请联系客服处理 |
| 220001 | 云硬盘不存在 | 先创建云硬盘 |
| 220002 | 硬盘已挂载 | 先卸载云硬盘再去挂载 |
| 220009 | 主机未关机 | 关机状态才能挂载 |
| 220010 | 主机挂载硬盘限制 | 主机挂载硬盘限制超限,可以先卸载再进行挂载 |
| 220012 | 主机从未开机 | 先执行开机,开机关机后再进行挂载 |
| 220016 | 主机实例不存在 | 从我的主机列表中取主机,没有主机先创建主机 |
| 220017 | 主机实例订购类型不是按量类型 | 选择正确的主机类型 |
| 220018 | 云硬盘和主机实例不在同一地区 | 确定主机区域与云硬盘区域,须保持一致 |
| 220024 | 主机不在同一节点上 | 跨主机挂载需源主机跟现主机都关机后在进行挂载 |
| 220025 | 创建硬盘请求超时 | 请求太过频繁,请稍后再试 |
6.Java请求示例
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Scanner;
class Main {
public static void main(String[] args) throws IOException {
URL url = new URL("https://client.xuandashi.com/v1/PveMachineHardDisk/open/pveCreate");
HttpURLConnection httpConn = (HttpURLConnection) url.openConnection();
httpConn.setRequestMethod("POST");
httpConn.setRequestProperty("Content-Type", "application/json");
httpConn.setRequestProperty("Finovy-Access-Token", "3V41hUWEwlwKH44m7SpJOs");
httpConn.setDoOutput(true);
OutputStreamWriter writer = new OutputStreamWriter(httpConn.getOutputStream());
writer.write("{\"id\": \"teTapaSUFq\", \"pveId\": \"teTapaSUFq\" }");
writer.flush();
writer.close();
httpConn.getOutputStream().close();
InputStream responseStream = httpConn.getResponseCode() / 100 == 2
? httpConn.getInputStream()
: httpConn.getErrorStream();
Scanner s = new Scanner(responseStream).useDelimiter("\\A");
String response = s.hasNext() ? s.next() : "";
System.out.println(response);
}
}