apitool-client 0.0.2 → 0.0.3
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 +4 -4
- data/apitool-client.gemspec +1 -0
- data/lib/apitool/client.rb +18 -1
- data/lib/apitool/client/apitool_client.rb +20 -12
- data/lib/apitool/client/logger.rb +85 -0
- data/lib/apitool/client/version.rb +1 -1
- data/log/.gitignore +2 -0
- metadata +18 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6cceddeda9f01b785dfecc472890e7a96df0872
|
4
|
+
data.tar.gz: df155e75ffb3458311958390e898dc4abb132127
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d819d2a63f7e05b64f083c06c087563ca65910703e8c4956e783b46baede50e78bde7a3ea3a6ac2d52c5c1f0c552d72d67481c2135a4e868106ebb09c1bcf794
|
7
|
+
data.tar.gz: 4345c9e78248f61e82b15daac51db1ae9e52ea07600255530e6399b5730a92225887585c54a84009bbd8d21854034f8dc115292addbff46ca4051fb0b2dd4a34
|
data/apitool-client.gemspec
CHANGED
data/lib/apitool/client.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
require "apitool/client/version"
|
2
2
|
|
3
|
+
require "rails"
|
3
4
|
require "rest-client"
|
5
|
+
require "apitool/client/logger"
|
6
|
+
|
4
7
|
require "apitool/client/apitool_client"
|
5
8
|
require "apitool/client/role"
|
6
9
|
require "apitool/client/api_key"
|
@@ -8,6 +11,20 @@ require "apitool/client/vpn"
|
|
8
11
|
|
9
12
|
module Apitool
|
10
13
|
module Client
|
11
|
-
|
14
|
+
|
15
|
+
def self.logger
|
16
|
+
@logger || Apitool::Client::Logger
|
17
|
+
end
|
18
|
+
|
19
|
+
def self.logger=(logger)
|
20
|
+
@logger = logger
|
21
|
+
end
|
22
|
+
|
23
|
+
class Railtie < ::Rails::Railtie
|
24
|
+
initializer :apitool_client do |app|
|
25
|
+
Apitool::Client.logger = Rails.logger
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
12
29
|
end
|
13
30
|
end
|
@@ -35,36 +35,28 @@ protected
|
|
35
35
|
|
36
36
|
def get(path, options = {})
|
37
37
|
get_connection[request_uri(path)].get(headers) { |response, request, result, &block|
|
38
|
-
|
39
|
-
@request = request
|
40
|
-
@result = result
|
38
|
+
_update(response, request, result)
|
41
39
|
yield response, request, result if block_given?
|
42
40
|
}
|
43
41
|
end
|
44
42
|
|
45
43
|
def post(path, parameters)
|
46
44
|
get_connection[request_uri(path)].post(parameters.to_json, headers) { |response, request, result, &block|
|
47
|
-
|
48
|
-
@request = request
|
49
|
-
@result = result
|
45
|
+
_update(response, request, result)
|
50
46
|
yield response, request, result if block_given?
|
51
47
|
}
|
52
48
|
end
|
53
49
|
|
54
50
|
def put(path, parameters)
|
55
51
|
get_connection[request_uri(path)].put(parameters.to_json, headers) { |response, request, result, &block|
|
56
|
-
|
57
|
-
@request = request
|
58
|
-
@result = result
|
52
|
+
_update(response, request, result)
|
59
53
|
yield response, request, result if block_given?
|
60
54
|
}
|
61
55
|
end
|
62
56
|
|
63
57
|
def delete(path)
|
64
58
|
get_connection[request_uri(path)].delete(headers) { |response, request, result, &block|
|
65
|
-
|
66
|
-
@request = request
|
67
|
-
@result = result
|
59
|
+
_update(response, request, result)
|
68
60
|
yield response, request, result if block_given?
|
69
61
|
}
|
70
62
|
end
|
@@ -75,6 +67,18 @@ protected
|
|
75
67
|
|
76
68
|
private
|
77
69
|
|
70
|
+
def _update(_response, _request, _result)
|
71
|
+
@response = _response
|
72
|
+
@request = _request
|
73
|
+
@result = _result
|
74
|
+
|
75
|
+
log = "#{result} - #{request[:method].upcase} - #{request[:url]} - payload[#{request[:payload] || ''}]"
|
76
|
+
if response.present? and response.kind_of? Array and response[0].has_key?(:message)
|
77
|
+
log = log + " - error[#{response[0][:message] || ''} | #{response[0][:details] || ''}]"
|
78
|
+
end
|
79
|
+
logger.info log
|
80
|
+
end
|
81
|
+
|
78
82
|
def base_uri
|
79
83
|
if @ssl
|
80
84
|
"https://#{@host}:#{@port}"
|
@@ -95,4 +99,8 @@ private
|
|
95
99
|
}
|
96
100
|
end
|
97
101
|
|
102
|
+
def logger
|
103
|
+
Apitool::Client.logger
|
104
|
+
end
|
105
|
+
|
98
106
|
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
class Apitool::Client::Logger < ::Logger
|
2
|
+
|
3
|
+
def self.error(message)
|
4
|
+
build.error(message)
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.info(message)
|
8
|
+
build.info(message)
|
9
|
+
end
|
10
|
+
|
11
|
+
def self.debug(message)
|
12
|
+
build.debug(message)
|
13
|
+
end
|
14
|
+
|
15
|
+
def self.read_latest
|
16
|
+
path = Rails.root.join("log", file_name)
|
17
|
+
self.build unless File.exist?(path)
|
18
|
+
tail_output, _ = Manager::Popen.popen(%W(tail -n 2000 #{path}))
|
19
|
+
tail_output.split("\n")
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.read_latest_for filename
|
23
|
+
path = Rails.root.join("log", filename)
|
24
|
+
tail_output, _ = Manager::Popen.popen(%W(tail -n 2000 #{path}))
|
25
|
+
tail_output.split("\n")
|
26
|
+
end
|
27
|
+
|
28
|
+
def self.build
|
29
|
+
new(Rails.root.join("log", file_name))
|
30
|
+
end
|
31
|
+
|
32
|
+
def self.file_name
|
33
|
+
file_name_noext + '.log'
|
34
|
+
end
|
35
|
+
|
36
|
+
def format_message(severity, timestamp, progname, msg)
|
37
|
+
"#{severity} : #{timestamp.strftime("%y-%m-%d %H:%M:%S:%L %z")} : #{msg}\n"
|
38
|
+
end
|
39
|
+
|
40
|
+
def self.archive
|
41
|
+
%x(gzip -c #{file_path} > #{targz_file_path})
|
42
|
+
end
|
43
|
+
|
44
|
+
def self.clear
|
45
|
+
%x(echo > #{file_path})
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.size
|
49
|
+
if File.exist?(file_path)
|
50
|
+
File.new(file_path).size
|
51
|
+
else
|
52
|
+
0
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def self.targz_file_path
|
57
|
+
targz_file_name = "#{file_name}-" + %x(date "+%Y%m%d_%H%M%S").gsub("\n", '') + ".gz"
|
58
|
+
Rails.root.join("log", targz_file_name).to_s
|
59
|
+
end
|
60
|
+
|
61
|
+
def self.file_path
|
62
|
+
if Rails.root.present?
|
63
|
+
Rails.root.join("log", file_name).to_s
|
64
|
+
else
|
65
|
+
[Dir.pwd, "log", file_name].join("/").to_s
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
def self.build
|
70
|
+
# File.delete(file_path)
|
71
|
+
self.new(file_path)
|
72
|
+
end
|
73
|
+
|
74
|
+
|
75
|
+
##########
|
76
|
+
|
77
|
+
def self.file_name_noext
|
78
|
+
"apitool_client"
|
79
|
+
end
|
80
|
+
|
81
|
+
def self.file_name
|
82
|
+
file_name_noext + ".log"
|
83
|
+
end
|
84
|
+
|
85
|
+
end
|
data/log/.gitignore
ADDED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: apitool-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Terranova David
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-05-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -80,6 +80,20 @@ dependencies:
|
|
80
80
|
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rails
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
83
97
|
description: APITool client.
|
84
98
|
email:
|
85
99
|
- dterranova@adhara-cybersecurity.com
|
@@ -96,9 +110,11 @@ files:
|
|
96
110
|
- lib/apitool/client.rb
|
97
111
|
- lib/apitool/client/api_key.rb
|
98
112
|
- lib/apitool/client/apitool_client.rb
|
113
|
+
- lib/apitool/client/logger.rb
|
99
114
|
- lib/apitool/client/role.rb
|
100
115
|
- lib/apitool/client/version.rb
|
101
116
|
- lib/apitool/client/vpn.rb
|
117
|
+
- log/.gitignore
|
102
118
|
- spec/apitool/client/api_key_spec.rb
|
103
119
|
- spec/apitool/client/apitool_client_spec.rb
|
104
120
|
- spec/apitool/client/role_spec.rb
|