Class: Splash::Config::Configuration

Inherits:
Hash
  • Object
show all
Includes:
Splash::Constants
Defined in:
lib/splash/config.rb

Overview

Class to manage configuration in Splash from Splash::Constants override by Yaml CONFIG

Constant Summary

Constants included from Splash::Constants

Splash::Constants::AUTHOR, Splash::Constants::BACKENDS_STRUCT, Splash::Constants::CONFIG_FILE, Splash::Constants::COPYRIGHT, Splash::Constants::DAEMON_LOGMON_SCHEDULING, Splash::Constants::DAEMON_METRICS_SCHEDULING, Splash::Constants::DAEMON_PID_FILE, Splash::Constants::DAEMON_PROCESS_NAME, Splash::Constants::DAEMON_PROCMON_SCHEDULING, Splash::Constants::DAEMON_STDERR_TRACE, Splash::Constants::DAEMON_STDOUT_TRACE, Splash::Constants::DEFAULT_RETENTION, Splash::Constants::EMAIL, Splash::Constants::EXECUTION_TEMPLATE, Splash::Constants::EXECUTION_TEMPLATE_TOKENS_LIST, Splash::Constants::LICENSE, Splash::Constants::LOGGERS_STRUCT, Splash::Constants::PID_PATH, Splash::Constants::PROMETHEUS_ALERTMANAGER_URL, Splash::Constants::PROMETHEUS_PUSHGATEWAY_URL, Splash::Constants::PROMETHEUS_URL, Splash::Constants::TRACE_PATH, Splash::Constants::TRANSPORTS_STRUCT, Splash::Constants::VERSION, Splash::Constants::WEBADMIN_IP, Splash::Constants::WEBADMIN_PID_FILE, Splash::Constants::WEBADMIN_PID_PATH, Splash::Constants::WEBADMIN_PORT, Splash::Constants::WEBADMIN_PROCESS_NAME, Splash::Constants::WEBADMIN_PROXY, Splash::Constants::WEBADMIN_STDERR_TRACE, Splash::Constants::WEBADMIN_STDOUT_TRACE

Instance Attribute Summary collapse

accessors on configurations Items collapse

Instance Method Summary collapse

Constructor Details

#initialize(config_file = CONFIG_FILE) ⇒ Configuration

constructor : read config file and map against Constants



52
53
54
55
56
# File 'lib/splash/config.rb', line 52

def initialize(config_file=CONFIG_FILE)
  @config_file = config_file
  hash_config_to_default

end

Instance Attribute Details

#config_from_fileObject

Returns the value of attribute config_from_file.



49
50
51
# File 'lib/splash/config.rb', line 49

def config_from_file
  @config_from_file
end

Instance Method Details

#add_record(options = {}) ⇒ Object



106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
# File 'lib/splash/config.rb', line 106

def add_record(options = {})
  @config_from_file = readconf @config_file
  key = options[:key]
  res = ConfigLinter::new.verify(options)
  if res[:status] == :success then
    if @config_from_file[options[:type]].select{|item| item[options[:key]] == options[:record][options[:key]]}.count > 0 then
      return {:status => :already_exist}
    else
      res[:useless].each {|item| options[:record].delete item} if options[:clean]
      @config_from_file[options[:type]].push options[:record]
      writeconf
      hash_config_to_default
      return {:status => :success}
    end
  else
    return res
  end
end

#authorString

getter for author Config sample

Returns:

  • (String)


298
299
300
# File 'lib/splash/config.rb', line 298

def author
  return self[:author]
end

#backendsHash

getter for backends Hash Config sample

Returns:

  • (Hash)


155
156
157
# File 'lib/splash/config.rb', line 155

def backends
  return self[:backends]
end

#commandsHash

getter for commands Hash Config sample

Returns:

  • (Hash)


280
281
282
# File 'lib/splash/config.rb', line 280

def commands
  return self[:commands]
end

getter for copyright Config sample

Returns:

  • (String)


304
305
306
# File 'lib/splash/config.rb', line 304

def copyright
  return self[:copyright]
end

#daemon_full_pid_pathString

