0

从我通过 SoftLayer UI 看到的情况来看,在我创建图像模板并尝试使用它来订购虚拟服务器之后,已经选择了选项以匹配创建图像模板的主机。所以我猜测模板将包含有关 CPU、内存、磁盘空间等的所有详细信息。我如何获得这些详细信息?

我的猜测是“SoftLayer_Virtual_Guest_Block_Device_Template_Group”代表图像模板,因此它会有一些 API 告诉我图像模板的详细信息,但我还没有找到可能给我该信息的 API,除非我错过了它。

我使用哪个 API 来获取 SoftLayer 中图像模板的详细信息?(这样我就知道为哪个类别选择了什么值等等)

4

2 回答 2

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

我希望这些信息可以帮助你

于 2015-12-08T23:03:13.837 回答
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. <sldn@softlayer.com>
*/
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

于 2015-12-09T14:35:11.243 回答