Softlayer api:如何在“周年纪念日”检查VSI是否已创建取消请求?

时间:2016-11-08 08:19:01

标签: python api ibm-cloud-infrastructure

对于新创建的VSI,我们可以在“周年纪念日”取消它。 API billing_item.cancelItem可以帮助您完成它。然后在softlayer的网站/设备列表中,CancelDevice按钮将无法使用。 enter image description here

我的问题是如何通过api检查VSI是否已在“周年纪念日”创建取消请求?哦,我希望api获得VSI的状态已经提交了取消请求。

1 个答案:

答案 0 :(得分:1)

你只需要看到" cancelationDate"如果属性的值为" null"则为vsi的结算项目的属性这意味着VSI尚未取消。如果VSI在" Anniversary Date"该属性的值将等于机器将被取消的日期

请参阅下面的示例以获取" cancelationDate"特定VSI的财产:

import SoftLayer

USERNAME = 'set me'
API_KEY = 'set me'

vsiId = 123

client = SoftLayer.Client(username=USERNAME, api_key=API_KEY)
vsiService = client['SoftLayer_Virtual_Guest']

objectMask = "mask[id, cancellationDate]"

try:
    result = vsiService.getBillingItem(mask=objectMask, id=vsiId)
    print(result)
except SoftLayer.SoftLayerAPIError as e:
    print("Unable to retrieve the VSI's billing item. " % (e.faultCode, e.faultString))
    exit(1)

列出所有VSI及其billingItems

import SoftLayer

USERNAME = 'set me'
API_KEY = 'set me'

client = SoftLayer.Client(username=USERNAME, api_key=API_KEY)
vsiService = client['SoftLayer_Account']

objectMask = "mask[id,hostname, billingItem[cancellationDate]]"

try:
    result = vsiService.getVirtualGuests(mask=objectMask)
    print(result)
except SoftLayer.SoftLayerAPIError as e:
    print("Unable to retrieve the VSI's billing item. " % (e.faultCode, e.faultString))
    exit(1)