2015-12-08 68 views
0

從我通過SoftLayer界面看到的,在創建圖像模板並嘗試使用它來訂購虛擬服務器之後,已經選擇了選項以匹配創建圖像模板的主機。 所以我猜測該模板將包含CPU,內存,磁盤空間等的所有細節。我如何獲得這些細節?我的猜測是「SoftLayer_Virtual_Guest_Block_Device_Template_Group」代表圖像模板,所以它會有一些API告訴我圖像模板的細節,但是我沒有找到可以給我提供這些信息的API,除非我錯過了它。如何獲取圖像模板的詳細信息?

我使用哪個API來獲取SoftLayer中圖像模板的詳細信息? (以便我知道選擇了哪個類別的值等)

+0

作爲一個例子,假設我有一個帶有1GB內存,20GB磁盤空間和Ubuntu操作系統的虛擬服務器。我從中創建了一個圖像模板。 當我嘗試使用此映像模板來訂購虛擬服務器時,應將虛擬服務器選項預設爲1GB RAM,20GB磁盤空間和Ubuntu OS。 而這些配置信息必須存儲在圖像模板中的某些地方。 那麼我可以使用哪些API來告訴我圖像模板的所有配置信息,如 1GB內存,20GB磁盤空間,Ubuntu操作系統等。 – KHP

回答

0

圖像模板包含有關操作系統和磁盤的信息。你可以從一個圖像模板的詳細信息,下面的方法:

http://sldn.softlayer.com/reference/services/SoftLayer_Virtual_Guest_Block_Device_Template_Group/getObject

要想從其中可以用於圖像軟件包的信息:

http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package/getAvailablePackagesForImageTemplate

此外,下面的方法將幫助您檢索可應用於圖像的物品:

http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package/getItemsFromImageTemplate

我希望這個信息可以幫助您

+0

對於SoftLayer_Virtual_Guest_Block_Device_Template_Group :: getObject(),它只提供有關模板組的非常基本的信息。我需要關於所有配置細節的信息。 – KHP

+0

我不確定SoftLayer_Product_Package :: getItemsFromImageTemplate()會給我我想要的信息,但是當它說SoftLayer_Virtual_Guest_Block_Device_Template_Group作爲參數時,我該如何傳遞它?這是SoftLayer API的一部分,我還沒有想出來..你可能給我舉一些例子,我將如何實際調用SoftLayer_Product_Package :: getItemsFromImageTemplate()調用?也許在REST或PHP代碼中的例子?謝謝你的幫助。 – KHP

0

試試下面的PHP腳本,它可以幫助我們得到可用的軟件包及其物品的圖像模板,

<?php 
/** 
* Get packages and items from an image template 
* 
* This script retrieves packages in which the image template could be used, 
* also It retrieves the items available for the image per package. 
* 
* Important manual pages: 
* http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package/getAvailablePackagesForImageTemplate 
* http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package/getItemsFromImageTemplate 
* 
* License: http://sldn.softlayer.com/article/License 
* Author: SoftLayer Technologies, Inc. <[email protected]> 
*/ 
require_once __DIR__."SoapClient.php"; 

# Your SoftLayer username and apikey 
$username = "set me"; 
$apiKey = "set me"; 

# The image template which you wish more details 
$imageTemplateId = 429428; 
# Creating a SoftLayer API client object 
$packageService = \SoftLayer\SoapClient::getClient("SoftLayer_Product_Package", null, $username, $apiKey); 

/* 
* Build a skeleton SoftLayer_Virtual_Guest_Block_Device_Template_Group object to define the image template id 
*/ 
$imageTemplate = new \stdClass(); 
$imageTemplate -> id = $imageTemplateId; 

try { 
    // Get available packages for the image template 
    $packages = $packageService -> getAvailablePackagesForImageTemplate($imageTemplate); 
    foreach ($packages as $package) 
    { 
     // Set init parameters per available package 
     $packageService -> setInitParameter($package->id); 
     // Print available package 
     print_r("**** PACKAGE: " . $package->id . " ****\n"); 
     // Get items per package 
     $items = $packageService -> getItemsFromImageTemplate($imageTemplate); 
     print_r($items); 
    } 
} catch (Exception $e) { 
    die("Unable to get packages and items for the image template. " . $e->getMessage()); 
} 

?> 

參考文獻: 的SoftLayer API PHP客戶端:https://github.com/softlayer/softlayer-api-php-client

+0

謝謝。我會給那一槍。但是我必須先解決一些其他問題,因此可能需要幾天時間才能嘗試。 – KHP