SoftLayer createFirmwareUpdateTransaction似乎忽略了我的输入

时间:2016-12-14 17:21:49

标签: ibm-cloud-infrastructure

我正在使用CLI来更新用户指定硬件组件的服务器固件。这是我正在使用的功能:

def update_firmware(client, fqdn, ipmi=False, raid_controller=False,
                    bios=False, hard_drive=False):
  """Update firmware on selected components."""
  machine_summary = get_machine_summary(client, fqdn)
  try:
      hardware_mgr = SoftLayer.managers.hardware.HardwareManager(client)
      hardware_mgr.update_firmware(machine_summary["id"], ipmi, 
                                   raid_controller, bios, hard_drive)
  except SoftLayer.exceptions.SoftLayerAPIError as e:
      LOG.warn("SoftLayer API Error: %s", e)

我遇到的问题是,无论用户提供什么输入,交易大约需要一个小时才能完成。这甚至包括我将False传递给所有组件值。我甚至可以使用SoftLayer自己的CLI重现这种行为:

slcli call-api --id $id Hardware_Server createFirmwareUpdateTransaction 0 0 0 0

任何人都可以帮助澄清我在这里做错了什么吗?我的slcli版本是v5.2.0。我也试过在我的函数中传递0/1而不是False / True。如何更新各个硬件的固件?在过去,我们在raid控制器上遇到了缓冲区溢出错误的问题,作为我希望用特定部分执行此操作的示例。

API文档参考:https://softlayer.github.io/python/update_firmware/

2 个答案:

答案 0 :(得分:0)

目前我们正在检查此行为,我们将更新故障单及此处的任何新闻。对此给您带来的不便表示歉意。

答案 1 :(得分:0)

经过API支持的一些来回,答案是,即使您没有指定组件来更新固件,也会进行库存检查。没有任何组件被更新,但主机仍然停下来执行这些检查。