You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于SL中订单状态查询及裸金属服务器配置完成时间的API咨询

如何通过API查询SoftLayer裸金属服务器的配置完成时间?

首先,针对你的需求——在裸金属服务器配置完成后执行后续配置操作,SoftLayer(现IBM Cloud Bare Metal Servers)确实提供了对应的API来查询服务器的部署状态和配置完成时间。

先梳理下你的场景:

我用于下单裸金属服务器的代码如下,placeOrder函数会返回订单回执。随后在SL门户中查询订单状态,发现已变为已批准。现在需要知道是否有相关API可用于查询裸金属服务器的配置完成时间,以便在完成后对其进行配置。

你的下单代码片段:

var sess = session.New(userName, apiKey, endpoint) 
accountService := services.GetAccountService(sess) 
order := datatypes.Container_Product_Order{ 
    Quantity: sl.Int(1), 
    // 其他订单参数...
}

解决方案:通过API关联订单与硬件实例,获取配置完成时间

你可以通过以下两种核心方式来获取目标信息:

1. 通过订单ID关联到对应的裸金属服务器硬件

利用SoftLayer_Billing_Order服务的getHardware方法,将订单ID与硬件实例绑定,直接获取服务器的部署状态和完成时间:

// 初始化session(复用你已有的session即可)
var sess = session.New(userName, apiKey, endpoint)

// 替换为你的实际订单ID
targetOrderId := 1234567 

// 创建Billing Order服务实例
billingOrderService := services.GetBillingOrderService(sess)

// 查询订单关联的硬件列表
hardwareInstances, err := billingOrderService.Id(targetOrderId).GetHardware()
if err != nil {
    fmt.Printf("查询订单关联硬件失败: %v\n", err)
    return
}

// 遍历硬件实例,获取配置完成时间和状态
for _, hw := range hardwareInstances {
    fmt.Printf("服务器ID: %d\n", *hw.Id)
    // provisionDate字段即为配置完成时间
    if hw.ProvisionDate != nil {
        fmt.Printf("配置完成时间: %s\n", *hw.ProvisionDate)
    } else {
        fmt.Println("服务器仍在配置中,暂未生成完成时间")
    }
    // 通过status字段判断是否就绪(ACTIVE表示已完成配置)
    fmt.Printf("当前服务器状态: %s\n", *hw.Status.Name)
}

2. 直接查询裸金属服务器实例详情

如果你已经知道服务器的硬件ID,可以直接使用SoftLayer_Hardware服务的getObject方法,获取更详细的服务器信息,包括配置完成时间:

var sess = session.New(userName, apiKey, endpoint)
targetHardwareId := 9876543 // 替换为你的服务器硬件ID

hardwareService := services.GetHardwareService(sess)
hardwareDetails, err := hardwareService.Id(targetHardwareId).GetObject()
if err != nil {
    fmt.Printf("查询服务器详情失败: %v\n", err)
    return
}

fmt.Printf("服务器配置完成时间: %s\n", *hardwareDetails.ProvisionDate)
fmt.Printf("服务器状态: %s\n", *hardwareDetails.Status.Name)

关键注意事项

  • 轮询时机:如果订单刚批准,服务器可能还在部署中,此时provisionDate会为空,status可能为PROVISIONING或类似状态。你可以通过轮询这两个字段,直到status变为ACTIVE且provisionDate有值时,再触发后续配置操作。
  • 字段说明:provisionDate是服务器完成所有部署配置(包括操作系统安装、硬件初始化等)的时间戳,格式为ISO 8601标准时间。

内容的提问来源于stack exchange,提问作者zhiyong xue

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 06:58:46