changelog_client 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/changelog_client.rb +75 -0
- metadata +44 -0
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA1:
|
|
3
|
+
metadata.gz: 232a016ed930c4dcd338b510cca864d3363316d6
|
|
4
|
+
data.tar.gz: 643736164435667d915eaa73744ab564164299c2
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: c1d23f9af2b297c39221db65dd28b45516527f895136df4691a87c698e7065a6edddd5a38614437353f257c76300c8bcd196bdfed313380deb60d63c6ce4f9fb
|
|
7
|
+
data.tar.gz: e92d7e7abbfc671b07d0b50e0fb7f10c576ca0294e469b3acc41a65b590684737603000aeea62d57667c2aacb2c1d1a177ebc53b202915cbbae55732b98d3ecd
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
require 'json'
|
|
2
|
+
require 'net/http'
|
|
3
|
+
require 'uri'
|
|
4
|
+
|
|
5
|
+
SEVERITY = {
|
|
6
|
+
'INFO' => 1,
|
|
7
|
+
'NOTIFICATION' => 2,
|
|
8
|
+
'WARNING' => 3,
|
|
9
|
+
'ERROR' => 4,
|
|
10
|
+
'CRITICAL' => 5 }
|
|
11
|
+
|
|
12
|
+
API_HOST = 'localhost'
|
|
13
|
+
API_PORT = '5000'
|
|
14
|
+
|
|
15
|
+
class ChangelogClient
|
|
16
|
+
def initialize(host = API_HOST, port = API_PORT)
|
|
17
|
+
@host = host
|
|
18
|
+
@port = port
|
|
19
|
+
@endpoint = '/api/events'
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
def deflate_severity(severity)
|
|
23
|
+
return severity if severity.is_a? Integer
|
|
24
|
+
SEVERITY[severity]
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# Sends a message to the Changelog server
|
|
28
|
+
#
|
|
29
|
+
# Example:
|
|
30
|
+
# >> client = ChangelogClient.new("host", "port")
|
|
31
|
+
# >> client.send("This is the message", "INFO", "Mycategory")
|
|
32
|
+
# => true
|
|
33
|
+
#
|
|
34
|
+
# Arguments:
|
|
35
|
+
# message: (String)
|
|
36
|
+
# severity: (String, Integer)
|
|
37
|
+
# category: (String)
|
|
38
|
+
# extra_headers: (Hash)
|
|
39
|
+
def send(message, severity, category = 'misc', extra_headers = nil)
|
|
40
|
+
http = Net::HTTP.new(@host, server_port)
|
|
41
|
+
headers = {
|
|
42
|
+
'User-Agent' => "ccp/client v.#{Gem.loaded_specs['changelog_client'].version.to_s}",
|
|
43
|
+
'Content-Type' => 'application/json'
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
headers << extra_headers if extra_headers
|
|
47
|
+
|
|
48
|
+
data = {
|
|
49
|
+
'criticality' => deflate_severity(severity),
|
|
50
|
+
'unix_timestamp' => ::Time.now.to_i,
|
|
51
|
+
'category' => category,
|
|
52
|
+
'description' => message
|
|
53
|
+
}
|
|
54
|
+
begin
|
|
55
|
+
response = http.post(@endpoint, JSON.generate(data), headers)
|
|
56
|
+
if response.body.include? '"OK"'
|
|
57
|
+
return true
|
|
58
|
+
else
|
|
59
|
+
puts 'Failed to send changelog message to server'
|
|
60
|
+
return false
|
|
61
|
+
end
|
|
62
|
+
rescue Exception => e
|
|
63
|
+
puts "Failed to send changelog message to server: #{e.message}"
|
|
64
|
+
return false
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def server_port
|
|
69
|
+
if @port == 80
|
|
70
|
+
nil
|
|
71
|
+
else
|
|
72
|
+
@port
|
|
73
|
+
end
|
|
74
|
+
end
|
|
75
|
+
end
|
metadata
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: changelog_client
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.0.1
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Adam Papai
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
date: 2014-07-01 00:00:00.000000000 Z
|
|
12
|
+
dependencies: []
|
|
13
|
+
description: A client library for the Changelog server
|
|
14
|
+
email: wooh@wooh.hu
|
|
15
|
+
executables: []
|
|
16
|
+
extensions: []
|
|
17
|
+
extra_rdoc_files: []
|
|
18
|
+
files:
|
|
19
|
+
- lib/changelog_client.rb
|
|
20
|
+
homepage: https://github.com/woohgit/changelog_client
|
|
21
|
+
licenses:
|
|
22
|
+
- MIT
|
|
23
|
+
metadata: {}
|
|
24
|
+
post_install_message:
|
|
25
|
+
rdoc_options: []
|
|
26
|
+
require_paths:
|
|
27
|
+
- lib
|
|
28
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
29
|
+
requirements:
|
|
30
|
+
- - '>='
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
32
|
+
version: '0'
|
|
33
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
34
|
+
requirements:
|
|
35
|
+
- - '>='
|
|
36
|
+
- !ruby/object:Gem::Version
|
|
37
|
+
version: '0'
|
|
38
|
+
requirements: []
|
|
39
|
+
rubyforge_project:
|
|
40
|
+
rubygems_version: 2.3.0
|
|
41
|
+
signing_key:
|
|
42
|
+
specification_version: 4
|
|
43
|
+
summary: A ruby client for Changelog
|
|
44
|
+
test_files: []
|