API

desktop

URI

http://<server>:<port>/imanager/cloud/web/nodes/desktop[.<format>]

支持的方法

GET、POST

介绍

desktop 是 GIS 桌面列表的资源,可以获取 GIS 桌面列表,也可以通过 POST 请求来创建 GIS 桌面。

支持的方法:

  • GET:获取 GIS 桌面列表。
  • POST:创建 GIS 桌面。

支持的表述格式:JSON。

HTTP 请求方法

对如下 URI 执行 HTTP 请求,以 json 输出格式为例加以说明,其中,supermapimanager 是桌面名。

http://supermapimanager:8390/imanager/cloud/web/nodes/desktop.json

GET 请求

获取 GIS 桌面列表。

请求参数

名称 类型 含义
pageSize String 每页大小,如果为-1,则没有限制,默认值是-1

响应结构

返回 GIS 桌面列表,其中包含 GIS 桌面的基本信息,由以下字段组成:

字段 类型 说明
list List 本次请求返回的GIS 桌面列表
total String 总记录数,即 GIS 桌面个数

其中 NodeInfo 表示 GIS 桌面详细信息,由以下字段组成:

字段 类型 说明
availabelTime long 环境可用时间
clusterSource ClusterSource 集群来源,其中ClusterSource有两个值CREATED表示由系统创建,BUILDED组建而来,特指集群
cpu int 虚拟机占用CPU内核数(个)
createTime long 创建时间
description String 描述信息
disk int 虚拟机占用磁盘大小(GB)
hireDays int 租用天数,默认0,表示无限制
hostName String 环境的主机名
id int 环境id
ip String 环境ip
memory int 虚拟机占用内存大小(GB)
nodeCount int 环境个数或集群节点个数
nodeName String 节点名称,如果不指定,则默认为VM的名称.如:sm_idesktop-123
nodeSource NodeSource 环境来源,其中NodeSource有两个值CREATED表示由系统创建,IMPORTED表示外部导入而来
nodeSpec String 节点规格,对应模板规格名称
nodeStatus NodeStatus 环境状态,包括 CREATING(正在创建), STARTING(正在启动), STOPPING(正在停止),REBOOTING(正在重启), RUNNING(运行中), DELETING(正在删除),STOPPED(已停止),PAUSED(已暂停),CREATE_FAILED(创建失败),NOT_FOUND(不存在),UNKNOWN(未知), MOVING(正在移动),RESIZING(正在调整),RESIZED(确认调整)
operatingSystem OperatingSystem 环境操作系统类型,包括WINDOWS,LINUX,UNKNOWN
parentId int 父节点ID.针对集群子节点
password String 环境密码
productInfos List 环境中所部署的应用信息
productPath String 环境中应用部署位置
resourceType String 资源类型,对应模板类型名称
thresholdEntity ThresholdEntity 环境阈值配置信息
updateTime long 更新时间
userName String 环境所属用户
uuid String 环境uuid,对应虚拟平台的唯一标识

其中 ProductInfo 表示 环境中所部署的应用信息详细信息,由以下字段组成:

字段 类型 说明
id int 应用id
nodeId int 环境id
name String 应用名称
address String 应用地址
productStatus ProductStatus 应用状态,包括CREATING(正在创建),STARTING(正在启动), START_FAILED(启动失败),STOPPING(正在停止),REBOOTING(正在重启),RUNNING(运行中), DELETING(正在删除),STOPPED(已停止), CREATE_FAILED(创建失败), NOT_FOUND(不存在),UNKNOWN(未知), DEPLOYING(环境配置中)

其中 ThresholdEntity 表示 阈值实体 详细信息,由以下字段组成:

字段 类型 说明
id int 阈值id
maxCreateCount int 最大新增节点数
maxUsage float 最大阈值
minUsage float 最小阈值
metricType MetricType 性能监控类型,包括 CPU(cpu), RAM(内存), NETWORK(网络I/O),INSTANCE(实例)
thresholdStatus ThresholdStatus 动态伸缩的状态, 包括 ENABLED(动态伸缩开启), DISABLED(动态伸缩关闭),CONFLICT(动态伸缩出现冲突)

响应示例

在管理员登录的状态下,对http://supermapimanager:8390/imanager/cloud/web/nodes/desktop.json执行GET请求,则返回的 json 格式的响应结果如下:

{
  "list": [
    {
      "availabelTime": 0,
      "clusterSource": "CREATED",
      "cpu": 4,
      "createTime": 1481595392916,
      "description": "",
      "disk": 30,
      "hireDays": 0,
      "hostName": "iDesktop-30",
      "id": 12,
      "ip": "172.16.16.30",
      "memory": 4,
      "nodeCount": 1,
      "nodeName": "idesktop",
      "nodeSource": "CREATED",
      "nodeSpec": "MEDIUM",
      "nodeStatus": "CREATING",
      "operatingSystem": "WINDOWS",
      "parentId": -1,
      "password": "kiKNrWya",
      "productInfos": [
        {
          "address": "172.16.16.30",
          "id": 15,
          "name": "iDesktop",
          "nodeId": 12,
          "productStatus": "CREATING",
          "webApp": false
        }
      ],
      "resourceType": "DESKTOP",
      "thresholdEntity": {
        "id": 12,
        "maxCreateCount": 0,
        "maxUsage": 80,
        "metricType": "CPU",
        "minUsage": 20,
        "thresholdStatus": "DISABLED"
      },
      "thresholdId": 12,
      "updateTime": 1481595392916,
      "userName": "admin",
      "uuid": "a13c09d0-bade-4edf-9611-7e3a28855a24"
    }
  ],
  "total": 1
}

POST 请求

创建 GIS 桌面。

请求参数

字段 类型 说明
nodeSpec String 节点规格,对应模板规格名称
nodeCount int 环境个数或集群节点个数
nodeName String 节点名称,如果不指定,则默认为VM的名称.如:sm_idesktop-123
password String 环境密码
description String 描述信息
physicalMachineName String 物理机名称,即VM需要部署在哪个主机上,默认跟模板VM一致

响应结构

返回 GIS 桌面是否创建成功,如果失败会给出错误信息:

字段 类型 说明
isSucceed boolean 是否执行成功,失败时是false
msg String 如果执行失败,会显示错误信息,执行成功则为空
resultId String 请求处理结果id。 例如创建环境返回对应任务的id

响应示例

在管理员登录的状态下,对http://supermapimanager:8390/imanager/cloud/web/nodes/desktop.json执行POST请求,传入相关参数,如下所示:

{
  "nodeSpec": "MEDIUM",
  "nodeCount": "1",
  "nodeName": "idesktop",
  "password": "",
  "description": "",
  "physicalMachineName": "admin"
}

则返回的 json 格式的响应结果如下:

{
  "isSucceed": true,
  "msg": "",
  "resultId": "678"
}