Class: Fog::AWS::Compute::Addresses

Inherits:
Collection
  • Object
show all
Defined in:
lib/fog/aws/models/compute/addresses.rb

Instance Method Summary collapse

Constructor Details

#initialize(attributes) ⇒ Addresses

Used to create an IP address

Returns

>> AWS.addresses.create

<Fog::AWS::Compute::Address
  public_ip="4.88.524.95",
  server_id=nil
>

The IP address can be retrieved by running AWS.addresses.get(“test”). See get method below.



25
26
27
28
# File 'lib/fog/aws/models/compute/addresses.rb', line 25

def initialize(attributes)
  self.filters ||= {}
  super
end

Instance Method Details

#all(filters_arg = filters) ⇒ Object

AWS.addresses.all

Returns

Returns an array of all IP addresses

>> AWS.addresses.all

<Fog::AWS::Compute::Addresses
  filters={},
  server=nil
  [
    <Fog::AWS::Compute::Address
      public_ip="76.7.46.54",
      server_id=nil
    >,
    .......
    <Fog::AWS::Compute::Address
      public_ip="4.88.524.95",
      server_id=nil
    >
  ]
>

>>



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/fog/aws/models/compute/addresses.rb', line 54

def all(filters_arg = filters)
  unless filters_arg.is_a?(Hash)
    Fog::Logger.deprecation("all with #{filters_arg.class} param is deprecated, use all('public-ip' => []) instead [light_black](#{caller.first})[/]")
    filters_arg = {'public-ip' => [*filters_arg]}
  end
  self.filters = filters_arg
  data = service.describe_addresses(filters).body
  load(
    data['addressesSet'].map do |address|
      address.reject {|key, value| value.nil? || value.empty? }
    end
  )
  if server
    self.replace(self.select {|address| address.server_id == server.id})
  end
  self
end

#get(public_ip) ⇒ Object

Used to retrieve an IP address

public_ip is required to get the associated IP information.

You can run the following command to get the details: AWS.addresses.get(“76.7.46.54”)



79
80
81
82
83
# File 'lib/fog/aws/models/compute/addresses.rb', line 79

def get(public_ip)
  if public_ip
    self.class.new(:service => service).all('public-ip' => public_ip).first
  end
end

#new(attributes = {}) ⇒ Object



85
86
87
88
89
90
91
# File 'lib/fog/aws/models/compute/addresses.rb', line 85

def new(attributes = {})
  if server
    super({ :server => server }.merge!(attributes))
  else
    super(attributes)
  end
end