Module: Sensu::API::Routes::Request

Includes:
Utilities::PublishCheckRequest
Included in:
Sensu::API::Routes
Defined in:
lib/sensu/api/routes/request.rb

Constant Summary collapse

REQUEST_URI =
/^\/request$/

Instance Method Summary collapse

Instance Method Details

#post_requestObject

POST /request



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/sensu/api/routes/request.rb', line 12

def post_request
  rules = {
    :check => {:type => String, :nil_ok => false},
    :subscribers => {:type => Array, :nil_ok => true},
    :reason => {:type => String, :nil_ok => true},
    :creator => {:type => String, :nil_ok => true}
  }
  read_data(rules) do |data|
    if @settings[:checks][data[:check]]
      check = @settings[:checks][data[:check]].dup
      check[:name] = data[:check]
      check[:subscribers] ||= Array.new
      check[:subscribers] = data[:subscribers] if data[:subscribers]
      check[:api_requested] = {
        :reason => data[:reason],
        :creator => data[:creator]
      }
      if check[:proxy_requests]
        publish_proxy_check_requests(check)
      else
        publish_check_request(check)
      end
      @response_content = {:issued => Time.now.to_i}
      accepted!
    else
      not_found!
    end
  end
end