供应裸金属正在提供主机名'必须设置错误

时间:2016-05-12 10:40:32

标签: ibm-cloud-infrastructure

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,它仍在给出   主机名属性未设置。

你可以告诉我我在哪里做错了吗?

1 个答案:

答案 0 :(得分:0)

问题在于,一旦您调用generateOrderTemplate方法,它就会创建一个适用于verifyOrderplaceOrder方法的订单容器。

因此您不必使用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)