Class: Legion::CLI::Admin::PurgeTopology

Inherits:
Thor
  • Object
show all
Defined in:
lib/legion/cli/admin/purge_topology.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.exit_on_failure?Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/legion/cli/admin/purge_topology.rb', line 13

def self.exit_on_failure?
  true
end

Instance Method Details

#purgeObject



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
53
54
55
# File 'lib/legion/cli/admin/purge_topology.rb', line 27

def purge
  out = formatter
  out.header('Legion AMQP Topology Migration: v2.0 → v3.0')
  out.spacer

  legacy = find_legacy_topology
  if legacy[:exchanges].empty? && legacy[:queues].empty?
    out.success('No legacy topology found. Already on v3.0 or never had v2.0 topology.')
    return
  end

  if options[:json]
    perform_deletion(legacy) if options[:execute]
    out.json({ legacy: legacy, deleted: options[:execute] })
    return
  end

  report_legacy(out, legacy)

  if options[:execute]
    perform_deletion(legacy)
    out.success("Deleted #{legacy[:exchanges].size} exchange(s) and #{legacy[:queues].size} queue(s)")
  else
    out.warn('Dry-run mode — pass --execute to delete legacy topology')
  end
rescue Legion::CLI::Error => e
  formatter.error(e.message)
  exit(1)
end