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