class Fawsade::Client
Public Class Methods
new(region:, access_key_id:, secret_access_key:)
click to toggle source
# File lib/fawsade/client.rb, line 3 def initialize(region:, access_key_id:, secret_access_key:) @client = Aws::EC2::Client.new( region: region, access_key_id: access_key_id, secret_access_key: secret_access_key) end
Public Instance Methods
instance_by_id(id)
click to toggle source
# File lib/fawsade/client.rb, line 10 def instance_by_id(id) instances.find { |instance| instance.id == id } end
instances_by_name(regex)
click to toggle source
# File lib/fawsade/client.rb, line 14 def instances_by_name(regex) instances.select { |instance| instance.name =~ /^#{regex}$/ } end
method_missing(method_name, *parameters, &block)
click to toggle source
# File lib/fawsade/client.rb, line 18 def method_missing(method_name, *parameters, &block) @client.send(method_name, *parameters, &block) end
Private Instance Methods
build(instance)
click to toggle source
# File lib/fawsade/client.rb, line 38 def build(instance) Instance.new(instance.instance_id, instance.private_dns_name, name_of(instance)) end
instances()
click to toggle source
# File lib/fawsade/client.rb, line 24 def instances @client.describe_instances.reservations.each_with_object([]) do |reservation, array| reservation.instances.each do |instance| next unless running?(instance) && instance.tags.any? array << build(instance) end end end
name_of(instance)
click to toggle source
# File lib/fawsade/client.rb, line 42 def name_of(instance) instance.tags.find { |tag| tag.key == "Name" }.value end
running?(instance)
click to toggle source
# File lib/fawsade/client.rb, line 34 def running?(instance) instance.state.name == "running" end