class Ey::Core::Cli::Helpers::ServerSieve
Constants
- ROLES
Attributes
options[R]
servers_api[R]
Public Class Methods
filter(servers_api, options = {})
click to toggle source
# File lib/ey-core/cli/helpers/server_sieve.rb, line 15 def self.filter(servers_api, options = {}) new(servers_api, options).filtered end
new(servers_api, options = {})
click to toggle source
# File lib/ey-core/cli/helpers/server_sieve.rb, line 19 def initialize(servers_api, options = {}) @servers_api = servers_api @options = options end
Public Instance Methods
filtered()
click to toggle source
# File lib/ey-core/cli/helpers/server_sieve.rb, line 24 def filtered return all_servers if requested?(:all) requested_roles.map {|role| role == :utilities ? utils_named(option(:utilities)) : send(role) }.flatten.uniq end
Private Instance Methods
all_servers()
click to toggle source
# File lib/ey-core/cli/helpers/server_sieve.rb, line 46 def all_servers servers_api.all.to_a.uniq end
app_servers()
click to toggle source
# File lib/ey-core/cli/helpers/server_sieve.rb, line 50 def app_servers ['app_master', 'app', 'solo']. map {|role| servers_api.all(role: role).to_a}. flatten end
db_master()
click to toggle source
# File lib/ey-core/cli/helpers/server_sieve.rb, line 60 def db_master ['db_master', 'solo']. map {|role| servers_api.all(role: role).to_a}. flatten end
db_servers()
click to toggle source
# File lib/ey-core/cli/helpers/server_sieve.rb, line 56 def db_servers db_master + servers_api.all(role: 'db_slave').to_a end
option(name)
click to toggle source
# File lib/ey-core/cli/helpers/server_sieve.rb, line 38 def option(name) options[name] end
requested?(name)
click to toggle source
# File lib/ey-core/cli/helpers/server_sieve.rb, line 42 def requested?(name) option(name) end
requested_roles()
click to toggle source
# File lib/ey-core/cli/helpers/server_sieve.rb, line 33 def requested_roles #self.class:: ROLES.select {|role| requested?(role)} end
utils_named(name)
click to toggle source
# File lib/ey-core/cli/helpers/server_sieve.rb, line 66 def utils_named(name) filter = {role: 'util'} filter[:name] = name unless name.downcase == 'all' servers_api.all(filter).to_a end