2017-01-24 6 views
1
とSOFTLAYER Virtual_Guest

を作成する残念なことに、SOFTLAYERのAPIは、コード例をサポートしていないと任意のAPIコールは、アカウントに料金が発生します。は、私がSOFTLAYER上WHM/cPanelの持つ仮想サーバーを作成しようとしています</p> <p>をWHM/cPanelの

サービスgenerateOrderTemplateは検証されませんが、必須パラメータのみです。

次のコードの問題点は何ですか?

try { 
     $client = \libraries\SoftLayer\SoapClient::getClient('SoftLayer_Virtual_Guest', null, $apiUsername, $apiKey); 

    } catch (Exception $e) { 
     die('Unable to create service client: ' . $e->getMessage()); 
    } 

    try { 
     $virtualGuest = new \stdClass(); 
     $virtualGuest->datacenter->name = 'ams01'; 
     $virtualGuest->hostname = 'test'; 
     $virtualGuest->domain = 'myDomain.com'; 
     $virtualGuest->startCpus = 1; 
     $virtualGuest->maxMemory = 1024; 
     $virtualGuest->hourlyBillingFlag = false; 
     $virtualGuest->localDiskFlag = true; 
     $virtualGuest->operatingSystemReferenceCode = 'CENTOS_7_64'; 

     $virtualGuest->softwareComponents[0]->softwareDescription->id = 46; 
     $virtualGuest->softwareComponents[0]->softwareDescription->controlPanel = 1; 
     $virtualGuest->softwareComponents[0]->softwareDescription->virtualLicense = 1; 
     $virtualGuest->softwareComponents[0]->softwareDescription->manufacturer = "cPanel"; 

     $virtualGuest->blockDevices[0]->device = 0; 
     $virtualGuest->blockDevices[0]->diskImage->capacity = 25; 

     $call = $client->generateOrderTemplate($virtualGuest); 
     $call = $client->createObject($virtualGuest); 
     print_r($call); 

    } catch (Exception $e) { 
     die('Unable to create Virtual Guest: ' . $e->getMessage()); 
    } 

おかげ

答えて

0

は残念ながら、それはSoftLayer_Virtual_Guest::createObjectを使用してsoftwareComponentsを設定することはできません、この方法では、それはそれだけのための最も一般的なオプションを提供していので(VSIを注文する簡単な方法を提供します。つまり、 generateOrderTemplateがSoftLayer_Virtual_Guest :: createObjectメソッドと同じオプションを検証することを意味します。このメソッドで機能するすべてのオプションを取得するには、次のメソッドを使用する必要があります。

あなたのVSIためコントロールパネルソフトウェアを注文したい場合は、コントロールのためのpriceIdを見つけるにはSoftLayer_Virtual_Guest::generateOrderTemplate

の結果でこのアイテムの価格を追加する必要がありますパネルソフトウェアをご利用の場合は、SoftLayer_Product_Package::getItemPricesに電話することができます。その価格を見つけるのに役立つスクリプトを提供できます:

<?php 
/** 
* Get item prices(Standard) for Control Panel Software from specific package 
* 
* @see http://sldn.softlayer.com/reference/services/SoftLayer_Product_Package/getItemPrices 
* @see http://sldn.softlayer.com/article/object-filters 
* 
* @license <http://sldn.softlayer.com/wiki/index.php/License> 
* @author SoftLayer Technologies, Inc. <[email protected]> 
*/ 
require_once '\vendor\autoload.php'; 

// Define you SoftLayer's username and apiKey 
$apiUsername = 'set me'; 
$apiKey = 'set me'; 

// Define the package 
$packageId = 46; 

// Create a SoftLayer API client object to the "SoftLayer_Product_Package" service 
$client = \SoftLayer\SoapClient::getClient('SoftLayer_Product_Package', $packageId, $apiUsername, $apiKey); 

// Declare an object filter to get Standard - Control Panel Software item prices 
$filter = new stdClass(); 
$filter->itemPrices = new stdClass(); 
$filter->itemPrices->item = new stdClass(); 
$filter->itemPrices->item -> categories = new stdClass(); 
$filter->itemPrices->item -> categories -> name = new stdClass(); 
$filter->itemPrices->item -> categories -> name -> operation = 'Control Panel Software'; 
$filter->itemPrices -> locationGroupId = new stdClass(); 
$filter->itemPrices -> locationGroupId -> operation = "is null"; 
$client->setObjectFilter($filter); 

try{ 
    foreach($client->getItemPrices() as $price){ 
     print_r("PriceId: " . $price -> id . " ItemId: ". $price -> itemId . " Description: " . $price -> item -> description ."\n");  
    } 

} catch (Exception $e) { 
    var_dump($e -> getMessage()); 
} 

?> 

私はそれが助けてくれると助けが必要な場合はお知らせください

+0

ありがとうございました。 –

関連する問題