Introduzione alle CCI

Nel contesto dell'API SoftLayer, le CCI (CloudLayer Computing Instance) SoftLayer sono rappresentate da oggetti SoftLayer_Virtual_Guest. Il servizio SoftLayer_Virtual_Guest consente l'interazione con una specifica CCI; puoi interagire con tutte le CCI sul tuo
account mediante il servizio SoftLayer_Account.

Creazione

L'ordinazione di nuove CCI si effettua mediante SoftLayer_Virtual_Guest::createObject.
Viene innanzitutto creato un oggetto modello SoftLayer_Virtual_Guest che contiene i dettagli della CCI. Per ogni oggetto modello di CCI dovranno essere definite almeno le seguenti proprietà:

  • hostname - il nome host della nuova CCI
  • domain - il nome dominio della nuova CCI
  • startCpus - il numero di core di elaborazione
  • maxMemory - l'allocazione di memoria in MB
  • hourlyBillingFlag - impostala su true per la fatturazione oraria, su false per quella mensile
  • operatingSystemReferenceCode - codice per specificare quale sistema operativo installare
  • localDiskFlag - se impostata su true, configurerà una CCI con i dischi locali, su false invece per i dischi SAN.
$virtualGuestClient = SoftLayer_SoapClient::getClient('SoftLayer_Virtual_Guest', null, $user, $key);
$virtualGuestTemplate = new stdClass();
$virtualGuestTemplate->hostname = 'test1';
$virtualGuestTemplate->domain = 'example.com';
$virtualGuestTemplate->startCpus = 1;
$virtualGuestTemplate->maxMemory = 1024;
$virtualGuestTemplate->hourlyBillingFlag = true;
$virtualGuestTemplate->operatingSystemReferenceCode = 'UBUNTU_LATEST';
$virtualGuestTemplate->localDiskFlag = false;
 
$result = $virtualGuestClient->createObject($virtualGuestTemplate);
print_r($result);

Tutte le opzioni per ordinare CCI possono essere richiamate con SoftLayer_Virtual_Guest::getCreateObjectOptions.
Il metodo createObject() potrebbe determinare degli addebiti sull'account; è quindi preferibile testare la creazione di CCI senza causare l'effettuazione di un ordine con SoftLayer_Virtual_Guest::generateOrderTemplate per generare un oggetto ordine. Il SoftLayer_Container_Product_Order restituito da questo metodo può
essere passato in un SoftLayer_Product_Order::verifyOrder che segnala gli eventuali problemi che impedirebbero l'elaborazione dell'ordine.

$orderClient = SoftLayer_SoapClient::getClient('SoftLayer_Product_Order', Null, $user, $key);
$orderContainer = $virtualGuestClient->generateOrderTemplate($virtualGuestTemplate);
print_r($orderClient->verifyOrder($orderContainer);

Elenco

Un elenco di tutte le CCI (CloudLayer Computing Instance) può essere raccolto dal servizio SoftLayer_Account con
il metodo SoftLayer_Account::getVirtualGuests. Questo metodo restituisce un array di
oggetti di tipo dati SoftLayer_Virtual_Guest.

$accountClient = SoftLayer_SoapClient::getClient('SoftLayer_Account', Null, $user, $key);
$virtualGuests = $accountClient->getVirtualGuests();
print_r($virtualGuests);

Questo elenco completo viene spesso utilizzato per recuperare informazioni su tutte le CCI su un account ed è anche utile quando si cerca una specifica CCI di cui non è noto l'ID.

$accountClient = SoftLayer_SoapClient::getClient('SoftLayer_Account', Null, $user, $key);
$virtualGuests = $accountClient->getVirtualGuests();
foreach ($virtualGuests as $virtualGuest) {
    if ($virtualGuest->hostname == "server1") {
        $serverId = $virtualGuest->id;
    }
}

Dettagli

Per ottenere informazioni su una specifica CCI, è possibile utilizzare SoftLayer_Virtual_Guest::getObject, che restituisce un oggetto SoftLayer_Virtual_Guest. È possibile utilizzare le maschere oggetto per includere dati esterni alle proprietà locali di SoftLayer_Virtual_Guest. Di seguito viene riportato un esempio di utilizzo di getObject sul servizio SoftLayer_Virtual_Guest con una maschera oggetto che fornisce le password per il sistema operativo installato sul server.

$guestClient = SoftLayer_SoapClient::getClient('SoftLayer_Virtual_Guest', $id, $user, $key);
$objectMask = "mask[id, hostname, domain, operatingSystem[passwords]]"
$guestClient->setObjectMask($objectMask);
$virtualGuest = $guestClient->getObject();
print_r($virtualGuest);

Poiché abbiamo anche definito diverse proprietà locali, tieni presente che l'output include solo la serie limitata di proprietà locali definite nella maschera, oltre alle proprietà relazionali introdotte dalla maschera oggetto.

Annullamento

L'annullamento delle CCI può essere eseguito estraendo l'ID dal servizio SoftLayer_Account. In questo esempio, estraiamo tutti i guest virtuali dall'account e utilizziamo il nome host per analizzare lo specifico guest che desideriamo annullare. Questa operazione deve essere eseguita con cautela poiché il nome host di un guest virtuale non è univoco.
SoftLayer_Virtual_Guest::deleteObject

$guestClient = SoftLayer_SoapClient::getClient('SoftLayer_Virtual_Guest', $serverId, $user, $key);
$result = $guestClient->deleteObject();
print_r($result);

Questo metodo annulla immediatamente l'istanza di elaborazione con l'ID specificato.
Nota: mettere in pausa un'istanza con SoftLayer_Virtual_Guest::pause non arresta la fatturazione. Un'istanza deve essere annullata/eliminata per interrompere la fatturazione.

Riavvio

Il riavvio di una CCI può essere eseguito in due modi: