Sha256: b2b014c01772492e322da1fd3843426601f5b84001103b39e4f2f1fae2a83aef

Contents?: true

Size: 1.16 KB

Versions: 2

Compression:

Stored size: 1.16 KB

Contents

unless Fog.mocking?

  module Fog
    module Rackspace
      class Servers

        # List public server addresses
        #
        # ==== Parameters
        # * server_id<~Integer> - Id of server to list addresses for
        #
        # ==== Returns
        # * response<~Excon::Response>:
        #   * body<~Hash>:
        #     * 'public'<~Array> - Public ip addresses
        def list_public_addresses(server_id)
          request(
            :expects  => [200, 203],
            :method   => 'GET',
            :path     => "servers/#{server_id}/ips/public.json"
          )
        end

      end
    end
  end

else

  module Fog
    module Rackspace
      class Servers

        def list_public_addresses(server_id)
          response = Fog::Response.new
          if server = list_servers_detail.body['servers'].detect { |server| server['id'] == server_id }
            response.status = [200, 203][rand(1)]
            response.body = { 'public' => server['addresses']['public'] }
          else
            response.status = 404
            raise(Excon::Errors.status_error(202, 404, response))
          end
          response
        end

      end
    end
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
fog-0.0.31 lib/fog/rackspace/requests/servers/list_public_addresses.rb
fog-0.0.30 lib/fog/rackspace/requests/servers/list_public_addresses.rb