getter for daemon_full_pid_path Config sample

Returns:

  • (String)


198
199
200
# File 'lib/splash/config.rb', line 198

def daemon_full_pid_path
  return "#{self[:pid_path]}/#{self[:daemon_pid_file]}"
end

#daemon_full_stderr_trace_pathString

getter for daemon_full_stderr_trace_path Config sample

Returns:

  • (String)


210
211
212
# File 'lib/splash/config.rb', line 210

def daemon_full_stderr_trace_path
  return "#{self[:trace_path]}/#{self[:daemon_stderr_trace]}"
end

#daemon_full_stdout_trace_pathString

getter for daemon_full_stdout_trace_path Config sample

Returns:

  • (String)


204
205
206
# File 'lib/splash/config.rb', line 204

def daemon_full_stdout_trace_path
  return "#{self[:trace_path]}/#{self[:daemon_stdout_trace]}"
end

#daemon_logmon_schedulingHash

getter for daemon_logmon_scheduling Hash Config sample

Returns:

  • (Hash)


173
174
175
# File 'lib/splash/config.rb', line 173

def daemon_logmon_scheduling
  return self[:daemon_logmon_scheduling]
end

#daemon_metrics_schedulingHash

getter for daemon_metrics_scheduling Hash Config sample

Returns:

  • (Hash)


185
186
187
# File 'lib/splash/config.rb', line 185

def daemon_metrics_scheduling
  return self[:daemon_metrics_scheduling]
end

#daemon_process_nameString

getter for daemon_process_name Config sample

Returns:

  • (String)


191
192
193
# File 'lib/splash/config.rb', line 191

def daemon_process_name
  return self[:daemon_process_name]
end

#daemon_procmon_schedulingHash

getter for daemon_procmon_scheduling Hash Config sample

Returns:

  • (Hash)


179
180
181
# File 'lib/splash/config.rb', line 179

def daemon_procmon_scheduling
  return self[:daemon_procmon_scheduling]
end

#delete_record(options = {}) ⇒ Object



126
127
128
129
130
131
132
133
134
135
136
# File 'lib/splash/config.rb', line 126

def delete_record(options = {})
  @config_from_file = readconf @config_file
  unless @config_from_file[options[:type]].select{|item| item[options[:key]] == options[options[:key]]}.count > 0 then
    return {:status => :not_found}
  else
    @config_from_file[options[:type]].delete_if {|value| options[options[:key]] == value[options[:key]] }
    writeconf
    hash_config_to_default
    return {:status => :success}
  end
end

#execution_template_pathString

getter for execution_template_path Hash Config sample

Returns:

  • (String)


216
217
218
# File 'lib/splash/config.rb', line 216

def execution_template_path
  return self[:execution_template_path]
end

#execution_template_tokensArray

getter for execution_template_tokens Hash Config sample

Returns:

  • (Array)


222
223
224
# File 'lib/splash/config.rb', line 222

def execution_template_tokens
  return self[:execution_template_tokens]
end

#fullHash

getter for full Config Hash

Returns:

  • (Hash)


143
144
145
# File 'lib/splash/config.rb', line 143

def full
  return self
end

#hash_config_to_defaultObject



59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/splash/config.rb', line 59

