Class: OpenNebula::Client
- Inherits:
-
Object
- Object
- OpenNebula::Client
- Defined in:
- lib/opennebula/client.rb
Overview
The client class, represents the connection with the core and handles the xml-rpc calls.
Instance Attribute Summary collapse
-
#one_auth ⇒ Object
Returns the value of attribute one_auth.
Instance Method Summary collapse
- #call(action, *args) ⇒ Object
- #get_version ⇒ Object
-
#initialize(secret = nil, endpoint = nil, options = {}) ⇒ OpenNebula::Client
constructor
Creates a new client object that will be used to call OpenNebula functions.
Constructor Details
#initialize(secret = nil, endpoint = nil, options = {}) ⇒ OpenNebula::Client
Creates a new client object that will be used to call OpenNebula functions.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/opennebula/client.rb', line 67 def initialize(secret=nil, endpoint=nil, ={}) if secret @one_auth = secret elsif ENV["ONE_AUTH"] and !ENV["ONE_AUTH"].empty? and File.file?(ENV["ONE_AUTH"]) @one_auth = File.read(ENV["ONE_AUTH"]) elsif File.file?(ENV["HOME"]+"/.one/one_auth") @one_auth = File.read(ENV["HOME"]+"/.one/one_auth") else raise "ONE_AUTH file not present" end @one_auth.rstrip! if endpoint @one_endpoint = endpoint elsif ENV["ONE_XMLRPC"] @one_endpoint = ENV["ONE_XMLRPC"] else @one_endpoint = "http://localhost:2633/RPC2" end timeout=nil timeout=[:timeout] if [:timeout] @server = XMLRPC::Client.new2(@one_endpoint, nil, timeout) if OpenNebula::NOKOGIRI @server.set_parser(NokogiriStreamParser.new) elsif XMLPARSER @server.set_parser(XMLRPC::XMLParser::XMLStreamParser.new) end end |
Instance Attribute Details
#one_auth ⇒ Object
Returns the value of attribute one_auth.
45 46 47 |
# File 'lib/opennebula/client.rb', line 45 def one_auth @one_auth end |
Instance Method Details
#call(action, *args) ⇒ Object
101 102 103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/opennebula/client.rb', line 101 def call(action, *args) begin response = @server.call_async("one."+action, @one_auth, *args) if response[0] == false Error.new(response[1], response[2]) else response[1] #response[1..-1] end rescue Exception => e Error.new(e.) end end |
#get_version ⇒ Object
115 116 117 |
# File 'lib/opennebula/client.rb', line 115 def get_version() call("system.version") end |