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

Instance Method Summary collapse

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(options = {})
  @internet_services ||= Fog::Vcloud::Terremark::Ecloud::InternetServices.new(options.merge(:connection => self))
end

#loginObject

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 
  unauthenticated_request({
    :expects  => 200,
    :headers  => {
      'Authorization' => authorization_header,
      'Content-Type'  => "application/vnd.vmware.vcloud.orgList+xml"
    },
    :method   => 'POST',
    :parser   => Fog::Parsers::Vcloud::Login.new,
    :uri      => @login_uri
  })
end

#public_ips(options = {}) ⇒ Object



13
14
15
# File 'lib/fog/vcloud/terremark/ecloud/models/public_ips.rb', line 13

def public_ips(options = {})
  @public_ips ||= Fog::Vcloud::Terremark::Ecloud::PublicIps.new(options.merge(:connection => self))
end

#vdcs(options = {}) ⇒ Object



12
13
14
# File 'lib/fog/vcloud/terremark/ecloud/models/vdcs.rb', line 12

def vdcs(options = {})
  @vdcs ||= Fog::Vcloud::Terremark::Ecloud::Vdcs.new(options.merge(:connection => self))
end