Module: Fog::Vcloud::Terremark::Ecloud::Real
- Defined in:
- lib/fog/vcloud/terremark/ecloud/models/vdcs.rb,
lib/fog/vcloud/terremark/ecloud/requests/login.rb,
lib/fog/vcloud/terremark/ecloud/requests/get_vdc.rb,
lib/fog/vcloud/terremark/ecloud/models/public_ips.rb,
lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb,
lib/fog/vcloud/terremark/ecloud/requests/get_public_ips.rb,
lib/fog/vcloud/terremark/ecloud/models/internet_services.rb,
lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb,
lib/fog/vcloud/terremark/ecloud/requests/get_internet_services.rb,
lib/fog/vcloud/terremark/ecloud/requests/delete_internet_service.rb
Class Method Summary collapse
- .generate_internet_service_request(service_data) ⇒ Object
- .validate_internet_service_request_data(service_data) ⇒ Object
Instance Method Summary collapse
- #add_internet_service(internet_service_uri, service_data) ⇒ Object
- #delete_internet_service(internet_service_uri) ⇒ Object
- #get_internet_services(internet_services_uri) ⇒ Object
- #get_public_ip(public_ip_uri) ⇒ Object
- #get_public_ips(public_ips_uri) ⇒ Object
-
#get_vdc(vdc_uri) ⇒ Object
Get details of a vdc.
- #internet_services(options = {}) ⇒ Object
-
#login ⇒ Object
See /lib/fog/vcloud/requests/get_organizations.rb.
- #public_ips(options = {}) ⇒ Object
- #vdcs(options = {}) ⇒ Object
Class Method Details
.generate_internet_service_request(service_data) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 |
# File 'lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb', line 7 def self.generate_internet_service_request(service_data) builder = Builder::XmlMarkup.new builder.CreateInternetServiceRequest(:"xmlns:xsi" => "http://www.w3.org/2001/XMLSchema-instance", :"xmlns:xsd" => "http://www.w3.org/2001/XMLSchema", :xmlns => "urn:tmrk:eCloudExtensions-2.0") { builder.Name(service_data[:name]) builder.Protocol(service_data[:protocol]) builder.Port(service_data[:port]) builder.Enabled(service_data[:enabled]) builder.Description(service_data[:description]) } end |
.validate_internet_service_request_data(service_data) ⇒ Object
20 21 22 23 24 25 |
# File 'lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb', line 20 def self.validate_internet_service_request_data(service_data) valid_opts = [:name, :protocol, :port, :description, :enabled, :description] unless valid_opts.all? { |opt| service_data.keys.include?(opt) } raise ArgumentError.new("Required Internet Service data missing: #{(valid_opts - service_data.keys).map(&:inspect).join(", ")}") end end |
Instance Method Details
#add_internet_service(internet_service_uri, service_data) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/fog/vcloud/terremark/ecloud/requests/add_internet_service.rb', line 27 def add_internet_service(internet_service_uri, service_data) Fog::Vcloud::Terremark::Ecloud::Real.validate_internet_service_request_data(service_data) request( :body => Fog::Vcloud::Terremark::Ecloud::Real.generate_internet_service_request(service_data), :expects => 200, :headers => {'Content-Type' => 'application/vnd.tmrk.ecloud.internetService+xml'}, :method => 'POST', :parser => Fog::Parsers::Vcloud::Terremark::Ecloud::InternetService.new, :uri => internet_service_uri ) end |
#delete_internet_service(internet_service_uri) ⇒ Object
7 8 9 10 11 12 13 14 15 |
# File 'lib/fog/vcloud/terremark/ecloud/requests/delete_internet_service.rb', line 7 def delete_internet_service(internet_service_uri) request( :body => "", :expects => 200, #:headers => {'Content-Type' => 'application/vnd.tmrk.ecloud.internetService+xml'}, :method => 'DELETE', :uri => internet_service_uri ) end |
#get_internet_services(internet_services_uri) ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/fog/vcloud/terremark/ecloud/requests/get_internet_services.rb', line 8 def get_internet_services(internet_services_uri) request( :expects => 200, :method => 'GET', :parser => Fog::Parsers::Vcloud::Terremark::Ecloud::GetInternetServices.new, :uri => internet_services_uri ) end |
#get_public_ip(public_ip_uri) ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb', line 8 def get_public_ip(public_ip_uri) opts = { :expects => 200, :method => 'GET', :parser => Fog::Parsers::Vcloud::Terremark::Ecloud::GetPublicIp.new, :uri => public_ip_uri } if self.class == Fog::Terremark::Ecloud::Real opts[:path] = "extensions/publicIp/#{public_ip_id}" end request(opts) end |
#get_public_ips(public_ips_uri) ⇒ Object
8 9 10 11 12 13 14 15 |
# File 'lib/fog/vcloud/terremark/ecloud/requests/get_public_ips.rb', line 8 def get_public_ips(public_ips_uri) request( :expects => 200, :method => 'GET', :parser => Fog::Parsers::Vcloud::Terremark::Ecloud::GetPublicIps.new, :uri => public_ips_uri ) end |
#get_vdc(vdc_uri) ⇒ Object
Get details of a vdc
9 10 11 12 13 14 15 16 |
# File 'lib/fog/vcloud/terremark/ecloud/requests/get_vdc.rb', line 9 def get_vdc(vdc_uri) request( :expects => 200, :method => 'GET', :parser => Fog::Parsers::Vcloud::Terremark::Ecloud::GetVdc.new, :uri => vdc_uri ) end |
#internet_services(options = {}) ⇒ Object
13 14 15 |
# File 'lib/fog/vcloud/terremark/ecloud/models/internet_services.rb', line 13 def internet_services( = {}) @internet_services ||= Fog::Vcloud::Terremark::Ecloud::InternetServices.new(.merge(:connection => self)) end |
#login ⇒ Object
See /lib/fog/vcloud/requests/get_organizations.rb
8 9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/fog/vcloud/terremark/ecloud/requests/login.rb', line 8 def login unauthenticated_request({ :expects => 200, :headers => { 'Authorization' => , 'Content-Type' => "application/vnd.vmware.vcloud.orgList+xml" }, :method => 'POST', :parser => Fog::Parsers::Vcloud::Login.new, :uri => @login_uri }) end |