2016-05-12 8 views
0
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) 

Lauf obigen Code werden muss, was diesen Fehler geben:Provisioning BareMetal schenkt ‚Hostname‘ gesetzt Fehler

SoftLayer.exceptions.SoftLayerAPIError: SoftLayerAPIError(SoftLayer_Exception_MissingCreationProperty): The property 'hostname' must be set to create an instance of 'SoftLayer_Hardware' I hostname is specified, still it is giving hostname property is not set.

Können Sie bitte lassen Sie mich wissen, wo ich falsch mache?

Antwort

0

Das Problem ist, dass, sobald Sie die generateOrderTemplate Methode aufrufen, erstellt es einen Auftrag Container, die für die verifyOrder oder placeOrder Methoden arbeiten.

So müssen Sie nicht die createObject Methode verwenden, verwenden Sie stattdessen die placeOrder Methode

z.B.

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)