Class: Oxidized::Output::Http

Inherits:
Oxidized::Output show all
Defined in:
lib/oxidized/output/http.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeHttp

Returns a new instance of Http.



6
7
8
9
# File 'lib/oxidized/output/http.rb', line 6

def initialize
  super
  @cfg = Oxidized.config.output.http
end

Instance Attribute Details

#commitrefObject (readonly)

Returns the value of attribute commitref.



4
5
6
# File 'lib/oxidized/output/http.rb', line 4

def commitref
  @commitref
end

Instance Method Details

#setupObject

Raises:



11
12
13
14
15
16
17
18
19
# File 'lib/oxidized/output/http.rb', line 11

def setup
  return unless @cfg.empty?

  Oxidized.asetus.user.output.http.user = 'Oxidized'
  Oxidized.asetus.user.output.http.pasword = 'secret'
  Oxidized.asetus.user.output.http.url = 'http://localhost/web-api/oxidized'
  Oxidized.asetus.save :user
  raise NoConfig, "no output http config, edit #{Oxidized::Config.configfile}"
end

#store(node, outputs, opt = {}) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/oxidized/output/http.rb', line 25

def store(node, outputs, opt = {})
  @commitref = nil
  uri = URI.parse @cfg.url
  http = Net::HTTP.new uri.host, uri.port
  # http.use_ssl = true if uri.scheme = 'https'
  req = Net::HTTP::Post.new(uri.request_uri, 'Content-Type' => 'application/json')
  req.basic_auth @cfg.user, @cfg.password
  req.body = generate_json(node, outputs, opt)
  response = http.request req

  case response.code.to_i
  when 200 || 201
    Oxidized.logger.info "Configuration http backup complete for #{node}"
    p [:success]
  when (400..499)
    Oxidized.logger.info "Configuration http backup for #{node} failed status: #{response.body}"
    p [:bad_request]
  when (500..599)
    p [:server_problems]
    Oxidized.logger.info "Configuration http backup for #{node} failed status: #{response.body}"
  end
end