Class: OpenNebula::Client
- Inherits:
-
Object
- Object
- OpenNebula::Client
- Defined in:
- lib/OpenNebula.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
-
#initialize(secret = nil, endpoint = nil) ⇒ Client
constructor
A new instance of Client.
Constructor Details
#initialize(secret = nil, endpoint = nil) ⇒ Client
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
# File 'lib/OpenNebula.rb', line 122 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 @server = XMLRPC::Client.new2(@one_endpoint) 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.
113 114 115 |
# File 'lib/OpenNebula.rb', line 113 def one_auth @one_auth end |
Instance Method Details
#call(action, *args) ⇒ Object
152 153 154 155 156 157 158 159 160 161 162 163 164 |
# File 'lib/OpenNebula.rb', line 152 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 |