使用Softlayer API批量检查VM状态

时间:2016-10-26 21:23:12

标签: ibm-cloud-infrastructure

我们正在使用Softlayer API来检查我们创建的VM的状态。以下是我们现在使用的API,我们必须一次检查一个VM的状态。是否有可以检索VM列表状态的Softlayer API?

以下是我们每次调用以获取一个VM状态的API: 1.获取VM ID api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/findByIpAddress/ X.X.X.X 2.获取VM状态 api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/ VMID /getPowerState.json

2 个答案:

答案 0 :(得分:1)

嗯,没有api方法来获取这些值,但它们是:

电源状态:

  • 运行
  • 暂停的
  • 暂停
  • 暂停
  • 未知

状态

  • Id:1001 - 有效
  • Id:1002 - 已停用
  • Id:1003 - 无效
  • Id:1004 - 已删除
  • Id:1006 - 已断开连接

答案 1 :(得分:0)

要从所有虚拟服务器获取VM状态:

https://$user:$apiKey@api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectMask=mask[powerState]

Method: Get

注意:将 $ user $ apiKey 替换为您自己的信息

从列表中获取VM状态:

https://$user:$apiKey@api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectMask=mask[powerState]&objectFilter={"virtualGuests":{"id":{"operation":"in","options":[{"name":"data","value":[$vsiId1, $vsiId2, $vsiId3]}]}}}

Method: Get

注意:替换 $ user $ apiKey $ vsiId1 $ vsiId2 $ vsiId3 使用您自己的信息,您可以添加更多ID,按"分隔,"

  

<强>更新

卷曲

如果您使用curl,则应发送编码命令,因为我们在请求中使用过滤器,因此它应如下所示:

curl "https://$user:$apiKey@api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests?objectMask=mask%5BpowerState%5D&objectFilter=%7B%22virtualGuests%22%3A%7B%22id%22%3A%7B%22operation%22%3A%22in%22%2C%22options%22%3A%5B%7B%22name%22%3A%22data%22%2C%22value%22%3A%5B25129322%2C15535999%5D%7D%5D%7D%7D%7D"

用您自己的信息替换:$ user,$ apiKey,25129322和15535999

我正在寻找的VSI标识符是:25129322和15535999,如您所见,它们在命令中编码