Class: FluentdServer::CLI
- Inherits:
-
Thor
- Object
- Thor
- FluentdServer::CLI
- Defined in:
- lib/fluentd_server/cli.rb
Constant Summary collapse
- BASE_DIR =
File.join(Dir.pwd, "fluentd-server")
- DATA_DIR =
File.join(BASE_DIR, "data")
- LOG_DIR =
File.join(BASE_DIR, "log")
- JOB_DIR =
File.join(BASE_DIR, "jobs")
- LOG_FILE =
File.join(LOG_DIR, "application.log")
- ENV_FILE =
File.join(BASE_DIR, ".env")
- PROCFILE =
File.join(BASE_DIR, "Procfile")
- CONFIGRU_FILE =
File.join(BASE_DIR, "config.ru")
- CONFIG_DIR =
File.join(BASE_DIR, "config")
- DEFAULT_DOTENV =
<<-EOS PORT=5126 HOST=0.0.0.0 DATABASE_URL=sqlite3:#{DATA_DIR}/fluentd_server.db JOB_DIR=#{JOB_DIR} LOG_PATH=#{LOG_FILE} LOG_LEVEL=warn LOG_SHIFT_AGE=0 LOG_SHIFT_SIZE=1048576 FILE_STORAGE=false DATA_DIR=#{DATA_DIR} SYNC_INTERVAL=60 EOS
- DEFAULT_PROCFILE =
<<-EOS web: unicorn -E production -p $PORT -o $HOST -c config/unicorn.conf job: fluentd-server job-worker sync: fluentd-server sync-worker serf: $(gem path serf-td-agent)/bin/serf agent EOS
Instance Method Summary collapse
- #init ⇒ Object
-
#initialize(args = [], opts = [], config = {}) ⇒ CLI
constructor
A new instance of CLI.
- #job_clean ⇒ Object
- #job_worker ⇒ Object
- #migrate ⇒ Object
- #new ⇒ Object
- #start ⇒ Object
- #sync ⇒ Object
- #sync_worker ⇒ Object
- #td_agent_condrestart ⇒ Object
- #td_agent_configtest ⇒ Object
- #td_agent_reload ⇒ Object
- #td_agent_restart ⇒ Object
- #td_agent_start ⇒ Object
- #td_agent_status ⇒ Object
- #td_agent_stop ⇒ Object
Constructor Details
#initialize(args = [], opts = [], config = {}) ⇒ CLI
Returns a new instance of CLI.
40 41 42 |
# File 'lib/fluentd_server/cli.rb', line 40 def initialize(args = [], opts = [], config = {}) super(args, opts, config) end |
Instance Method Details
#init ⇒ Object
56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
# File 'lib/fluentd_server/cli.rb', line 56 def init Dotenv.load require 'fluentd_server/environment' require 'rake' require 'sinatra/activerecord/rake' ActiveRecord::Tasks::DatabaseTasks.db_dir = File.("../../../db", __FILE__) ActiveRecord::Tasks::DatabaseTasks.migrations_paths = [File.("../../../db/migrate", __FILE__)] # ToDo: Fix that db:migrate raises an error in the case of sqlite3 like # SQLite3::SQLException: database schema has changed: INSERT INTO "schema_migrations" ("version") VALUES (?) # Rake::Task['db:migrate'].invoke # Use db:schema:load after generating db/schema.rb by executing db:migrate several times for now Rake::Task['db:schema:load'].invoke puts 'fluentd-server init finished.' end |
#job_clean ⇒ Object
105 106 107 108 109 110 |
# File 'lib/fluentd_server/cli.rb', line 105 def job_clean Dotenv.load require 'delayed_job' require 'fluentd_server/model' Delayed::Job.delete_all end |
#job_worker ⇒ Object
91 92 93 94 95 96 97 98 99 100 101 102 |
# File 'lib/fluentd_server/cli.rb', line 91 def job_worker Dotenv.load require 'delayed_job' require 'fluentd_server/model' = { :min_priority => ENV['MIN_PRIORITY'], :max_priority => ENV['MAX_PRIORITY'], :queues => (ENV['QUEUES'] || ENV['QUEUE'] || '').split(','), :quiet => false } Delayed::Worker.new().start end |
#migrate ⇒ Object
72 73 74 75 76 77 78 79 80 |
# File 'lib/fluentd_server/cli.rb', line 72 def migrate Dotenv.load require 'fluentd_server/environment' require 'rake' require 'sinatra/activerecord/rake' ActiveRecord::Tasks::DatabaseTasks.db_dir = File.("../../../db", __FILE__) ActiveRecord::Tasks::DatabaseTasks.migrations_paths = [File.("../../../db/migrate", __FILE__)] Rake::Task['db:migrate'].invoke end |
#new ⇒ Object
45 46 47 48 49 50 51 52 53 |
# File 'lib/fluentd_server/cli.rb', line 45 def new FileUtils.mkdir_p(LOG_DIR) FileUtils.mkdir_p(JOB_DIR) File.write ENV_FILE, DEFAULT_DOTENV File.write PROCFILE, DEFAULT_PROCFILE FileUtils.cp(File.("../../../config.ru", __FILE__), CONFIGRU_FILE) FileUtils.cp_r(File.("../../../config", __FILE__), CONFIG_DIR) puts 'fluentd-server new finished.' end |
#start ⇒ Object
83 84 85 86 87 |
# File 'lib/fluentd_server/cli.rb', line 83 def start self.migrate # do migration before start not to forget on updation require "foreman/cli" Foreman::CLI.new.invoke(:start, [], {}) end |
#sync ⇒ Object
120 121 122 123 124 |
# File 'lib/fluentd_server/cli.rb', line 120 def sync Dotenv.load require 'fluentd_server/sync_runner' FluentdServer::SyncRunner.run end |
#sync_worker ⇒ Object
113 114 115 116 117 |
# File 'lib/fluentd_server/cli.rb', line 113 def sync_worker Dotenv.load require 'fluentd_server/sync_worker' FluentdServer::SyncWorker.start end |
#td_agent_condrestart ⇒ Object
156 157 158 159 160 |
# File 'lib/fluentd_server/cli.rb', line 156 def td_agent_condrestart Dotenv.load require 'fluentd_server/model' system("#{::Task.serf_path} event td-agent-condrestart") end |
#td_agent_configtest ⇒ Object
171 172 173 174 175 176 |
# File 'lib/fluentd_server/cli.rb', line 171 def td_agent_configtest Dotenv.load require 'fluentd_server/model' # ::Task.create_and_delete(name: 'Configtest').configtest # using delayed_job system("#{::Task.serf_path} query td-agent-configtest") end |
#td_agent_reload ⇒ Object
141 142 143 144 145 |
# File 'lib/fluentd_server/cli.rb', line 141 def td_agent_reload Dotenv.load require 'fluentd_server/model' system("#{::Task.serf_path} event td-agent-reload") end |
#td_agent_restart ⇒ Object
148 149 150 151 152 153 |
# File 'lib/fluentd_server/cli.rb', line 148 def td_agent_restart Dotenv.load require 'fluentd_server/model' # ::Task.create_and_delete(name: 'Restart').restart # using delayed_job system("#{::Task.serf_path} event td-agent-restart") end |
#td_agent_start ⇒ Object
127 128 129 130 131 |
# File 'lib/fluentd_server/cli.rb', line 127 def td_agent_start Dotenv.load require 'fluentd_server/model' system("#{::Task.serf_path} event td-agent-start") end |
#td_agent_status ⇒ Object
163 164 165 166 167 168 |
# File 'lib/fluentd_server/cli.rb', line 163 def td_agent_status Dotenv.load require 'fluentd_server/model' # ::Task.create_and_delete(name: 'Status').status # using delayed_job system("#{::Task.serf_path} query td-agent-status") end |
#td_agent_stop ⇒ Object
134 135 136 137 138 |
# File 'lib/fluentd_server/cli.rb', line 134 def td_agent_stop Dotenv.load require 'fluentd_server/model' system("#{::Task.serf_path} event td-agent-stop") end |