2016-05-18 2 views
0

Ich bin neu in den Softlayer-Rest-APIs. Wir haben eine Anforderung, bei der Benutzer dem vorhandenen bereitgestellten Server in Softlayer ein zusätzliches SAN oder eine lokale Festplatte hinzufügen können. Dafür bezog ich mich auf die REST API guide Unser Projekt ist auf Ruby on Rails gebaut und wir verwenden softlayer_api Edelstein und so schaute ich auf die api ruby doc. Aber keiner dieser Links hat mir geholfen. Gibt es Ruby-Beispiele für adding a disk?Hinzufügen von SAN oder lokaler Festplatte zum bereits bereitgestellten Server in Softlayer

Antwort

0

Bitte versuchen Sie das folgende Beispiel zu upgrade a Virtual Guest in order to add a disk:

require 'rubygems' 
require 'softlayer_api' 

# Your SoftLayer API username. 
SL_API_USERNAME = 'set me' 

# Your SoftLayer API key. 
SL_API_KEY = 'set me' 


# Set the server id that you wish to upgrade. 
server_id = 17850400 

# Set the new item price id to upgrade the VSI 
price_id = 51733 # 10 GB (SAN) "categoryCode": "guest_disk1", "name": "Second Disk" 

# Order Template with all new item configurations 
object_template = {'packageId'=> 0, 
        'prices'=> [ 
         { 
          'id'=> price_id 
         } 
        ], 
        'virtualGuests'=> [ 
         { 
          'id'=> server_id 
         } 
        ], 
        'properties'=> [ 
         { 
          'name'=> 'NOTE_GENERAL', 
          'value'=> 'Adding a SAN disk' 
         }, 
         { 
          'name'=> 'MAINTENANCE_WINDOW', 
          'value'=> 'now' 
         } 
        ], 
        'complexType'=> 'SoftLayer_Container_Product_Order_Virtual_Guest_Upgrade' 
} 

softlayer_client = SoftLayer::Client.new(:username => SL_API_USERNAME, 
             :api_key => SL_API_KEY) 
product_order_service = softlayer_client.service_named('SoftLayer_Product_Order') 

begin 
    result = product_order_service.verifyOrder(object_template) 
    puts 'Result: ' 
    puts result.inspect 
rescue Exception => e 
    puts 'Unable to add the new SAN Disk ...' 
    $stdout.print(e.inspect) 
end 

Hinweis: Sobald Ihr Skript fertig ist, bitte von verifyOrder zu placeOrder ändern.

Um gültigen Preise für das Upgrade zu erhalten, lesen Sie bitte:

SoftLayer_Virtual_Guest::getUpgradeItemPrices

Referenzen:

SoftLayer_Product_Order

SoftLayer_Container_Product_Order_Virtual_Guest_Upgrade

upgrade_examples

+0

Ich werde versuchen, den Code oben eingefügt und wird zurück zu Ihnen –

+0

Dies ist die Bestellvorlage {"complexType" => "SoftLayer_Container_Product_Order_Virtual_Guest_Upgrade", "virtualGuests" => [{"id" => 12345}], " Eigenschaften "=> [{" name "=>" MAINTENANCE_WINDOW "," value "=>" 2016-05-18T18: 14: 05 + 00: 00 "}]," prices "=> [{" id "=> 25396}, {"id" => 35237}]} 'Dafür habe ich eine Ausnahme erhalten -> ' XMLRPC :: FaultException: Hinzufügen von 30 GB (SAN) nicht möglich, weil bereits ein zweiter Festplattenpreis hinzugefügt wurde der Grund sein? –

+0

@AnupamK, vielleicht hat der virtuelle Gast, den Sie aufrüsten wollen, eine 'zweite Platte' und einige der' Artikelpreise' gehören zu einer 'zweiten Platte'. Um dies zu bestätigen, führen Sie bitte die folgende Ruheanforderung aus, um die Elemente Ihres virtuellen Gastes zu kennen: https: // [Benutzername]: [apikey] @ api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/[server_id]/getBillingItem? objectMask = Maske [ID, OrderItem [ID, Order [ID, Elemente]]] '. Wenn Ihre VSI über eine zweite Festplatte verfügt, können Sie sie von der dritten Festplatte hinzufügen. – mcruz

Verwandte Themen