def hash_config_to_default
  @config_from_file = readconf @config_file
  self[:version] = VERSION
  self[:author] = "#{AUTHOR} <#{EMAIL}>"
  self[:copyright] = "#{COPYRIGHT} #{LICENSE}"

  self[:prometheus_url] = (@config_from_file[:prometheus][:url])? @config_from_file[:prometheus][:url] : PROMETHEUS_URL
  self[:prometheus_pushgateway_url] = (@config_from_file[:prometheus][:pushgateway])? @config_from_file[:prometheus][:pushgateway] : PROMETHEUS_PUSHGATEWAY_URL
  self[:prometheus_alertmanager_url] = (@config_from_file[:prometheus][:alertmanager])? @config_from_file[:prometheus][:alertmanager] : PROMETHEUS_ALERTMANAGER_URL

  self[:daemon_process_name] = (@config_from_file[:daemon][:process_name])? @config_from_file[:daemon][:process_name] : DAEMON_PROCESS_NAME
  self[:daemon_logmon_scheduling] = (@config_from_file[:daemon][:logmon_scheduling])? @config_from_file[:daemon][:logmon_scheduling] : DAEMON_LOGMON_SCHEDULING
  self[:daemon_metrics_scheduling] = (@config_from_file[:daemon][:metrics_scheduling])? @config_from_file[:daemon][:metrics_scheduling] : DAEMON_METRICS_SCHEDULING
  self[:daemon_procmon_scheduling] = (@config_from_file[:daemon][:procmon_scheduling])? @config_from_file[:daemon][:procmon_scheduling] : DAEMON_PROCMON_SCHEDULING
  self[:daemon_pid_file] = (@config_from_file[:daemon][:files][:pid_file])? @config_from_file[:daemon][:files][:pid_file] : DAEMON_PID_FILE
  self[:daemon_stdout_trace] = (@config_from_file[:daemon][:files][:stdout_trace])? @config_from_file[:daemon][:files][:stdout_trace] : DAEMON_STDOUT_TRACE
  self[:daemon_stderr_trace] = (@config_from_file[:daemon][:files][:stderr_trace])? @config_from_file[:daemon][:files][:stderr_trace] : DAEMON_STDERR_TRACE


  self[:webadmin_port] = (@config_from_file[:webadmin][:port])? @config_from_file[:webadmin][:port] : WEBADMIN_PORT
  self[:webadmin_ip] = (@config_from_file[:webadmin][:ip])? @config_from_file[:webadmin][:ip] : WEBADMIN_IP
  self[:webadmin_proxy] = (@config_from_file[:webadmin][:proxy])? @config_from_file[:webadmin][:proxy] : WEBADMIN_PROXY
  self[:webadmin_process_name] = (@config_from_file[:webadmin][:process_name])? @config_from_file[:webadmin][:process_name] : WEBADMIN_PROCESS_NAME
  self[:webadmin_pid_file] = (@config_from_file[:webadmin][:files][:pid_file])? @config_from_file[:webadmin][:files][:pid_file] : WEBADMIN_PID_FILE
  self[:webadmin_stdout_trace] = (@config_from_file[:webadmin][:files][:stdout_trace])? @config_from_file[:webadmin][:files][:stdout_trace] : WEBADMIN_STDOUT_TRACE
  self[:webadmin_stderr_trace] = (@config_from_file[:webadmin][:files][:stderr_trace])? @config_from_file[:webadmin][:files][:stderr_trace] : WEBADMIN_STDERR_TRACE


  self[:pid_path] = (@config_from_file[:paths][:pid_path])? @config_from_file[:paths][:pid_path] : PID_PATH
  self[:trace_path] = (@config_from_file[:paths][:trace_path])? @config_from_file[:paths][:trace_path] : TRACE_PATH


  self[:execution_template_tokens] = EXECUTION_TEMPLATE_TOKENS_LIST
  self[:execution_template_path] = (@config_from_file[:templates][:execution][:path])? @config_from_file[:templates][:execution][:path] : EXECUTION_TEMPLATE

  self[:transports] = {} ; self[:transports].merge! TRANSPORTS_STRUCT ; self[:transports].merge! @config_from_file[:transports] if @config_from_file[:transports]
  self[:backends] = {} ; self[:backends].merge! BACKENDS_STRUCT ; self[:backends].merge! @config_from_file[:backends] if @config_from_file[:backends]
  self[:loggers] = {} ; self[:loggers].merge! LOGGERS_STRUCT ; self[:loggers].merge! @config_from_file[:loggers] if @config_from_file[:loggers]

  self[:processes] = (@config_from_file[:processes])? @config_from_file[:processes] : {}
  self[:logs] = (@config_from_file[:logs])? @config_from_file[:logs] : {}
  self[:commands] = (@config_from_file[:commands])? @config_from_file[:commands] : {}
  self[:sequences] = (@config_from_file[:sequences])? @config_from_file[:sequences] : {}
  self[:transfers] = (@config_from_file[:transfers])? @config_from_file[:transfers] : {}
