module Furikake::Resources::ElasticsearchService
Public Class Methods
get_resources()
click to toggle source
# File lib/furikake/resources/elasticsearch_service.rb, line 21 def get_resources ess = Aws::ElasticsearchService::Client.new domains = [] loop do res = ess.list_domain_names domains.push(*res.domain_names.map(&:to_h)) break if res.domain_names.size == domains.size end domain_info = [] domains.each do |domain| resource = [] res = ess.describe_elasticsearch_domains({ domain_names: [domain[:domain_name]], }) res.domain_status_list.each do |r| resource << r[:domain_name] resource << r[:endpoints]['vpc'] resource << r[:elasticsearch_cluster_config][:instance_type] resource << r[:elasticsearch_cluster_config][:instance_count] resource << r[:elasticsearch_version] resource << r[:ebs_options][:volume_type] resource << r[:ebs_options][:volume_size] end domain_info << resource end domain_info end
report()
click to toggle source
# File lib/furikake/resources/elasticsearch_service.rb, line 4 def report resources = get_resources headers = ['Domain Name', 'Endpoint', 'Instance Type', "Instance Count", "Elasticsearch Version", 'EBS Type', 'EBS Size'] if resources.empty? info = 'N/A' else info = MarkdownTables.make_table(headers, resources, is_rows: true, align: 'l') end documents = <<"EOS" ### Elasticsearch Service #{info} EOS documents end
Private Instance Methods
get_resources()
click to toggle source
# File lib/furikake/resources/elasticsearch_service.rb, line 21 def get_resources ess = Aws::ElasticsearchService::Client.new domains = [] loop do res = ess.list_domain_names domains.push(*res.domain_names.map(&:to_h)) break if res.domain_names.size == domains.size end domain_info = [] domains.each do |domain| resource = [] res = ess.describe_elasticsearch_domains({ domain_names: [domain[:domain_name]], }) res.domain_status_list.each do |r| resource << r[:domain_name] resource << r[:endpoints]['vpc'] resource << r[:elasticsearch_cluster_config][:instance_type] resource << r[:elasticsearch_cluster_config][:instance_count] resource << r[:elasticsearch_version] resource << r[:ebs_options][:volume_type] resource << r[:ebs_options][:volume_size] end domain_info << resource end domain_info end
report()
click to toggle source
# File lib/furikake/resources/elasticsearch_service.rb, line 4 def report resources = get_resources headers = ['Domain Name', 'Endpoint', 'Instance Type', "Instance Count", "Elasticsearch Version", 'EBS Type', 'EBS Size'] if resources.empty? info = 'N/A' else info = MarkdownTables.make_table(headers, resources, is_rows: true, align: 'l') end documents = <<"EOS" ### Elasticsearch Service #{info} EOS documents end