Class: Daemon::MasterProcess::Prepare

Inherits:
Object
  • Object
show all
Defined in:
lib/onapp/engine/master_process/middleware/prepare.rb

Instance Method Summary (collapse)

Constructor Details

- (Prepare) initialize(app)

Returns a new instance of Prepare



6
7
8
# File 'lib/onapp/engine/master_process/middleware/prepare.rb', line 6

def initialize(app)
  @app = app
end

Instance Method Details

- (Object) call(env)



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/onapp/engine/master_process/middleware/prepare.rb', line 10

def call(env)
  require 'onapp/engine/all'
  require 'onapp/engine/runner/status'

  Daemon::Runner::Status.start_updating

  Daemon::Utils::Signal.on_error do |ex|
    Daemon.logger.error("Can't handle trap! #{ex.class}: #{ex}")
  end

  pid = Process.pid

  %w(QUIT TERM INT).each do |sig|
    Daemon::Utils::Signal.trap(sig) do
      if pid == Process.pid
        env.logger.info "#{sig} received. Exiting..."
        env.stop_service.perform
      end
    end
  end

  Daemon.force_stop.reset

  @app.call(env)
end