Для следующих сетевых устройств:
Netscaler, балансировка нагрузки, подсеть IPSecVPN,
Какой правильный метод Softlayer API для отмены этих устройств?
Является ли «SoftLayer_Billing_Item :: cancelService» правильным, чтобы отменить их с помощью billingId?
http://sldn.softlayer.com/reference/services/SoftLayer_Billing_Item/cancelService
В SoftLayer_ticket также есть метод
SoftLayer_Ticket :: createCancelServerTicket
http://sldn.softlayer.com/reference/services/SoftLayer_Ticket/createCancelServerTicket
Является ли SoftLayer_Ticket :: createCancelServerTicket только для отмены сервера Bare Metal с использованием идентификатора сервера без поддержки?
Или я могу использовать SoftLayer_Ticket :: createCancelServerTicket для отмены сетевых устройств, предоставив идентификатор сетевого устройства?
Благодарю.
Да, SoftLayer_Billing_Item :: cancelService следует использовать для отмены таких элементов, как: Балансировщик нагрузки, iPsec VPN, Netscaler и т. Д., Даже «SoftLayer_Billing_Item :: cancelItem» является другим вариантом использования.
Тем не мение, http://sldn.softlayer.com/reference/services/SoftLayer_Ticket/createCancelServerTicket не может использоваться для услуг (например, сетевых продуктов), в документе SLDN говорится, что его следует использовать только для серверов (слитки металлов)
Вот несколько примеров отмены услуг:
Отмените «IpSec VPN», используя «cancelService»:
<?php
require_once(dirname(__FILE__) . '/SoftLayer/SoapClient.class.php');
/**
* Set your SoftLayer API username and key.
*/
$apiUsername = 'set me';
$apiKey = 'set me';
/**
* Set the service to use
*/
$ipSecService ='SoftLayer_Network_Tunnel_Module_Context';
$billingItemService = 'SoftLayer_Billing_Item';
$ipSecId = 77;
/**
* Create a client to the API service.
*/
$ipSecClient = SoftLayer_SoapClient::getClient($ipSecService, $ipSecId, $apiUsername, $apiKey);
$mask = new SoftLayer_ObjectMask();
$mask = 'mask[id,billingItem.id]';
$ipSecClient->setObjectMask($mask);
try {
$ipSecItem = $ipSecClient->getObject();
$billingItemId = $ipSecItem->billingItem->id;
print_r($billingItemId);
try {
$billingItemClient = SoftLayer_SoapClient::getClient($billingItemService, $billingItemId, $apiUsername, $apiKey, $endpointUrl);
$result = $billingItemClient->cancelService();
print_r($result);
} catch(Exception $e) {
echo 'Unable to cancel the item: ' . $e->getMessage();
}
} catch (Exception $e) {
echo 'Failed ... Unable to get item: ' . $e->getMessage();
}
Отмените «IpSec VPN», используя «cancelItem»:
<?php
require_once(dirname(__FILE__) . '/SoftLayer/SoapClient.class.php');
/**
* Set your SoftLayer API username and key.
*/
$apiUsername = 'set me';
$apiKey = 'set me';
/**
* Set the service to use
*/
$ipSecService ='SoftLayer_Network_Tunnel_Module_Context';
$billingItemService = 'SoftLayer_Billing_Item';
$ipSecId = 77;
/**
* Create a client to the API service.
*/
$ipSecClient = SoftLayer_SoapClient::getClient($ipSecService, $ipSecId, $apiUsername, $apiKey, $endpointUrl);
//$ipSecClient = SoftLayer_SoapClient::getClient($ipSecService, $ipSecId, $apiUsername, $apiKey);
$mask = new SoftLayer_ObjectMask();
$mask = 'mask[id,billingItem.id]';
$ipSecClient->setObjectMask($mask);
try {
$ipSecItem = $ipSecClient->getObject();
$billingItemId = $ipSecItem->billingItem->id;
print_r($billingItemId);
try {
$billingItemClient = SoftLayer_SoapClient::getClient($billingItemService, $billingItemId, $apiUsername, $apiKey, $endpointUrl);
$result = $billingItemClient->cancelItem( False,
False,
'No longer needed',
'Api test');
print_r($result);
} catch(Exception $e) {
echo 'Unable to cancel the item: ' . $e->getMessage();
}
} catch (Exception $e) {
echo 'Failed ... Unable to get item: ' . $e->getMessage();
}
Рекомендации:
http://sldn.softlayer.com/reference/services/SoftLayer_Billing_Item/cancelService
http://sldn.softlayer.com/reference/services/SoftLayer_Billing_Item/cancelItem
Других решений пока нет …