Module: Forj::Destroy
- Defined in:
- lib/destroy.rb
Overview
This module provides the behavior to destroy your forge’s server(s)
Class Method Summary collapse
- .choose_server(server_list) ⇒ Object
- .destroy(name, options) ⇒ Object
- .destroy_server(o_cloud, o_forge, options) ⇒ Object
- .get_server_list(forge) ⇒ Object
Class Method Details
.choose_server(server_list) ⇒ Object
105 106 107 108 109 110 111 112 |
# File 'lib/destroy.rb', line 105 def self.choose_server(server_list) say('Please, choose what you want to destroy') value = choose do |q| q.choices(*server_list) end value end |
.destroy(name, options) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/destroy.rb', line 26 def self.destroy(name, ) account = Lorj::Account.new([:config]) # Loading account at account layer unless account.ac_load [:account_name] PrcLib.fatal(1, "Invalid account '%s'. Use `forj show account` "\ 'to get the list of valid accounts.', [:account_name]) end o_cloud = Forj::CloudConnection.connect(account) o_forge = o_cloud.get(:forge, name) if o_forge[:servers].count > 0 destroy_server(o_cloud, o_forge, ) else PrcLib.high_level_msg("No server(s) found on forge instance '%s'.\n", name) end end |
.destroy_server(o_cloud, o_forge, options) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/destroy.rb', line 48 def self.destroy_server(o_cloud, o_forge, ) if [:force] # Destroy all servers found o_cloud.delete(:forge) else server_list, servers_id = get_server_list(o_forge) server_name = choose_server(server_list) case server_name when 'abort' PrcLib.high_level_msg("No server destroyed on your demand.\n", name) return when 'all' # Destroy all servers found o_cloud.delete(:forge) return else # Destroy selected server found = server_name.match(/ - (.*)$/) if found o_cloud.delete(:forge, :forge_server => found[1]) else o_cloud.delete(:forge, :forge_server => servers_id[server_name][0]) end end end end |
.get_server_list(forge) ⇒ Object
77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 |
# File 'lib/destroy.rb', line 77 def self.get_server_list(forge) # Ask the user to get server(s) to destroy server_list = [] servers_id = {} forge[:servers].each do |_type, server| server_name = server[:name] if servers_id.key?(server_name) servers_id[server_name] << server[:id] else servers_id[server_name] = [server[:id]] end end servers_id.each do |name, servers| if servers.length > 1 servers.each { |id| server_list << name + ' - ' + id } else server_list << name end end server_list << 'all' server_list << 'abort' [server_list, servers_id] end |