2017-03-20 1 views
-2

Wie kann ich mehrere SoftLayer Barmetal-Server mit unterschiedlichen Paket-IDs mit einem einzigen Auftrag/API-Aufruf bestellen?Bestellen von Hardware-Servern mit unterschiedlichen Paket-IDs mit einem einzigen API-Aufruf

UPDATE: Hinzugefügt Details unten, hoffentlich wird es Klarheit hinzufügen, was ich versuche zu tun. Die folgenden 2 Datenstrukturen sind SoftLayer_Container_Product_Order_Hardware_Server Datentypen. Jeder ist für einen Hardware-Server (monatlich abgerechnet) mit einem anderen package_id, und diese können jeweils einzeln an die API-Methode placeOrder() übergeben werden.

Meine Frage ist, ob es eine Möglichkeit gibt, sie zu einer einzigen Bestellung zu kombinieren, so dass ich einen einzigen API-Aufruf an placeOrder() vornehmen kann?

erste Datenstruktur, um zu bestellen 2 Servern mit package_id 553

{'complexType': 'SoftLayer_Container_Product_Order_Hardware_Server', 
'hardware': [{'domain': 'example.com', 
       'hostname': u'host1', 
       'primaryBackendNetworkComponent': {'networkVlan': {'id': 1234}}, 
       'primaryNetworkComponent': {'networkVlan': {'id': 5678}}}, 
       {'domain': 'example.com', 
       'hostname': u'host2', 
       'primaryBackendNetworkComponent': {'networkVlan': {'id': 1234}}, 
       'primaryNetworkComponent': {'networkVlan': {'id': 5678}}}], 
'location': 1441195, 
'packageId': 553, 
'prices': [{'id': 177613}, 
      {'id': 49811}, 
      {'id': 49811}, 
      {'id': 50113}, 
      {'id': 50113}, 
      {'id': 50113}, 
      {'id': 50113}, 
      {'id': 50113}, 
      {'id': 50113}, 
      {'id': 49081}, 
      {'id': 49427}, 
      {'id': 141945}, 
      {'id': 50359}, 
      {'id': 35686}, 
      {'id': 50223}, 
      {'id': 34807}, 
      {'id': 29403}, 
      {'id': 34241}, 
      {'id': 32627}, 
      {'id': 25014}, 
      {'id': 33483}, 
      {'id': 35310}, 
      {'id': 32500}], 
'quantity': 2, 
'quoteName': u'DAL10-qty2-rand9939', 
'sshKeyIds': [{'sshKeyIds': [9876]}, {'sshKeyIds': [9876]}], 
'storageGroups': [{'arrayTypeId': 2, 'hardDrives': [0, 1]}, 
        {'arrayTypeId': 5, 'hardDrives': [2, 3, 4, 5, 6, 7]}], 
'useHourlyPricing': False} 

zweite Datenstruktur, auf 2 Servern bestellen mit package_id 251

{'complexType': 'SoftLayer_Container_Product_Order_Hardware_Server', 
'hardware': [{'domain': 'example.com', 
       'hostname': u'host3', 
       'primaryBackendNetworkComponent': {'networkVlan': {'id': 1234}}, 
       'primaryNetworkComponent': {'networkVlan': {'id': 5678}}}, 
       {'domain': 'example.com', 
       'hostname': u'host4', 
       'primaryBackendNetworkComponent': {'networkVlan': {'id': 1234}}, 
       'primaryNetworkComponent': {'networkVlan': {'id': 5678}}}], 
'location': 1441195, 
'packageId': 251, 
'prices': [{'id': 50659}, 
      {'id': 49811}, 
      {'id': 49811}, 
      {'id': 50113}, 
      {'id': 50113}, 
      {'id': 50113}, 
      {'id': 50113}, 
      {'id': 49081}, 
      {'id': 49437}, 
      {'id': 141945}, 
      {'id': 50359}, 
      {'id': 26109}, 
      {'id': 50223}, 
      {'id': 34807}, 
      {'id': 29403}, 
      {'id': 34241}, 
      {'id': 32627}, 
      {'id': 25014}, 
      {'id': 33483}, 
      {'id': 35310}, 
      {'id': 32500}], 
'quantity': 2, 
'quoteName': u'DAL10-qty2-rand3106', 
'sshKeyIds': [{'sshKeyIds': [9876]}, {'sshKeyIds': [9876]}], 
'storageGroups': [{'arrayTypeId': 2, 'hardDrives': [0, 1]}, 
        {'arrayTypeId': 5, 'hardDrives': [2, 3, 4, 5]}], 
'useHourlyPricing': False} 

Antwort

0

yep es posible ist, wenn Sie Werfen Sie einen Blick auf die Dokumentation für die SoftLayer_Container_Product_Order_Hardware_Server Container Sie sehen diese Eigenschaft:

orderContainers

Aufträge können eine Reihe von Konfigurationen aufweisen. Wenn Sie diese Eigenschaft ausfüllen, können Sie mehrere Konfigurationen innerhalb einer Einzelbestellung erwerben. Jeder Bestellcontainer hat seine eigenen individuellen Einstellungen unabhängig von den anderen Bestellcontainern. Zum Beispiel ist es möglich, einen Bare-Metal-Server in einer Konfiguration und einen virtuellen Server in einem anderen zu bestellen. Wenn 'orderContainers' im Basisauftragsbehälter angegeben ist, werden die meisten konfigurationsspezifischen Eigenschaften im Basiscontainer ignoriert. Beispielsweise werden Preise, Standort und packageId auf dem Basiscontainer ignoriert, aber da die billingInformation eine Eigenschaft ist, die nicht für einen einzelnen Auftrag Container (aber die Bestellung als Ganzes) ist, muss es auf der Basis aufgefüllt werden Container.

Sie müssen nur diese Eigenschaft für Ihre Bestellungen z.

"orderContainers": [ 
      order1, 
      order2 
     ] 

Note: replace order1 and order2 with the orders that you posted in your question 

Grüße

+0

Das funktionierte, danke. Ich hätte schwören können, dass ich das ohne Erfolg versucht hatte. Ich muss etwas falsch gemacht haben in meiner Datenstruktur. – pgra

Verwandte Themen