如何获取LocationID,存储包ID,存储大小ID和SnapShot空间大小ID,以便在Endurance Storage中下订单

时间:2016-03-09 10:05:35

标签: ibm-cloud-infrastructure

我需要动态地使用 BPM over ICO(IBM Cloud Orchestrator)在我的应用程序中实施耐久性存储的下订单。

我需要以下参数来创建用于下订单的休息调用

  1. 要使用的包
  2. 存储类型
  3. 位置
  4. 存储包(IOPS / GB)
  5. 存储空间大小
  6. 快照空间大小
  7. 操作系统类型

    1. 要使用的包: - 我已经知道耐力的包裹值是240

    2. 存储类型: - 对于耐力储存,什么是耐力的数字id什么是休息 电话会对此有所帮助..?

    3. 位置: - 此休息电话为我提供了位置ID: -

    4. 的https:[用户名]:[apiKey] api.softlayer.com/rest /v3.1/SoftLayer_Product_Package/240/getRegions.json

      1. 存储包: - 对于Endurance,我在存储包中只找到了 3个选项: -
        • 0.25 IOPS / GB
        • 2 IOPS / GB
        • 4 IOPS / GB
      2. 我将如何获得这三个人的身份证??

        1. 存储空间大小: -
        2. 对于存储空间大小ID,我使用了休息呼叫: -

          https://[username]:[apiKey]@api.softlayer.com/rest/v3/SoftLayer_Product_Package/240/getItemPrices?objectMask=mask[id,item[keyName,description],pricingLocationGroup[locations[id,name,longName]]]& objectFilter = {" items":{" price":{" pricingLocationGroup&#34 ;:{"位置" {"项目" {"操作":" loc_code"}}}}}}

          还有其他方式..?

          1. 快照空间大小: - 对于快照空间大小ID的其余调用是什么..?
          2. 请帮助我,因为我需要将此功能集成为 API使用 BPM 即可。我们需要订购具有动态值的耐久性存储。 提前致谢。

1 个答案:

答案 0 :(得分:0)

要获得所有 configuration Endurance items 的有效价格,您可以使用SoftLayer_Product_Package::getItemPrices

要了解正在使用的包Endurance(PackageId = 240),请参阅:

https://[username]:[apikey]@api.softlayer.com/rest/v3.1/SoftLayer_Product_Package/getAllObjects

Method: GET

这是一个例子:

Package to use = 240
Storage Type: Endurance
Location: Dal06
Storage Package: 0.25 IOPS/GB
Storage Size: 40GB
Snapshot Space Size: 5GB
OS Type: Linux

REST示例:

{
  "parameters": [
    {
      "location": 154820, 
      "packageId": 240,
      "osFormatType": {
        "id": 12,
        "keyName": "LINUX"
      },
      "complexType": "SoftLayer_Container_Product_Order_Network_Storage_Enterprise",
      "prices": [
        {
          "id": 45058   # Endurance Storage
        },
        {
          "id": 45098   # Block Storage
        },
        {
          "id": 45068   # 0.25 IOPS per GB
        },
        {
          "id": 45148   # 40 GB Storage Space
        },
        {
          "id": 46120   # 5 GB Storage Snapshot Space
        }
      ],
      "quantity": 1
    }
  ]
}

要获得上述ID,我们可以使用一些过滤器来更好地理解:

- 获取**存储类型**:"id": 45058 # Endurance Storage

https://[username]:[apikey]@api.softlayer.com/rest/v3.1/SoftLayer_Product_Package/240/getItemPrices?objectFilter={"itemPrices": {"categories": {"categoryCode": {"operation": "storage_service_enterprise"}}}}&objectMask=mask[id,categories,item[keyName,description],pricingLocationGroup[locations[id, name, longName]]]

Method: GET

我们按以下方式过滤: categoryCode

  • 获取“块存储”或“文件存储”的ID,我们选择块存储

"id": 45098 # Block Storage

过滤器将更改为:

objectFilter={"itemPrices": {"categories": {"categoryCode": {"operation": "storage_block"}}}}
  • 获取存储包
  • 的ID

即:"id": 45068 # 0.25 IOPS per GB

要使用的过滤器是:"categoryCode": "storage_tier_level"

objectFilter={"itemPrices": {"categories": {"categoryCode": {"operation": "storage_tier_level"}}}}&objectMask=mask[id,categories,item[keyName,description],pricingLocationGroup[locations[id, name, longName]]]
  • 获取存储空间

过滤使用:"categoryCode": "performance_storage_space"

objectFilter={"itemPrices": {"categories": {"categoryCode": {"operation": "performance_storage_space"}}}}&objectMask=mask[id,categories,item[keyName,description],pricingLocationGroup[locations[id, name, longName]]]
  • 获取快照空间大小

过滤使用:"categoryCode": "storage_snapshot_space"

objectFilter={"itemPrices": {"categories": {"categoryCode": {"operation": "storage_snapshot_space"}}}}

一些参考文献:

API for Performance and Endurance storage(Block storage)