Class: Fog::Vcloud::Real
- Inherits:
-
Object
- Object
- Fog::Vcloud::Real
- Extended by:
- Generators
- Defined in:
- lib/fog/vcloud.rb,
lib/fog/vcloud/models/vdcs.rb,
lib/fog/vcloud/requests/login.rb,
lib/fog/vcloud/requests/get_vdc.rb,
lib/fog/vcloud/requests/get_network.rb,
lib/fog/vcloud/requests/get_versions.rb,
lib/fog/vcloud/requests/get_organization.rb
Direct Known Subclasses
Instance Attribute Summary collapse
-
#login_uri ⇒ Object
Returns the value of attribute login_uri.
-
#supported_versions ⇒ Object
readonly
Returns the value of attribute supported_versions.
-
#versions_uri ⇒ Object
readonly
Returns the value of attribute versions_uri.
Instance Method Summary collapse
- #default_organization_uri ⇒ Object
-
#initialize(options = {}) ⇒ Real
constructor
A new instance of Real.
- #login ⇒ Object
- #reload ⇒ Object
-
#request(params) ⇒ Object
If the cookie isn’t set, do a get_organizations call to set it and try the request.
- #vdcs(options = {}) ⇒ Object
- #xmlns ⇒ Object
Methods included from Generators
basic_request, unauthenticated_basic_request
Constructor Details
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/fog/vcloud.rb', line 49 def initialize( = {}) @connections = {} @versions_uri = URI.parse([:versions_uri]) @module = [:module] @version = [:version] @username = [:username] @password = [:password] @login_uri = get_login_uri @persistent = [:persistent] end |
Instance Attribute Details
#login_uri ⇒ Object
Returns the value of attribute login_uri.
46 47 48 |
# File 'lib/fog/vcloud.rb', line 46 def login_uri @login_uri end |
#supported_versions ⇒ Object (readonly)
Returns the value of attribute supported_versions.
47 48 49 |
# File 'lib/fog/vcloud.rb', line 47 def supported_versions @supported_versions end |
#versions_uri ⇒ Object (readonly)
Returns the value of attribute versions_uri.
47 48 49 |
# File 'lib/fog/vcloud.rb', line 47 def versions_uri @versions_uri end |
Instance Method Details
#default_organization_uri ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/fog/vcloud.rb', line 60 def default_organization_uri @default_organization_uri ||= begin unless @login_results do_login end case @login_results.body[:Org] when Array @login_results.body[:Org].first[:href] when Hash @login_results.body[:Org][:href] else nil end end end |
#login ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/fog/vcloud/requests/login.rb', line 7 def login unauthenticated_request({ :expects => 200, :headers => { 'Authorization' => }, :method => 'POST', :parse => true, :uri => @login_uri }) end |
#reload ⇒ Object
82 83 84 |
# File 'lib/fog/vcloud.rb', line 82 def reload @connections.each_value { |k,v| v.reset if v } end |
#request(params) ⇒ Object
If the cookie isn’t set, do a get_organizations call to set it and try the request. If we get an Unauthorized error, we assume the token expired, re-auth and try again
89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/fog/vcloud.rb', line 89 def request(params) unless @cookie do_login end begin do_request(params) rescue Excon::Errors::Unauthorized => e do_login do_request(params) end end |
#vdcs(options = {}) ⇒ Object
5 6 7 |
# File 'lib/fog/vcloud/models/vdcs.rb', line 5 def vdcs( = {}) @vdcs ||= Fog::Vcloud::Vdcs.new(.merge(:connection => self)) end |
#xmlns ⇒ Object
76 77 78 79 80 |
# File 'lib/fog/vcloud.rb', line 76 def xmlns { "xmlns" => "http://www.vmware.com/vcloud/v0.8", "xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance", "xmlns:xsd" => "http://www.w3.org/2001/XMLSchema" } end |