class Muck::Server

Constants

DEFAULT_DATABASE_PROPERTIES
DEFAULT_RENTENTION
DEFAULT_SSH_PROPERTIES

Public Class Methods

new(config, server_hash = {}) click to toggle source
# File lib/muck/server.rb, line 11
def initialize(config, server_hash = {})
  @config = config
  @server_hash = server_hash
end

Public Instance Methods

create_ssh_session() click to toggle source
# File lib/muck/server.rb, line 63
def create_ssh_session
  Net::SSH.start(self.hostname, self.ssh_username, :port => self.ssh_port, :keys => ssh_properties[:key] ? [ssh_properties[:key]] : nil)
end
databases() click to toggle source
# File lib/muck/server.rb, line 52
def databases
  defaults =  DEFAULT_DATABASE_PROPERTIES.merge(@config.defaults[:databases]&.first || {})
  if @server_hash[:databases].is_a?(Array)
    @server_hash[:databases].map do |database|
      Database.new(self, defaults.merge(database))
    end
  else
    []
  end
end
export_path() click to toggle source
# File lib/muck/server.rb, line 24
def export_path
  if path = (@server_hash.dig(:storage, :path) || @config.defaults.dig(:storage, :path))
    path.gsub(":hostname", self.hostname)
  else
    "/opt/muck/data/#{self.hostname}/:database"
  end
end
frequency() click to toggle source
# File lib/muck/server.rb, line 20
def frequency
  @server_hash[:frequency] || @config.defaults[:frequency] || 60
end
hostname() click to toggle source
# File lib/muck/server.rb, line 16
def hostname
  @server_hash[:hostname]
end
masters_to_keep() click to toggle source
# File lib/muck/server.rb, line 32
def masters_to_keep
  @server_hash.dig(:storage, :keep) || @config.defaults.dig(:storage, :keep) || 50
end
retention() click to toggle source
# File lib/muck/server.rb, line 48
def retention
  DEFAULT_RENTENTION.merge(@config.defaults[:retention] || {}).merge(@server_hash[:retention] || {})
end
ssh_port() click to toggle source
# File lib/muck/server.rb, line 36
def ssh_port
  ssh_properties[:port]
end
ssh_properties() click to toggle source
# File lib/muck/server.rb, line 44
def ssh_properties
  DEFAULT_SSH_PROPERTIES.merge(@config.defaults[:ssh] || {}).merge(@server_hash[:ssh] || {})
end
ssh_username() click to toggle source
# File lib/muck/server.rb, line 40
def ssh_username
  ssh_properties[:username]
end