2017-08-29 84 views
0

我通過JAVA API控制軟層資源(服務器,存儲等)。SoftLayer Evault驗證API錯誤

我通過API驗證的升級的EVault存儲空間(20GB => 40GB),但是API從POST事件

URL(POST) https://IBMxxxx:[email protected]/rest/v3/SoftLayer_Product_Order/verifyOrder.json 

這裏是返回錯誤消息

"error": "EVault service already exists for the requested location (Seoul 1).", 
     "code": "SoftLayer_Exception_Public" 

附加的請求正文

{"parameters": 
    [ 
     {"complexType":"SoftLayer_Container_Product_Order" 
     ,"orderContainers":[ 
          {"complexType":"SoftLayer_Container_Product_Order_Network_Storage_Backup_Evault_Vault" 
           ,"location":"1555995" 
           ,"packageId":0 
           ,"quantity":1 
           ,"virtualGuests":[ 
                {"complexType":"SoftLayer_Virtual_Guest" 
                 ,"id":376047 
                } 
               ], 
           "useHourlyPricing":false 
           ,"prices":[ 
              {"complexType":"SoftLayer_Product_Item_Price","id":66257} 
             ] 
          } 
          ] 
     } 
    ] 
} 
+0

固定的語法和代碼intentation – James

回答

0

您對該請求的處理是訂購eVault存儲e,除了itemId設置爲60GB EVault Disk容量而不是40 Gb。

UPDATE

僅檢索eVault存儲容量的項目價格。

https://IBMxxxx:[email protected]/rest/v3.1/SoftLayer_Product_Package/0/getItemPrices?objectMask=mask[id,locationGroupId,item[id,keyName,description],pricingLocationGroup[locations[id,name,longName]]]&objectFilter={"itemPrices":{"item": {"keyName":{"operation":"*=EVAULT"}}}} 


目前執行升級您所需要的是使用方法的SoftLayer :: upgradeVolumeCapacity,請參閱以下請求:

執行能力提升到一個特定的EVault存儲:

(url POST) https://IBMxxxx:[email protected]/rest/v3/SoftLayer_Network_Storage/eVaultId/upgradeVolumeCapacity 

隨着以下摹請求體:

{ 
    "parameters": 
    [  
     559    
    ] 
} 

不要忘記更改eVaultId爲您的EVault存儲要求,試試這個休息請求來檢索特定的EVault ID:

找回帳戶的相關的EVault存儲卷:

https://IBMxxxx:[email protected]/rest/v3/SoftLayer_Account/getEvaultNetworkStorage?objectMask=mask[id, serviceResourceName,guestId,billingItem[id,location]] 

一旦獲得,那麼你可以指定一個upgradeItem(如「itemId」:559這可能是用於40Gb閃存盤的itemId)。

檢索升級的itemId的爲允許使用以下請求不同的升級能力:

https://IBMxxxx:[email protected]/rest/v3/SoftLayer_Network_Storage/eVaultId/getObject?objectMask=mask[id, billingItem[id, upgradeItems[prices]]] 

(不要忘記改變eVaultId)。

查看upgradeItems屬性並選擇所需的容量,您應該在方法upgradeVolumeCapacity上使用您需要的容量值id

有關eVaults的更多信息,請參見下面:

Sample code to handle the upgrade of EVault?

How to find location of an EVault using SoftLayer API?

Sample code for ordering an EVault backup in SoftLayer

+0

我知道ORDER API(upgradeVolumeCapacity),順便說一句,我在升級/訂購步驟之前使用了驗證步驟。所以我需要驗證一步。但驗證api返回錯誤。 – HyungJun

+0

如果您使用門戶使用eVault存儲的「添加」選項,則當前可以使用門戶網站執行的操作是使用該門戶網站執行的操作,這將顯示可用位置列表,一旦您使用此功能驗證/ placeOrder,那麼當您嘗試添加另一個時,您不會再顯示之前的位置,這就是爲什麼api顯示該錯誤消息的原因,您需要更改該新位置和容量的位置和正確的項目價格,示例66975(40 Gb),位置2124095(倫敦1),請參閱上面的更新請求以檢索該信息。 –