我正在使用CLI更新用户指定硬件组件的服务器固件。下面是我一起工作的功能:SoftLayer createFirmwareUpdateTransaction似乎忽略我的输入
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/