如何使用单个API调用来订购具有不同包ID的硬件服务器

时间:2017-03-20 03:34:45

标签: api ibm-cloud-infrastructure

如何使用单个订单/ API调用订购具有不同包ID的多个SoftLayer裸机服务器?

更新:在下面添加了详细信息,希望它会增加我想要做的事情的清晰度。

下面的2个数据结构是 SoftLayer_Container_Product_Order_Hardware_Server 数据类型。每个都是针对具有不同package_id的硬件服务器(每月结算),并且每个都可以单独传递到placeOrder() API方法。

我的问题是,是否有办法将它们合并为一个订单,因此我可以对placeOrder()进行单个API调用?

第一个数据结构,订购2个服务器,包含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}

第二个数据结构,订购2个服务器,包含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}

1 个答案:

答案 0 :(得分:0)

是的,如果您查看SoftLayer_Container_Product_Order_Hardware_Server容器的文档,您将会看到此属性,这是可行的:

  

<强> orderContainers

     

订单可能包含一系列配置。填充这个   属性允许您在a内购买多个配置   单笔订单。每个订单容器都有自己的个人   设置独立于其他订单容器。例如,它是   可以在一个配置中订购裸机服务器和   另一个虚拟服务器。如果orderContainers填充在基础上   订单容器,大多数配置特定的属性   在基本容器上被忽略。例如,价格,位置和   packageId将在基本容器上被忽略,但是自从   billingInformation是一个并非特定于单个订单的属性   容器(但整个订单)必须填充在基础上   容器

所以你只需要为你的订单设置那个属性,例如

    "orderContainers": [
            order1,
            order2
        ]

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

此致