SoftLayer_Account::getBareMetalInstances() 不工作?
SoftLayer_Account::getBareMetalInstances() not working?
在 SoftLayer 中,我可以看到我有 2 个裸机服务器。我要求取消一个,但另一个都很好,没有待处理的操作,一切都处于活动状态。但是,当我调用 SoftLayer_Account::getBareMetalInstances()
时,它是一个空列表 return。为什么?
我也有虚拟访客,getVirtualGuests()
return 应该是 return。这是 getBareMetalInstances()
上的错误吗?还是我应该使用另一个 API 来获取我的裸机列表?有人也可以试试这个,看看你是否得到相同的结果?
下面是我为此使用的一些代码:
$client = SoftLayer_SoapClient::getClient('SoftLayer_Account', null, $apiUsername, $apiKey);
$result = '{}';
if ($type == 'vg') {
$result = $client->getVirtualGuests();
}
else if ($type == 'bm') {
$result = $client->getBareMetalInstances();
}
ApsUtilsDebug::Debug(__METHOD__." type=".$type.". result=".json_encode($result));
此外,我还尝试使用海报手动调用以下内容:
GET https://api.softlayer.com/rest/v3/SoftLayer_Account/getBareMetalInstances.json
GET https://api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests.json
我有的是按小时计费的裸机服务器。所以我也尝试了 getHourlyBareMetalInstances()
,但仍然是 return 的空列表。
使用这个方法http://sldn.softlayer.com/reference/services/SoftLayer_Account/getHardware
SoftLayer_Account::getBareMetalInstancesreturns裸机服务器是物理服务器。
SoftLayer_Account::getBareMetalInstances 方法检索裸机实例。这意味着将检索具有“bareMetalInstanceFlag”属性 为 true 的裸金属。
You need to consider that "Bare Metal Instances" are different than
"Bare Metal Servers".
此类服务器(裸机实例)不再可订购。部分已有此类服务器的账号可以使用此方法
因此,如果您想取回裸机服务器,以下方法会有所帮助:SoftLayer_Account::getHardware
如果您想每小时检索一次裸机服务器,请尝试以下代码:
<?php
/**
* Get Hourly Bare Metal Servers
*
* Important manual pages:
* @see http://sldn.softlayer.com/reference/services/SoftLayer_Account/getHardware
* @see http://sldn.softlayer.com/article/Object-Filters
* @see http://sldn.softlayer.com/article/Object-Masks
*
* @license <http://sldn.softlayer.com/wiki/index.php/license>
* @author SoftLayer Technologies, Inc. <sldn@softlayer.com>
*/
require_once '\vendor\autoload.php';
/**
* Your SoftLayer API username
* @var string
*/
$username = "set me";
/**
* Your SoftLayer API key
* Generate one at: https://control.softlayer.com/account/users
* @var string
*/
$apiKey = "set me";
// Create a SoftLayer API client object to the "SoftLayer_Security_Ssh_Key" service
$client = \SoftLayer\SoapClient::getClient('SoftLayer_Account', null, $username, $apiKey);
// Declare an object mask, to get hourlyBillingFlag property
$objectMask = "mask[hourlyBillingFlag]";
$client->setObjectMask($objectMask);
try {
$hourlyBareMetals = $client -> getHardware();
foreach($hourlyBareMetals as $server)
{
if($server -> hourlyBillingFlag == 1)
{
print_r($server);
}
}
} catch(Exception $e) {
echo "Unable to get hourly bare metal servers: " . $e -> getMessage();
}
注:"hourlyBillingFlag" 属性为真(1)的服务器,指的是按小时计费的裸机服务器。
在 SoftLayer 中,我可以看到我有 2 个裸机服务器。我要求取消一个,但另一个都很好,没有待处理的操作,一切都处于活动状态。但是,当我调用 SoftLayer_Account::getBareMetalInstances()
时,它是一个空列表 return。为什么?
我也有虚拟访客,getVirtualGuests()
return 应该是 return。这是 getBareMetalInstances()
上的错误吗?还是我应该使用另一个 API 来获取我的裸机列表?有人也可以试试这个,看看你是否得到相同的结果?
下面是我为此使用的一些代码:
$client = SoftLayer_SoapClient::getClient('SoftLayer_Account', null, $apiUsername, $apiKey);
$result = '{}';
if ($type == 'vg') {
$result = $client->getVirtualGuests();
}
else if ($type == 'bm') {
$result = $client->getBareMetalInstances();
}
ApsUtilsDebug::Debug(__METHOD__." type=".$type.". result=".json_encode($result));
此外,我还尝试使用海报手动调用以下内容:
GET https://api.softlayer.com/rest/v3/SoftLayer_Account/getBareMetalInstances.json
GET https://api.softlayer.com/rest/v3/SoftLayer_Account/getVirtualGuests.json
我有的是按小时计费的裸机服务器。所以我也尝试了 getHourlyBareMetalInstances()
,但仍然是 return 的空列表。
使用这个方法http://sldn.softlayer.com/reference/services/SoftLayer_Account/getHardware
SoftLayer_Account::getBareMetalInstancesreturns裸机服务器是物理服务器。
SoftLayer_Account::getBareMetalInstances 方法检索裸机实例。这意味着将检索具有“bareMetalInstanceFlag”属性 为 true 的裸金属。
You need to consider that "Bare Metal Instances" are different than "Bare Metal Servers".
此类服务器(裸机实例)不再可订购。部分已有此类服务器的账号可以使用此方法
因此,如果您想取回裸机服务器,以下方法会有所帮助:SoftLayer_Account::getHardware
如果您想每小时检索一次裸机服务器,请尝试以下代码:
<?php
/**
* Get Hourly Bare Metal Servers
*
* Important manual pages:
* @see http://sldn.softlayer.com/reference/services/SoftLayer_Account/getHardware
* @see http://sldn.softlayer.com/article/Object-Filters
* @see http://sldn.softlayer.com/article/Object-Masks
*
* @license <http://sldn.softlayer.com/wiki/index.php/license>
* @author SoftLayer Technologies, Inc. <sldn@softlayer.com>
*/
require_once '\vendor\autoload.php';
/**
* Your SoftLayer API username
* @var string
*/
$username = "set me";
/**
* Your SoftLayer API key
* Generate one at: https://control.softlayer.com/account/users
* @var string
*/
$apiKey = "set me";
// Create a SoftLayer API client object to the "SoftLayer_Security_Ssh_Key" service
$client = \SoftLayer\SoapClient::getClient('SoftLayer_Account', null, $username, $apiKey);
// Declare an object mask, to get hourlyBillingFlag property
$objectMask = "mask[hourlyBillingFlag]";
$client->setObjectMask($objectMask);
try {
$hourlyBareMetals = $client -> getHardware();
foreach($hourlyBareMetals as $server)
{
if($server -> hourlyBillingFlag == 1)
{
print_r($server);
}
}
} catch(Exception $e) {
echo "Unable to get hourly bare metal servers: " . $e -> getMessage();
}
注:"hourlyBillingFlag" 属性为真(1)的服务器,指的是按小时计费的裸机服务器。