Class: Seiton::Sqs

Inherits:
Client show all
Includes:
Helper, SqsCheck
Defined in:
lib/seiton/resouces/sqs.rb

Constant Summary

Constants inherited from Client

Client::CLIENTS

Instance Method Summary collapse

Methods included from SqsCheck

#generator_sqs_queue_check

Methods included from Helper

#datetime_parse, #log, #name_tag, #process_ok?, #volume_ids

Methods inherited from Client

#initialize

Constructor Details

This class inherits a constructor from Seiton::Client

Instance Method Details

#sqs_queue(check = false, ignores) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
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
46
47
48
49
50
51
52
# File 'lib/seiton/resouces/sqs.rb', line 7

def sqs_queue(check = false, ignores)
  if check
    log.info('List up the resources to be removed.')
  else
    log.info('Start deleting.')
  end

  delete_resources = []
  loop do
    res = sqs_client.list_queues({})
    res.queue_urls.each do |r|
      delete_resources << r
    end
    break if res.next_token.nil?
  end

  unless ignores.nil?
    ignore_resouces = []
    ignores.each do |ignore|
      ignore_resouces << delete_resources.select { |delete_resource| delete_resource.include?(ignore) }.last
      delete_resources.delete_if { |delete_resource| delete_resource.include?(ignore) }
    end
  end

  if delete_resources.empty?
    log.info('The resource to be deleted does not exist.')
    exit 0
  end

  puts display_sqs_queue_resources(delete_resources)
  generator_sqs_queue_check(delete_resources, ignore_resouces)
  exit 0 if check

  if process_ok?
    begin
      delete_resources.each do |delete_resource|
        delete_sqs_queue_action(delete_resource)
      end
    rescue StandardError => e
      log.error(e)
      exit 1
    end
  else
    exit 0
  end
end