Class: Otc::ECS
- Inherits:
-
Hashie::Dash
- Object
- Hashie::Dash
- Otc::ECS
- Defined in:
- lib/otc/ecs.rb
Constant Summary collapse
- ATTRIBUTES =
[ "name", "id", "status", "created", "updated", "flavor", "image", "tenant_id", "key_name", "user_id", "metadata", "hostId", "addresses", "security_groups", "tags", "links", "progress" ]
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.query_all(name: nil) ⇒ Object
6 7 8 9 10 11 12 13 14 |
# 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| keys_to_delete = server.keys - ECS::ATTRIBUTES keys_to_delete.each { |key| server.delete(key) } ECS.new(server) end end |
.query_one(name: nil) ⇒ Object
16 17 18 |
# File 'lib/otc/ecs.rb', line 16 def query_one(name: nil) query_all(name: name).first end |
Instance Method Details
#public_ip ⇒ Object
28 29 30 31 32 33 34 35 36 37 |
# File 'lib/otc/ecs.rb', line 28 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 |