lib/rest-ftp-daemon/api/root.rb in rest-ftp-daemon-0.247.1 vs lib/rest-ftp-daemon/api/root.rb in rest-ftp-daemon-0.250.0
- old
+ new
@@ -1,25 +1,52 @@
-require "grape"
-require "get_process_mem"
-
module RestFtpDaemon
module API
class Root < Grape::API
+ ### LOGGING & HELPERS
+
+ helpers do
+ def logger
+ Root.logger
+ end
+
+ def log_request
+ if env.nil?
+ puts "HTTP_ENV_IS_NIL: #{env.inspect}"
+ return
+ end
+
+ request_method = env['REQUEST_METHOD']
+ request_path = env['REQUEST_PATH']
+ request_uri = env['REQUEST_URI']
+ log_info "HTTP #{request_method} #{request_uri}", params
+ end
+ end
+
+ before do
+ log_request
+ end
+
+
### CLASS CONFIG
helpers RestFtpDaemon::LoggerHelper
logger RestFtpDaemon::LoggerPool.instance.get :api
-
do_not_route_head!
do_not_route_options!
-
+ # version 'v1'
format :json
content_type :json, 'application/json; charset=utf-8'
+
+ ### MOUNTPOINTS
+
+ mount RestFtpDaemon::API::Status => MOUNT_STATUS
mount RestFtpDaemon::API::Jobs => MOUNT_JOBS
mount RestFtpDaemon::API::Dashbaord => MOUNT_BOARD
+ mount RestFtpDaemon::API::Config => MOUNT_CONFIG
+ mount RestFtpDaemon::API::Debug => MOUNT_DEBUG
### INITIALIZATION
def initialize
@@ -30,115 +57,13 @@
raise RestFtpDaemon::MissingQueue unless defined? $queue
raise RestFtpDaemon::MissingPool unless defined? $pool
end
- ### HELPERS
-
- helpers do
- def logger
- Root.logger
- end
- end
-
-
- ### Common request logging
-
- before do
- log_info "HTTP #{request.request_method} #{request.fullpath}", params
- end
-
-
### ROOT URL ACCESS
get "/" do
redirect Helpers.dashboard_filter_url()
- end
-
-
- ### SHOW ROUTES
-
- desc "Show application routes"
- get "/routes" do
- status 200
- return RestFtpDaemon::API::Root.routes
- end
-
-
- ### SHOW STATUS
-
- desc "Show daemon status"
- get "/status" do
- mem = GetProcessMem.new
- status 200
- return {
- hostname: `hostname`.to_s.chomp,
- version: APP_VER,
- started: APP_STARTED,
- uptime: (Time.now - APP_STARTED).round(1),
- counters: $queue.counters,
- memory_bytes: mem.bytes.to_i,
- memory_mb: mem.mb.round(0),
- status: $queue.counts_by_status,
- workers: $pool.worker_variables,
- jobs_count: $queue.jobs_count,
- jobs_queued: $queue.queued_ids,
- }
- end
-
-
- ### SHOW CONFIG
-
- desc "Show daemon config"
- get "/config" do
- status 200
- return Helpers.get_censored_config
- end
-
-
- desc "List all Jobs params encodings"
- get "/encodings" do
- # Get jobs to display
- encodings = {}
- jobs = $queue.jobs
-
- jobs.each do |job|
- # here = out[job.id] = {}
- me = encodings[job.id] = {}
-
- me[:error] = job.error.encoding.to_s unless job.error.nil?
- me[:status] = job.status.encoding.to_s unless job.status.nil?
-
- Job::FIELDS.each do |name|
- value = job.send(name)
- me[name] = value.encoding.to_s if value.is_a? String
- end
-
- job.infos.each do |name, value|
- me["infos_#{name}"] = value.encoding.to_s if value.is_a? String
- end
-
- # # Computed fields
- # expose :age
- # expose :exectime
- end
-
- encodings
- end
-
-
- ### RELOAD CONFIG
-
- desc "Reload daemon config"
- post "/config/reload" do
- if Settings.at(:debug, :allow_reload)==true
- Settings.reload!
- status 200
- return Helpers.get_censored_config
- else
- status 403
- return "Config reload not permitted"
- end
end
end
end
end