Module: AnsibleEYCInventory

Defined in:
lib/ansible_eyc_inventory.rb,
lib/ansible_eyc_inventory/cli.rb,
lib/ansible_eyc_inventory/version.rb

Defined Under Namespace

Classes: CLI, Error

Constant Summary collapse

EYRC_PATH =
Pathname.new('~/.eyrc')
VERSION =
'0.0.1'

Class Method Summary collapse

Class Method Details

.apiObject



37
38
39
# File 'lib/ansible_eyc_inventory.rb', line 37

def api
  @api ||= EY::CloudClient.new(token: api_token)
end


12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/ansible_eyc_inventory.rb', line 12

def print_json(env_name, )
  env = api.env_by_name(env_name, )

  json = env.instances.group_by(&:role).each_with_object({}) {|(role, instances), memo|
    memo[role] = instances.map(&:hostname)
  }.merge(
    _meta: {
      hostvars: env.instances.each_with_object({}) {|instance, memo|
        memo[instance.hostname] = {
          ansible_ssh_user:      env.username,
          eyc_amazon_id:         instance.amazon_id,
          eyc_availability_zone: instance.availability_zone,
          eyc_status:            instance.status
        }
      }
    }
  )

  puts JSON.pretty_generate(json)
rescue Error => e
  warn e.message

  exit 1
end