Module: Furikake::Resources::DirectoryService

Defined in:
lib/furikake/resources/directory_service.rb

Class Method Summary collapse

Class Method Details

.get_resourcesObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/furikake/resources/directory_service.rb', line 21

def get_resources
  ds = Aws::DirectoryService::Client.new

  req = {}
  resouces = []
  loop do
    res = ds.describe_directories(req)
    resouces.push(*res.directory_descriptions.map(&:to_h))
    break if res.next_token.nil?
    req[:next_token] = res.next_token
  end

  directoryservice_infos = []
  resouces.each do |r|
    directory = []
    directory << r[:directory_id]
    directory << r[:name]
    directory << r[:short_name]
    directory << r[:type]
    directory << r[:dns_ip_addrs].join(', ')
    directory << r[:size]
    directoryservice_infos << directory
  end
  directoryservice_infos
end

.reportObject



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/furikake/resources/directory_service.rb', line 4

def report
  resources = get_resources
  headers = ['Directory ID', 'DNS Name', 'NetBIOS Name', 'Type', 'DNS Addresses', 'Size']
  if resources.empty?
    info = 'N/A'
  else
    info = MarkdownTables.make_table(headers, resources, is_rows: true, align: 'l')
  end
  documents = <<"EOS"
### Directory Service (Simple AD)

#{info}
EOS
  
  documents
end