Sha256: 5a37d68d87a77a569abf925baefed8e6494394b6ed093c351e362202c639a5b5

Contents?: true

Size: 1.6 KB

Versions: 6

Compression:

Stored size: 1.6 KB

Contents

module Fog
  module Vcloud
    module Terremark
      module Ecloud

        module Real

          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

        end

        module Mock
          #
          #Based off of:
          #http://support.theenterprisecloud.com/kb/default.asp?id=567&Lang=1&SID=
          #

          def get_public_ip(public_ip_uri)
            ip_id = public_ip_uri.to_s.split('/')[-1]
            if ip = mock_data[:organizations].map { |org| org[:vdcs] }.flatten.map { |vdc| vdc[:public_ips] }.flatten.detect { |ip| ip[:id].to_s == ip_id }
              xml = Builder::XmlMarkup.new
              mock_it(Fog::Parsers::Vcloud::Terremark::Ecloud::GetPublicIp.new, 200,
                xml.PublicIp(:xmlns => "urn:tmrk:eCloudExtensions-2.0", :"xmlns:i" => "http://www.w3.org/2001/XMLSchema-instance") {
                  xml.Id(ip[:id])
                  xml.Href("#{Fog::Vcloud::Terremark::Ecloud::Mock.base_url}/extensions/publicIp/#{ip[:id]}")
                  xml.Name(ip[:name])
                }, { 'Content-Type' => 'application/vnd.tmrk.ecloud.publicIp+xml' }
              )
            else
              mock_error 200, "401 Unauthorized"
            end
          end

        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
fog-0.2.0 lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb
fog-0.1.10 lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb
fog-0.1.9 lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb
fog-0.1.8 lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb
fog-0.1.7 lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb
fog-0.1.6 lib/fog/vcloud/terremark/ecloud/requests/get_public_ip.rb