Class: Otc::ECS

Inherits:
Hashie::Mash
  • Object
show all
Defined in:
lib/otc/ecs.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.query_all(name: nil) ⇒ Object



6
7
8
9
10
11
# File 'lib/otc/ecs.rb', line 6

def query_all(name: nil)
  response = Request.get service: "ecs", path: "/v2/#{Configuration.project!}/servers/detail?name=#{name}"
  JSON.parse(response.body)["servers"].map do |server|
    ECS.new(server)
  end
end

.query_one(name: nil) ⇒ Object



13
14
15
# File 'lib/otc/ecs.rb', line 13

def query_one(name: nil)
  query_all(name: name).first
end

Instance Method Details

#public_ipObject



18
19
20
21
22
23
24
25
26
27
# File 'lib/otc/ecs.rb', line 18

def public_ip
  @_public_ip ||= begin
    private_addresses = self.addresses.values.flatten.map { |val| val["addr"] }

    eip = EIP.query_all.select { |ip| private_addresses.include?(ip.private_ip_address) }.first
    if eip
      eip.public_ip_address
    end
  end
end