挂载云硬盘

该接口通过鉴权接口颁发的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);
    }
}