卸载/销毁云硬盘
1.该接口通过鉴权接口颁发的token作为访问令牌。2.卸载云硬盘-云硬盘必须是使用中状态才能卸载,云硬盘所挂载的云主机必须是关机状态下才能进行卸载。3.销毁云硬盘-云硬盘必须是待挂载状态才能销毁,云硬盘所挂载的云主机必须是关机状态下才能进行销毁。该接口的返回值不代表卸载/销毁成功,需要根据云硬盘列表接口查询云硬盘状态判断是否成功。
1.接口描述
接口请求地址:PUT v1/PveMachineHardDisk/open/updateStatus
2.输入参数
| 参数名称 | 描述 | 是否必选 | 类型 | Location |
|---|---|---|---|---|
| Finovy-Access-Token | 令牌-口令 | yes | string | header |
| id | 云硬盘ID | yes | string | body |
| status | 0:卸载云硬盘,5:销毁云硬盘 | yes | string | body |
3.输出参数
详情可查看规范说明响应公共字段
4.示例
示例1:请求成功示例
输入示例
PUT v1/PveMachineHardDisk/open/updateStatus / HTTP/1.1
Host: client.xuandashi.com
Content-Type: application/json
Finovy-Access-Token: 4vL4rcNGNcgx5v0RLCcFew
<公共请求参数>
{
"id":"SDJFHZb125863",
"status":"0"
}
输出示例
{
"code":0,
"data":true,
"msg":"success",
"success":true,
"traceId":"xxxxxxxxxxxxxx"
}
5.错误码
| 错误码 | 错误描述 | 解决方案 |
|---|---|---|
| 220001 | 云硬盘不存在 | 确保云硬盘ID正确 |
| 220006 | 硬盘已卸载 | 硬盘已卸载 |
| 220007 | 卸载失败 | 卸载失败,请重试,重试多次不成功,请联系客服处理 |
| 220009 | 主机未关机 | 操作云硬盘需要提前先关机 |
| 220016 | 主机实例不存在 | 确保主机正确 |
| 220022 | 云盘状态为待挂载才可以销毁退还 | 需要将该硬盘的状态扭转待挂载 |
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/updateStatus");
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\": \"SDJFHZb125863\", \"status\": \"0\" }");
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);
}
}