Class: OpenStack::AuthV10
- Inherits:
-
Object
- Object
- OpenStack::AuthV10
- Defined in:
- lib/openstack/connection.rb
Instance Method Summary collapse
-
#initialize(connection) ⇒ AuthV10
constructor
A new instance of AuthV10.
Constructor Details
#initialize(connection) ⇒ AuthV10
Returns a new instance of AuthV10.
373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 |
# File 'lib/openstack/connection.rb', line 373 def initialize(connection) tries = connection.retries time = 3 hdrhash = { "X-Auth-User" => connection.authuser, "X-Auth-Key" => connection.authkey } begin server = Net::HTTP::Proxy(connection.proxy_host, connection.proxy_port).new(connection.auth_host, connection.auth_port) if connection.auth_scheme == "https" server.use_ssl = true server.verify_mode = OpenSSL::SSL::VERIFY_NONE end server.start rescue puts "Can't connect to the server: #{tries} tries to reconnect" if connection.is_debug sleep time += 1 retry unless (tries -= 1) <= 0 raise OpenStack::Exception::Connection, "Unable to connect to #{server}" end response = server.get(connection.auth_path, hdrhash) if (response.code =~ /^20./) connection.authtoken = response["x-auth-token"] case connection.service_type when "compute" uri = URI.parse(response["x-server-management-url"]) when "object-store" uri = URI.parse(response["x-storage-url"]) end raise OpenStack::Exception::Authentication, "Unexpected Response from #{connection.auth_host} - couldn't get service URLs: \"x-server-management-url\" is: #{response["x-server-management-url"]} and \"x-storage-url\" is: #{response["x-storage-url"]}" if (uri.host.nil? || uri.host=="") connection.service_host = uri.host connection.service_path = uri.path connection.service_port = uri.port connection.service_scheme = uri.scheme connection.authok = true else connection.authok = false raise OpenStack::Exception::Authentication, "Authentication failed with response code #{response.code}" end server.finish end |