hw = {
'datacenter': {'name': 'che01'},
'hostname': 'baremetal',
'domain': 'cds.net',
'hourlyBillingFlag': True,
'fixedConfigurationPreset': {'keyName': 'S1270_32GB_1X1TBSATA_NORAID'},
'networkComponents': [{
'maxSpeed': 1000
# 'redundancyEnabledFlag': True,
}],
'operatingSystemReferenceCode': 'UBUNTU_14_64'
}
productOrder = slClient['Hardware'].generateOrderTemplate(hw)
order = slClient['Hardware'].createObject(productOrder)
运行上面的代码,这会产生此错误:
SoftLayer.exceptions.SoftLayerAPIError: SoftLayerAPIError(SoftLayer_Exception_MissingCreationProperty):. property' hostname'必须设置为创建实例 ' SoftLayer_Hardware'我指定了hostname,它仍在给出 主机名属性未设置。
你可以告诉我我在哪里做错了吗?
答案 0 :(得分:0)
问题在于,一旦您调用generateOrderTemplate方法,它就会创建一个适用于verifyOrder或placeOrder方法的订单容器。
因此您不必使用createObject方法,而是使用placeOrder方法
e.g。
import SoftLayer
slClient = SoftLayer.Client()
hw = { 'datacenter':
{'name': 'che01'},
'hostname': 'baremetal',
'domain': 'cds.net',
'hourlyBillingFlag': True,
'fixedConfigurationPreset':
{'keyName': 'S1270_32GB_1X1TBSATA_NORAID'},
'networkComponents':
[{ 'maxSpeed': 1000 #'redundancyEnabledFlag': True
, }],
'operatingSystemReferenceCode': 'UBUNTU_14_64' }
productOrder = slClient['Hardware'].generateOrderTemplate(hw)
order = slClient['Product_Order'].placeOrder(productOrder)