Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions config/agent.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
#all are configurable using environment variables
logLocation: #absolute path of log file. leave blank for default location in the gem directory. environment variable: NETUITIVE_RUBY_LOG_LOCATION
logAge: daily #Number of old log files to keep, or frequency of rotation (daily, weekly or monthly). environment variable: NETUITIVE_RUBY_LOG_AGE
logSize: #Maximum logfile size (only applies when shift_age is a number). environment variable: NETUITIVE_RUBY_LOG_SIZE
debugLevel: info #options (in ascending order of debugness) are: error, info, debug. environment variable: NETUITIVE_RUBY_DEBUG_LEVEL
netuitivedAddr: localhost #environment variable: NETUITIVE_RUBY_NETUITIVED_ADDR
netuitivedPort: 8875 #environment variable: NETUITIVE_RUBY_NETUITIVED_PORT
18 changes: 10 additions & 8 deletions lib/netuitive/netuitive_ruby_logger.rb
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
require 'logger'

class CheaterLogger
attr_accessor :level
def debug(message)
Expand All @@ -12,15 +13,16 @@ def info(message)
end

class NetuitiveLogger
begin
@@log = Logger.new("#{File.expand_path('../../..', __FILE__)}/log/netuitive.log", 'daily', 10)
rescue
puts 'netuitive unable to open log file'
@@log = CheaterLogger.new
end
class << self
def log
@@log
attr_reader :log
def setup
file = ConfigManager.property('logLocation', 'NETUITIVE_RUBY_LOG_LOCATION', "#{File.expand_path('../../..', __FILE__)}/log/netuitive.log")
age = ConfigManager.property('logAge', 'NETUITIVE_RUBY_LOG_AGE', 'daily')
size = ConfigManager.property('logSize', 'NETUITIVE_RUBY_LOG_SIZE', nil)
@log = Logger.new(file, age, size)
rescue
puts 'netuitive unable to open log file'
@log = CheaterLogger.new
end
end
end
75 changes: 51 additions & 24 deletions lib/netuitive/ruby_config_manager.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,60 @@
require 'yaml'
class ConfigManager
class << self
def setup
readConfig
end
attr_reader :netuitivedAddr

def netuitivedAddr
@@netuitivedAddr
end
attr_reader :netuitivedPort

def netuitivedPort
@@netuitivedPort
attr_reader :data

def property(name, var, default = nil)
prop = ENV[var]
prop = data[name] if prop.nil? || (prop == '')
return prop unless prop.nil? || (prop == '')
default
end

def readConfig
gem_root = File.expand_path('../../..', __FILE__)
data = YAML.load_file "#{gem_root}/config/agent.yml"
@@netuitivedAddr = ENV['NETUITIVE_RUBY_NETUITIVED_ADDR']
if @@netuitivedAddr.nil? || (@@netuitivedAddr == '')
@@netuitivedAddr = data['netuitivedAddr']
def boolean_property(name, var)
prop = ENV[var].nil? ? nil : ENV[var].dup
if prop.nil? || (prop == '')
prop = data[name]
else
prop.strip!
prop = prop.casecmp('true').zero?
end
@@netuitivedPort = ENV['NETUITIVE_RUBY_NETUITIVED_PORT']
if @@netuitivedPort.nil? || (@@netuitivedPort == '')
@@netuitivedPort = data['netuitivedPort']
prop
end

def float_property(name, var)
prop = ENV[var].nil? ? nil : ENV[var]
if prop.nil? || (prop == '')
data[name].to_f
else
prop.to_f
end
debugLevelString = ENV['NETUITIVE_RUBY_DEBUG_LEVEL']
if debugLevelString.nil? || (debugLevelString == '')
debugLevelString = data['debugLevel']
end

def string_list_property(name, var)
list = []
prop = ENV[var].nil? ? nil : ENV[var].dup
if prop.nil? || (prop == '')
list = data[name] if !data[name].nil? && data[name].is_a?(Array)
else
list = prop.split(',')
end
NetuitiveLogger.log.info "port: #{@@netuitivedPort}"
NetuitiveLogger.log.info "addr: #{@@netuitivedAddr}"
list.each(&:strip!) unless list.empty?
list
end

def load_config
gem_root = File.expand_path('../../..', __FILE__)
@data = YAML.load_file "#{gem_root}/config/agent.yml"
end

def read_config
@netuitivedAddr = property('netuitivedAddr', 'NETUITIVE_RUBY_NETUITIVED_ADDR')
@netuitivedPort = property('netuitivedPort', 'NETUITIVE_RUBY_NETUITIVED_PORT')
debugLevelString = property('debugLevel', 'NETUITIVE_RUBY_DEBUG_LEVEL')
NetuitiveLogger.log.level = if debugLevelString == 'error'
Logger::ERROR
elsif debugLevelString == 'info'
Expand All @@ -40,9 +65,11 @@ def readConfig
else
Logger::ERROR
end
NetuitiveLogger.log.info "port: #{@netuitivedPort}"
NetuitiveLogger.log.info "addr: #{@netuitivedAddr}"
NetuitiveLogger.log.debug "read config file. Results:
netuitivedAddr: #{@@netuitivedAddr}
netuitivedPort: #{@@netuitivedPort}
netuitivedAddr: #{@netuitivedAddr}
netuitivedPort: #{@netuitivedPort}
debugLevel: #{debugLevelString}"
end
end
Expand Down
4 changes: 3 additions & 1 deletion lib/netuitive_ruby_api.rb
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,9 @@ def server_interaction
end
end

ConfigManager.setup
ConfigManager.load_config
NetuitiveLogger.setup
ConfigManager.read_config
SERVER_URI = "druby://#{ConfigManager.netuitivedAddr}:#{ConfigManager.netuitivedPort}".freeze
DRb.start_service
NetuitiveRubyAPI.setup(DRbObject.new_with_uri(SERVER_URI))