我正在使用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控制器上遇到了缓冲区溢出错误的问题,作为我希望用特定部分执行此操作的示例。
答案 0 :(得分:0)
目前我们正在检查此行为,我们将更新故障单及此处的任何新闻。对此给您带来的不便表示歉意。
答案 1 :(得分:0)
经过API支持的一些来回,答案是,即使您没有指定组件来更新固件,也会进行库存检查。没有任何组件被更新,但主机仍然停下来执行这些检查。