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