2016-12-14 103 views
0

我正在使用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/

回答

0

经过一段时间的API支持后,答案出现了,即使您没有指定组件来更新固件,也会执行库存检查。没有组件被更新,但主机仍然停止执行这些检查。

0

目前,我们正在检查这种行为,我们将在机票和在这里任何关于它的新闻更新。我对此造成的不便深表歉意。