Sha256: 699c9338a8b23f23235bd6d1eb454c4771ff003885510c058a9d1a1884b3af4a

Contents?: true

Size: 1.8 KB

Versions: 16

Compression:

Stored size: 1.8 KB

Contents

module Oxidized
  class Http < Output
    attr_reader :commitref
    def initialize
      @cfg = Oxidized.config.output.http
    end

    def setup
      if @cfg.empty?
        CFGS.user.output.http.user  = 'Oxidized'
        CFGS.user.output.http.pasword = 'secret'
        CFGS.user.output.http.url  =  'http://localhost/web-api/oxidized'
        CFGS.save :user
        raise NoConfig, 'no output http config, edit ~/.config/oxidized/config'
      end
    end
    require "net/http"
    require "uri"
    require "json"
    def store node, outputs, opt={}
      @commitref = nil
      json = JSON.pretty_generate(
          {
              'msg' => opt[:msg],
              'user' => opt[:user],
              'email' => opt[:email],
              'group' => opt[:group],
              'node' => node,
              'config' => outputs.to_cfg,
              # actually we need to also iterate outputs, for other types like in gitlab. But most people don't use 'type' functionality.
          }
      )
      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, initheader = { 'Content-Type' => 'application/json'})
      req.basic_auth @cfg.user, @cfg.password
      req.body = json
      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

  end
end


Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
oxidized-0.21.0 lib/oxidized/output/http.rb
oxidized-0.20.0 lib/oxidized/output/http.rb
oxidized-0.19.0 lib/oxidized/output/http.rb
oxidized-0.18.0 lib/oxidized/output/http.rb
oxidized-0.17.0 lib/oxidized/output/http.rb
oxidized-0.16.3 lib/oxidized/output/http.rb
oxidized-0.16.2 lib/oxidized/output/http.rb
oxidized-0.16.1 lib/oxidized/output/http.rb
oxidized-0.16.0 lib/oxidized/output/http.rb
oxidized-0.15.0 lib/oxidized/output/http.rb
oxidized-0.14.3 lib/oxidized/output/http.rb
oxidized-0.14.2 lib/oxidized/output/http.rb
oxidized-0.14.1 lib/oxidized/output/http.rb
oxidized-0.14.0 lib/oxidized/output/http.rb
oxidized-0.13.1 lib/oxidized/output/http.rb
oxidized-0.13.0 lib/oxidized/output/http.rb