summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/oxidized/output/http.rb31
1 files changed, 19 insertions, 12 deletions
diff --git a/lib/oxidized/output/http.rb b/lib/oxidized/output/http.rb
index 0467261..756b9ad 100644
--- a/lib/oxidized/output/http.rb
+++ b/lib/oxidized/output/http.rb
@@ -14,28 +14,19 @@ module Oxidized
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
+ req.body = generate_json(node, outputs, opt)
response = http.request req
case response.code.to_i
@@ -50,5 +41,21 @@ module Oxidized
Oxidized.logger.info "Configuration http backup for #{node} failed status: #{response.body}"
end
end
+
+ private
+
+ def generate_json node, outputs, opt
+ 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.
+ }
+ )
+ end
end
end