end

#loggersHash

getter for loggers Hash Config sample

Returns:

  • (Hash)


149
150
151
# File 'lib/splash/config.rb', line 149

def loggers
  return self[:loggers]
end

#logsHash

getter for logs Hash Config sample

Returns:

  • (Hash)


274
275
276
# File 'lib/splash/config.rb', line 274

def logs
  return self[:logs]
end

#processesHash

getter for processes Hash Config sample

Returns:

  • (Hash)


286
287
288
# File 'lib/splash/config.rb', line 286

def processes
  return self[:processes]
end

#prometheus_alertmanager_urlString

getter for prometheus_alertmanager_url Config sample

Returns:

  • (String)


326
327
328
# File 'lib/splash/config.rb', line 326

def prometheus_alertmanager_url
  return self[:prometheus_alertmanager_url]
end

#prometheus_pushgateway_urlString

getter for prometheus_pushgateway_url Config sample

Returns:

  • (String)


320
321
322
# File 'lib/splash/config.rb', line 320

def prometheus_pushgateway_url
  return self[:prometheus_pushgateway_url]
end

#prometheus_urlString

getter for prometheus_url Config sample

Returns:

  • (String)


333
334
335
# File 'lib/splash/config.rb', line 333

def prometheus_url
  return self[:prometheus_url]
end

#sequencesHash

getter for sequences Hash Config sample

Returns:

  • (Hash)


292
293
294
# File 'lib/splash/config.rb', line 292

def sequences
  return self[:sequences]
end

#transfersHash

getter for transfers Hash Config sample

Returns:

  • (Hash)


167
168
169
# File 'lib/splash/config.rb', line 167

def transfers
  return self[:transfers]
end

#transportsHash

getter for transports Hash Config sample

Returns:

  • (Hash)


161
162
163
# File 'lib/splash/config.rb', line 161

def transports
  return self[:transports]
end

#versionString

getter for version Config sample

Returns:

  • (String)


310
311
312
# File 'lib/splash/config.rb', line 310

def version
  return self[:version]
end

#webadmin_full_pid_pathString

getter for webadmin_full_pid_path Config sample

Returns:

  • (String)


253
254
255
# File 'lib/splash/config.rb', line 253

def webadmin_full_pid_path
  return "#{self[:pid_path]}/#{self[:webadmin_pid_file]}"
end

#webadmin_full_stderr_trace_pathString

getter for webadmin_full_stderr_trace_path Config sample

Returns:

  • (String)


265
266
267
# File 'lib/splash/config.rb', line 265

def webadmin_full_stderr_trace_path
  return "#{self[:trace_path]}/#{self[:webadmin_stderr_trace]}"
end

#webadmin_full_stdout_trace_pathString

getter for webadmin_full_stdout_trace_path Config sample

Returns:

  • (String)


259
260
261
# File 'lib/splash/config.rb', line 259

def webadmin_full_stdout_trace_path
  return "#{self[:trace_path]}/#{self[:webadmin_stdout_trace]}"
end

#webadmin_ipString

getter for webadmin_ip Hash Config sample

Returns:

  • (String)


235
236
237
# File 'lib/splash/config.rb', line 235

def webadmin_ip
  return self[:webadmin_ip]
end

#webadmin_portFixnum

getter for webadmin_port Hash Config sample

Returns:

  • (Fixnum)


229
230
231
# File 'lib/splash/config.rb', line 229

def webadmin_port
  return self[:webadmin_port]
end

#webadmin_process_nameString

getter for webadmin_process_name Config sample

Returns:

  • (String)


247
248
249
# File 'lib/splash/config.rb', line 247

def webadmin_process_name
  return self[:webadmin_process_name]
end

#webadmin_proxyTrueClass|FalseClass

getter for webadmin_proxy Hash Config sample

Returns:

  • (TrueClass|FalseClass)


241
242
243
# File 'lib/splash/config.rb', line 241

def webadmin_proxy
  return self[:webadmin_proxy]
end