zeusclient 0.1.3 → 0.3.0
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/.travis.yml +6 -0
- data/Gemfile +2 -1
- data/Gemfile.lock +38 -9
- data/README.md +125 -6
- data/Rakefile +1 -2
- data/bin/console +3 -3
- data/lib/zeus/api_client/alerts_interface.rb +136 -0
- data/lib/zeus/api_client/logs_interface.rb +57 -0
- data/lib/zeus/api_client/metrics_interface.rb +85 -0
- data/lib/zeus/api_client/rest_interface.rb +40 -0
- data/lib/zeus/api_client/result.rb +25 -30
- data/lib/zeus/api_client/trigalerts_interface.rb +46 -0
- data/lib/zeus/api_client/version.rb +1 -1
- data/lib/zeus/api_client.rb +11 -163
- data/zeusclient.gemspec +21 -16
- metadata +44 -24
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d04cab72b6da4d93b3b969a696b13fa304c4d7c9
|
4
|
+
data.tar.gz: 14a16ea6fba4e7f91168f48ea34b1e83bf041d10
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9759a9c03cc1c73b5e5e20644af98eda593bd1e99b0e1817972c76a41244f007159a38ccc2f222bbfbf5db272f07107886da3cf0c3616aa3c9bfc62a8ba35282
|
7
|
+
data.tar.gz: 11775b0f901a4782e9d58203db59a1677041069126e092122eca804bbbbb6d19b06a1b8db0d8f4834dbf1b3e819bb80200be96c7fd355ea9fa8822a112e06644
|
data/.travis.yml
ADDED
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,28 +1,52 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
zeusclient (0.
|
5
|
-
|
6
|
-
rest-client
|
4
|
+
zeusclient (0.3.0)
|
5
|
+
rest-client (~> 1.8.0)
|
7
6
|
|
8
7
|
GEM
|
9
8
|
remote: https://rubygems.org/
|
10
9
|
specs:
|
11
|
-
|
10
|
+
ast (2.3.0)
|
11
|
+
diff-lcs (1.2.5)
|
12
|
+
domain_name (0.5.20161021)
|
12
13
|
unf (>= 0.0.5, < 1.0.0)
|
13
|
-
http-cookie (1.0.
|
14
|
+
http-cookie (1.0.3)
|
14
15
|
domain_name (~> 0.5)
|
15
|
-
|
16
|
-
|
17
|
-
|
16
|
+
mime-types (2.99.3)
|
17
|
+
netrc (0.11.0)
|
18
|
+
parser (2.3.1.4)
|
19
|
+
ast (~> 2.2)
|
20
|
+
powerpack (0.1.1)
|
21
|
+
rainbow (2.1.0)
|
18
22
|
rake (10.4.2)
|
19
23
|
rest-client (1.8.0)
|
20
24
|
http-cookie (>= 1.0.2, < 2.0)
|
21
25
|
mime-types (>= 1.16, < 3.0)
|
22
26
|
netrc (~> 0.7)
|
27
|
+
rspec (3.0.0)
|
28
|
+
rspec-core (~> 3.0.0)
|
29
|
+
rspec-expectations (~> 3.0.0)
|
30
|
+
rspec-mocks (~> 3.0.0)
|
31
|
+
rspec-core (3.0.4)
|
32
|
+
rspec-support (~> 3.0.0)
|
33
|
+
rspec-expectations (3.0.4)
|
34
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
35
|
+
rspec-support (~> 3.0.0)
|
36
|
+
rspec-mocks (3.0.4)
|
37
|
+
rspec-support (~> 3.0.0)
|
38
|
+
rspec-support (3.0.4)
|
39
|
+
rubocop (0.45.0)
|
40
|
+
parser (>= 2.3.1.1, < 3.0)
|
41
|
+
powerpack (~> 0.1)
|
42
|
+
rainbow (>= 1.99.1, < 3.0)
|
43
|
+
ruby-progressbar (~> 1.7)
|
44
|
+
unicode-display_width (~> 1.0, >= 1.0.1)
|
45
|
+
ruby-progressbar (1.8.1)
|
23
46
|
unf (0.1.4)
|
24
47
|
unf_ext
|
25
|
-
unf_ext (0.0.7.
|
48
|
+
unf_ext (0.0.7.2)
|
49
|
+
unicode-display_width (1.1.1)
|
26
50
|
yard (0.8.7.6)
|
27
51
|
|
28
52
|
PLATFORMS
|
@@ -31,5 +55,10 @@ PLATFORMS
|
|
31
55
|
DEPENDENCIES
|
32
56
|
bundler (~> 1.8)
|
33
57
|
rake (~> 10.0)
|
58
|
+
rspec (~> 3.0.0)
|
59
|
+
rubocop (~> 0.45.0)
|
34
60
|
yard (~> 0.8.0)
|
35
61
|
zeusclient!
|
62
|
+
|
63
|
+
BUNDLED WITH
|
64
|
+
1.13.3
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# Ruby Zeus Client [](http://www.apache.org/licenses/LICENSE-2.0)
|
1
|
+
# Ruby Zeus Client [](http://www.apache.org/licenses/LICENSE-2.0) [](https://travis-ci.org/CiscoZeus/ruby-zeusclient)
|
2
2
|
|
3
|
-

|
3
|
+

|
4
4
|
|
5
5
|
Ruby client for [Cisco Zeus](http://www.ciscozeus.io/). This allows us to send and recieve data to and from Zeus.
|
6
6
|
|
@@ -25,27 +25,48 @@ Or install it yourself as:
|
|
25
25
|
```ruby
|
26
26
|
require 'zeus/api_client'
|
27
27
|
zeus_client = Zeus::APIClient.new({
|
28
|
-
:access_token => "your_token_here"
|
28
|
+
:access_token => "your_token_here",
|
29
|
+
:endpoint => "zeus_endpoint_here"
|
29
30
|
})
|
30
31
|
```
|
31
32
|
|
32
33
|
List All Metrics
|
34
|
+
|
33
35
|
```ruby
|
34
|
-
result = zeus_client.list_metrics(
|
36
|
+
result = zeus_client.list_metrics(
|
37
|
+
# optional parameters
|
38
|
+
{
|
39
|
+
regex: "metric.name*" # regex for filtering metrics names
|
40
|
+
from_date: "2016-06-12", # YYYY-MM-DD
|
41
|
+
to_date: "2017-12-20", # YYYY-MM-DD
|
42
|
+
aggregator_function: "sum", # Aggregator function to be applied to the metric values.
|
43
|
+
# Available options. count, min, max, sum, mean, mode, median
|
44
|
+
group_interval: "100m", # Interval for grouping, when applying aggregations via the aggregator_function parameter.
|
45
|
+
# The aggregator_function parameter must be specific for this parameter to work.
|
46
|
+
# Examples: 1000s, 100m, 10h, 1d , 1w. Use 's' for seconds, 'm' for minutes, 'h' for hours,
|
47
|
+
# 'd' for days and 'w' for weeks.
|
48
|
+
filter_condition: "column1 > 0", # Filters to be applied to metric values.
|
49
|
+
# Examples: "column1 > 0", "column1 > 50 AND column2 = 10".
|
50
|
+
offset: 100,
|
51
|
+
limit: 10
|
52
|
+
}
|
53
|
+
)
|
35
54
|
p result.code # 200
|
36
55
|
p result.success? # true
|
37
56
|
p result.data # => {}
|
38
57
|
```
|
39
58
|
|
40
59
|
Get Metric
|
60
|
+
|
41
61
|
```ruby
|
42
|
-
result = zeus_client.get_metrics()
|
62
|
+
result = zeus_client.get_metrics( # same optional arguments as list_metrics)
|
43
63
|
p result.code # 200
|
44
64
|
p result.success? # true
|
45
65
|
p result.data # => {}
|
46
66
|
```
|
47
67
|
|
48
68
|
Push Metric
|
69
|
+
|
49
70
|
```ruby
|
50
71
|
result = zeus_client.send_metrics([{point: {value: 1, ...}}, ...])
|
51
72
|
p result.code # 200
|
@@ -54,6 +75,7 @@ p result.data # => {}
|
|
54
75
|
```
|
55
76
|
|
56
77
|
Delete metric
|
78
|
+
|
57
79
|
```ruby
|
58
80
|
result = zeus_client.delete_metrics()
|
59
81
|
p result.code # 200
|
@@ -62,14 +84,27 @@ p result.data # => {}
|
|
62
84
|
```
|
63
85
|
|
64
86
|
Get logs
|
87
|
+
|
65
88
|
```ruby
|
66
|
-
result = zeus_client.get_logs(
|
89
|
+
result = zeus_client.get_logs(
|
90
|
+
"log_name_here",
|
91
|
+
#optional parameters
|
92
|
+
{
|
93
|
+
attribute_name: "cpu", # name of the attribute within the log to be searched
|
94
|
+
pattern: "memory.*", # a pattern for name filtering
|
95
|
+
from_date: "2016-06-12", # YYYY-MM-DD
|
96
|
+
to_date: "2017-12-20", # YYYY-MM-DD
|
97
|
+
offset: 200,
|
98
|
+
limit: 10
|
99
|
+
}
|
100
|
+
)
|
67
101
|
p result.code # 200
|
68
102
|
p result.success? # true
|
69
103
|
p result.data # => {}
|
70
104
|
```
|
71
105
|
|
72
106
|
Push logs
|
107
|
+
|
73
108
|
```ruby
|
74
109
|
result = zeus_client.send_logs([{},{}, ...])
|
75
110
|
p result.code # 200
|
@@ -77,6 +112,90 @@ p result.success? # true
|
|
77
112
|
p result.data # => {}
|
78
113
|
```
|
79
114
|
|
115
|
+
Get alerts
|
116
|
+
|
117
|
+
```ruby
|
118
|
+
result = zeus_client.get_alerts()
|
119
|
+
p result.code # 200
|
120
|
+
p result.success? # true
|
121
|
+
p result.data # => {}
|
122
|
+
```
|
123
|
+
|
124
|
+
Create alert
|
125
|
+
|
126
|
+
```ruby
|
127
|
+
result = zeus_client.create_alert(
|
128
|
+
{
|
129
|
+
alert_name: "name of the alert",
|
130
|
+
username: "username associated with alert",
|
131
|
+
alert_expression: "cpu.value > 80", # expression to match alert against
|
132
|
+
# optional params
|
133
|
+
alerts_type: "metrics", # Either metric or log
|
134
|
+
alert_severity: "S1", # severity of the alert, S1-S5
|
135
|
+
metric_name: "name of the metrics associated with the alert",
|
136
|
+
emails: "email@provider.com", # email to be notified when alert triggers
|
137
|
+
status: "active", # either active or disabled
|
138
|
+
frequency: 60, # frequency for alert to be checked
|
139
|
+
}
|
140
|
+
)
|
141
|
+
p result.code # 201
|
142
|
+
p result.success? # true
|
143
|
+
p result.data # => {}
|
144
|
+
```
|
145
|
+
|
146
|
+
Modify alert
|
147
|
+
|
148
|
+
```ruby
|
149
|
+
result = zeus_client.modify_alert(
|
150
|
+
alert_id,
|
151
|
+
{
|
152
|
+
# parameter you wish to modify
|
153
|
+
alert_name: "name of the alert",
|
154
|
+
username: "username associated with alert",
|
155
|
+
alert_expression: "cpu.value > 80", # expression to match alert against
|
156
|
+
alerts_type: "metric", # Either metric or log
|
157
|
+
alert_severity: "S1", # severity of the alert, S1-S5
|
158
|
+
metric_name: "name of the metrics associated with the alert",
|
159
|
+
emails: "email@provider.com", # email to be notified when alert triggers
|
160
|
+
status: "active", # either active or disabled
|
161
|
+
frequency: 60, # frequency for alert to be checked
|
162
|
+
}
|
163
|
+
)
|
164
|
+
p result.code # 200
|
165
|
+
p result.success? # true
|
166
|
+
p result.data # => {}
|
167
|
+
```
|
168
|
+
|
169
|
+
Delete alert
|
170
|
+
|
171
|
+
```ruby
|
172
|
+
result = zeus_client.delete_alert(alert_id)
|
173
|
+
p result.code # 204
|
174
|
+
p result.success? # true
|
175
|
+
p result.data # => {}
|
176
|
+
```
|
177
|
+
|
178
|
+
Get triggered alerts
|
179
|
+
|
180
|
+
```ruby
|
181
|
+
result = zeus_client.triggered_alerts()
|
182
|
+
p result.code # 200
|
183
|
+
p result.success? # true
|
184
|
+
p result.data # => {}
|
185
|
+
Get triggered alerts
|
186
|
+
```
|
187
|
+
|
188
|
+
Get triggered alerts in the last 24 hours
|
189
|
+
|
190
|
+
```ruby
|
191
|
+
result = zeus_client.triggered_alerts_last_24_hours()
|
192
|
+
p result.code # 200
|
193
|
+
p result.success? # true
|
194
|
+
p result.data # => {}
|
195
|
+
```
|
196
|
+
|
197
|
+
For more details, refer to [this documentation](http://www.rubydoc.info/github/CiscoZeus/ruby-zeusclient/)
|
198
|
+
|
80
199
|
## Development
|
81
200
|
|
82
201
|
After checking out the repo, run `bin/setup` to install dependencies. Then, run `bin/console` for an interactive prompt that will allow you to experiment.
|
data/Rakefile
CHANGED
data/bin/console
CHANGED
@@ -14,8 +14,8 @@
|
|
14
14
|
# See the License for the specific language governing permissions and
|
15
15
|
# limitations under the License.
|
16
16
|
|
17
|
-
require
|
18
|
-
require
|
17
|
+
require 'bundler/setup'
|
18
|
+
require 'zeus/api_client'
|
19
19
|
|
20
20
|
# You can add fixtures and/or initialization code here to make experimenting
|
21
21
|
# with your gem easier. You can also use a different console, if you like.
|
@@ -24,5 +24,5 @@ require "zeus/api_client"
|
|
24
24
|
# require "pry"
|
25
25
|
# Pry.start
|
26
26
|
|
27
|
-
require
|
27
|
+
require 'irb'
|
28
28
|
IRB.start
|
@@ -0,0 +1,136 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
# Copyright 2016 Cisco Systems, Inc.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require 'zeus/api_client/rest_interface'
|
19
|
+
require 'zeus/api_client/result'
|
20
|
+
|
21
|
+
module Zeus
|
22
|
+
# Interface for dealing with alerts api calls
|
23
|
+
module AlertsInterface
|
24
|
+
include RestInterface
|
25
|
+
|
26
|
+
# create alert
|
27
|
+
# @param [Hash] alert_data must contain:
|
28
|
+
# @param [String] alert_name name of the alert
|
29
|
+
# @param [String] username account username
|
30
|
+
# @param [String] token account token
|
31
|
+
# @param [String] alerts_type alert type, metrics or logs
|
32
|
+
# @param [String] alert_expression expression to evaluate the alert
|
33
|
+
# @param [String] alert_severity severity level of the alert
|
34
|
+
# @param [String] metric_name <TODO add description>
|
35
|
+
# @param [String] emails recipients to receive notifications
|
36
|
+
# @param [String] status if the alerts is enabled or not
|
37
|
+
# @param [Integer] frequency <TODO add description>
|
38
|
+
# @return [Zeus::APIClient::Result]
|
39
|
+
|
40
|
+
def create_alert(alert_data)
|
41
|
+
alert_data[:token] = @access_token
|
42
|
+
response = post("/alerts/#{@access_token}", alert_data)
|
43
|
+
Result.new(response)
|
44
|
+
rescue => e
|
45
|
+
Result.new(e.response)
|
46
|
+
end
|
47
|
+
|
48
|
+
# modify alert
|
49
|
+
# @param [Integer] alert_id id of the alert to be modified
|
50
|
+
# @param [Hash] alert_data must contain:
|
51
|
+
# @param [String] alert_name name of the alert
|
52
|
+
# @param [String] username account username
|
53
|
+
# @param [String] token account token
|
54
|
+
# @param [String] alert_expression expression to evaluate the alert
|
55
|
+
# Optional params:
|
56
|
+
# @param [String] alerts_type alert type, metrics or logs
|
57
|
+
# @param [String] alert_severity severity level of the alert
|
58
|
+
# @param [String] metric_name <TODO add description>
|
59
|
+
# @param [String] emails recipients to receive notifications
|
60
|
+
# @param [String] status if the alerts is enabled or not
|
61
|
+
# @param [Integer] frequency <TODO add description>
|
62
|
+
# @return [Zeus::APIClient::Result]
|
63
|
+
|
64
|
+
def modify_alert(alert_id, alert_data)
|
65
|
+
alert_data[:token] = @access_token
|
66
|
+
response = put("/alerts/#{@access_token}/#{alert_id}", alert_data)
|
67
|
+
Result.new(response)
|
68
|
+
rescue => e
|
69
|
+
Result.new(e.response)
|
70
|
+
end
|
71
|
+
|
72
|
+
# get alerts
|
73
|
+
# @param [String] metric Name of metric that alerts are associated with
|
74
|
+
# @return [Zeus::APIClient::Result]
|
75
|
+
|
76
|
+
def get_alerts(metric = nil)
|
77
|
+
params = { metric: metric }
|
78
|
+
begin
|
79
|
+
response = get("/alerts/#{@access_token}", params)
|
80
|
+
Result.new(response)
|
81
|
+
rescue => e
|
82
|
+
Result.new(e.response)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
# get alert
|
87
|
+
# @param [Integer] alert_id id of alert to be retrieved
|
88
|
+
# @return [Zeus::APIClient::Result]
|
89
|
+
|
90
|
+
def get_alert(alert_id)
|
91
|
+
response = get("/alerts/#{@access_token}/#{alert_id}")
|
92
|
+
Result.new(response)
|
93
|
+
rescue => e
|
94
|
+
Result.new(e.response)
|
95
|
+
end
|
96
|
+
|
97
|
+
# delete alert
|
98
|
+
# @param [Integer] alert_id id of alert to be deleted
|
99
|
+
# @return [Zeus::APIClient::Result]
|
100
|
+
|
101
|
+
def delete_alert(alert_id)
|
102
|
+
response = delete("/alerts/#{@access_token}/#{alert_id}")
|
103
|
+
Result.new(response)
|
104
|
+
rescue => e
|
105
|
+
Result.new(e.response)
|
106
|
+
end
|
107
|
+
|
108
|
+
# enable alerts
|
109
|
+
# @param [Array[Integer]] alert_id_list list of alert ids to be enabled
|
110
|
+
# @return [Zeus::APIClient::Result]
|
111
|
+
|
112
|
+
def enable_alerts(alert_id_array)
|
113
|
+
params = { id: alert_id_array }
|
114
|
+
begin
|
115
|
+
response = post("/alerts/#{@access_token}/enable", params)
|
116
|
+
Result.new(response)
|
117
|
+
rescue => e
|
118
|
+
Result.new(e.response)
|
119
|
+
end
|
120
|
+
end
|
121
|
+
|
122
|
+
# disable alerts
|
123
|
+
# @param [Array[Integer]] alert_id_list list of alert ids to be disabled
|
124
|
+
# @return [Zeus::APIClient::Result]
|
125
|
+
|
126
|
+
def disable_alerts(alert_id_array)
|
127
|
+
params = { id: alert_id_array }
|
128
|
+
begin
|
129
|
+
response = post("/alerts/#{@access_token}/disable", params)
|
130
|
+
Result.new(response)
|
131
|
+
rescue => e
|
132
|
+
Result.new(e.response)
|
133
|
+
end
|
134
|
+
end
|
135
|
+
end
|
136
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
# Copyright 2016 Cisco Systems, Inc.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
require 'zeus/api_client/rest_interface'
|
18
|
+
require 'zeus/api_client/result'
|
19
|
+
|
20
|
+
module Zeus
|
21
|
+
# Interface for dealing with logs api calls
|
22
|
+
module LogsInterface
|
23
|
+
include RestInterface
|
24
|
+
# send logs
|
25
|
+
# @param [String] name a log name
|
26
|
+
# @param [Array] logs a list of hash objects
|
27
|
+
# @return [Zeus::APIClient::Result]
|
28
|
+
def send_logs(name, logs)
|
29
|
+
params = { logs: logs }
|
30
|
+
begin
|
31
|
+
response = post("/logs/#{@access_token}/#{name}/", params)
|
32
|
+
Result.new(response)
|
33
|
+
rescue => e
|
34
|
+
Result.new(e.response)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
# get logs
|
39
|
+
# @param [String] name a log name
|
40
|
+
# @param [Hash] options can contain:
|
41
|
+
# @param [String] attribute_name Name of the attribute within
|
42
|
+
# the log to be searched.
|
43
|
+
# @param [String] pattern a factor for filtering by name
|
44
|
+
# @param [String] from_date a factor for filtering by start timestamp
|
45
|
+
# @param [String] to_date a factor for filtering by end timestamp
|
46
|
+
# @param [Integer] offset a factor for filtering by metrics name
|
47
|
+
# @param [Integer] limit a maximum number of returning values
|
48
|
+
# @return [Zeus::APIClient::Result]
|
49
|
+
def get_logs(name, options = {})
|
50
|
+
options[:log_name] = name
|
51
|
+
response = get("/logs/#{@access_token}", options)
|
52
|
+
Result.new(response)
|
53
|
+
rescue => e
|
54
|
+
Result.new(e.response)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,85 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
# Copyright 2016 Cisco Systems, Inc.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
require 'zeus/api_client/rest_interface'
|
18
|
+
require 'zeus/api_client/result'
|
19
|
+
|
20
|
+
module Zeus
|
21
|
+
# Interface for dealing with metrics api calls
|
22
|
+
module MetricsInterface
|
23
|
+
include RestInterface
|
24
|
+
# Get metrics list
|
25
|
+
# @param [Hash] options can contain:
|
26
|
+
# @param [String] regex a factor for filtering by metrics name.
|
27
|
+
# eg: metric.name, metric.name*, metric.name.* etc.
|
28
|
+
# @param [String] from_date a factor for filtering by start timestamp
|
29
|
+
# @param [String] to_date a factor for filtering by end timestamp
|
30
|
+
# @param [String] aggregator an aggregation methods
|
31
|
+
# @param [String] group_interval grouping values by time interval.
|
32
|
+
# For example, 1000s, 100m, 10h, 1d , 1w
|
33
|
+
# @param [String] filter_condition a factor for filtering by metrics name
|
34
|
+
# @param [String] limit a maximum number of returning values
|
35
|
+
# @return [Zeus::APIClient::Result]
|
36
|
+
def list_metrics(options = {})
|
37
|
+
response = get("/metrics/#{@access_token}/_names/", options)
|
38
|
+
Result.new(response)
|
39
|
+
rescue => e
|
40
|
+
Result.new(e.response)
|
41
|
+
end
|
42
|
+
|
43
|
+
# Send metrics list
|
44
|
+
# @param [String] name a name of metrics.
|
45
|
+
# For example, metric.name, metric.name*, metric.name.* etc.
|
46
|
+
# @param [Array] metrics a list of hash objects
|
47
|
+
# @return [Zeus::APIClient::Result]
|
48
|
+
def send_metrics(name, metrics)
|
49
|
+
params = { metrics: metrics }
|
50
|
+
begin
|
51
|
+
response = post("/metrics/#{@access_token}/#{name}/", params)
|
52
|
+
Result.new(response)
|
53
|
+
rescue => e
|
54
|
+
Result.new(e.response)
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
# Get metrics
|
59
|
+
# @param [Hash] options can contain:
|
60
|
+
# @param [String] regex a factor for filtering by metrics name
|
61
|
+
# @param [String] from_date a factor for filtering by start timestamp
|
62
|
+
# @param [String] to_date a factor for filtering by end timestamp
|
63
|
+
# @param [String] aggregator an aggregation methods
|
64
|
+
# @param [String] group_interval grouping values by time interval.
|
65
|
+
# For example, 1000s, 100m, 10h, 1d , 1w
|
66
|
+
# @param [String] filter_condition filters to be applied to metric values.
|
67
|
+
# eg: "column1 > 0", "column1 > 50 AND column2 = 10"
|
68
|
+
# @param [Integer] limit a maximum number of returning values
|
69
|
+
# @return [Zeus::APIClient::Result]
|
70
|
+
def get_metrics(options = {})
|
71
|
+
response = get("/metrics/#{@access_token}/_values/", options)
|
72
|
+
Result.new(response)
|
73
|
+
rescue => e
|
74
|
+
Result.new(e.response)
|
75
|
+
end
|
76
|
+
|
77
|
+
# delete metrics
|
78
|
+
# @param [String] name a target metrics name
|
79
|
+
# @return [Zeus::APIClient::Result]
|
80
|
+
def delete_metrics(name)
|
81
|
+
response = delete("/metrics/#{@access_token}/#{name}/")
|
82
|
+
Result.new(response)
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
# Copyright 2016 Cisco Systems, Inc.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require 'rest-client'
|
19
|
+
|
20
|
+
# Wrapper around rest-client
|
21
|
+
module RestInterface
|
22
|
+
private
|
23
|
+
|
24
|
+
def get(path, params = {})
|
25
|
+
RestClient.get "#{@endpoint}#{path}", params: params
|
26
|
+
end
|
27
|
+
|
28
|
+
def post(path, data = {})
|
29
|
+
RestClient.post "#{@endpoint}#{path}", data.to_json,
|
30
|
+
content_type: :json, accept: :json
|
31
|
+
end
|
32
|
+
|
33
|
+
def put(path, params = {})
|
34
|
+
RestClient.put "#{@endpoint}#{path}", params: params
|
35
|
+
end
|
36
|
+
|
37
|
+
def delete(path = {})
|
38
|
+
RestClient.delete "#{@endpoint}#{path}"
|
39
|
+
end
|
40
|
+
end
|
@@ -15,41 +15,36 @@
|
|
15
15
|
require 'json'
|
16
16
|
|
17
17
|
module Zeus
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
@response = response
|
25
|
-
end
|
26
|
-
|
27
|
-
# request is successed?
|
28
|
-
def success?
|
29
|
-
@response.code == 200 || @response.code == 201
|
30
|
-
end
|
18
|
+
# Wrapper to interface with return values from the api
|
19
|
+
class Result
|
20
|
+
# constructor for Result class
|
21
|
+
def initialize(response)
|
22
|
+
@response = response
|
23
|
+
end
|
31
24
|
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
25
|
+
# request is successed?
|
26
|
+
def success?
|
27
|
+
@response.code == 200 || @response.code == 201
|
28
|
+
end
|
36
29
|
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
30
|
+
# request is error?
|
31
|
+
def error?
|
32
|
+
!success?
|
33
|
+
end
|
41
34
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
35
|
+
# response code
|
36
|
+
def code
|
37
|
+
@response.code
|
38
|
+
end
|
46
39
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
40
|
+
# response header
|
41
|
+
def header
|
42
|
+
@response.headers
|
43
|
+
end
|
51
44
|
|
45
|
+
# response body
|
46
|
+
def data
|
47
|
+
JSON.parse(@response)
|
52
48
|
end
|
53
49
|
end
|
54
50
|
end
|
55
|
-
|
@@ -0,0 +1,46 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
|
3
|
+
# Copyright 2016 Cisco Systems, Inc.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
#
|
17
|
+
|
18
|
+
require 'zeus/api_client/rest_interface'
|
19
|
+
require 'zeus/api_client/result'
|
20
|
+
|
21
|
+
module Zeus
|
22
|
+
# Interface for dealing with triggered alerts api calls
|
23
|
+
module TrigalertsInterface
|
24
|
+
include RestInterface
|
25
|
+
|
26
|
+
# get triggered alerts
|
27
|
+
# @return [Zeus::APIClient::Result]
|
28
|
+
|
29
|
+
def triggered_alerts
|
30
|
+
response = get("/trigalerts/#{@access_token}")
|
31
|
+
Result.new(response)
|
32
|
+
rescue => e
|
33
|
+
Result.new(e.response)
|
34
|
+
end
|
35
|
+
|
36
|
+
# get triggered alerts in last 24 hours
|
37
|
+
# @return [Zeus::APIClient::Result]
|
38
|
+
|
39
|
+
def triggered_alerts_last_24_hours
|
40
|
+
response = get("/trigalerts/#{@access_token}/last24")
|
41
|
+
Result.new(response)
|
42
|
+
rescue => e
|
43
|
+
Result.new(e.response)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/zeus/api_client.rb
CHANGED
@@ -12,179 +12,27 @@
|
|
12
12
|
# See the License for the specific language governing permissions and
|
13
13
|
# limitations under the License.
|
14
14
|
|
15
|
-
require '
|
16
|
-
require 'zeus/api_client/
|
17
|
-
require 'zeus/api_client/
|
15
|
+
require 'zeus/api_client/alerts_interface'
|
16
|
+
require 'zeus/api_client/metrics_interface'
|
17
|
+
require 'zeus/api_client/logs_interface'
|
18
|
+
require 'zeus/api_client/trigalerts_interface'
|
18
19
|
|
19
20
|
module Zeus
|
20
|
-
|
21
21
|
# API Client for Zeus Service
|
22
22
|
class APIClient
|
23
|
+
include AlertsInterface, MetricsInterface,
|
24
|
+
LogsInterface, TrigalertsInterface
|
23
25
|
|
24
26
|
# constructor for Zeus::APIClient
|
25
27
|
# @param [Hash] opts the options to create z Zeus::APIClient instance
|
26
28
|
# @option opts [String] :access_token The tokens for Zeus Service
|
27
29
|
# @option opts [String] :endpoint The base url for API endpoint
|
28
|
-
def initialize(opts={})
|
30
|
+
def initialize(opts = {})
|
29
31
|
@access_token = opts[:access_token]
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
# @param [String] regex a factor for filtering by metrics name
|
35
|
-
# [optional]
|
36
|
-
# [Examples] metric.name, metric.name*, metric.name.* etc.
|
37
|
-
# @param [String] from_date a factor for filtering by start timestamp
|
38
|
-
# [optional]
|
39
|
-
# @param [String] to_date a factor for filtering by end timestamp
|
40
|
-
# [optional]
|
41
|
-
# @param [String] aggregator an aggregation methods
|
42
|
-
# [optional]
|
43
|
-
# @param [String] group_interval grouping values by time interval
|
44
|
-
# [optional]
|
45
|
-
# [Examples] 1000s, 100m, 10h, 1d , 1w. Use 's' for seconds, 'm' for minutes, 'h' for hours, 'd' for days and 'w' for weeks.
|
46
|
-
# @param [String] filter_condition a factor for filtering by metrics name
|
47
|
-
# [optional]
|
48
|
-
# @param [String] limit a maximum number of returning values
|
49
|
-
# [optional]
|
50
|
-
# @return [Zeus::APIClient::Result]
|
51
|
-
def list_metrics(regex=nil, from_date=nil, to_date=nil, aggregator=nil, group_interval=nil, filter_condition=nil, limit=nil)
|
52
|
-
params = {}
|
53
|
-
params.merge!(metric_name: regex) if regex
|
54
|
-
params.merge!(from: from_date) if from_date
|
55
|
-
params.merge!(to: to_date) if to_date
|
56
|
-
params.merge!(aggregator_function: aggregator) if aggregator
|
57
|
-
params.merge!(group_interval: group_interval) if group_interval
|
58
|
-
params.merge!(filter_condition: filter_condition) if filter_condition
|
59
|
-
params.merge!(limit: limit) if limit
|
60
|
-
begin
|
61
|
-
response = get("/metrics/#{@access_token}/_names/", params)
|
62
|
-
Result.new(response)
|
63
|
-
rescue => e
|
64
|
-
Result.new(e.response)
|
65
|
-
end
|
66
|
-
end
|
67
|
-
|
68
|
-
# Send metrics list
|
69
|
-
# @param [String] name a name of metrics
|
70
|
-
# [Examples] metric.name, metric.name*, metric.name.* etc.
|
71
|
-
# @param [Array] metrics a list of hash objects
|
72
|
-
# @return [Zeus::APIClient::Result]
|
73
|
-
def send_metrics(name, metrics)
|
74
|
-
params = {metrics: metrics}
|
75
|
-
begin
|
76
|
-
response = post("/metrics/#{@access_token}/#{name}/", params)
|
77
|
-
Result.new(response)
|
78
|
-
rescue => e
|
79
|
-
Result.new(e.response)
|
80
|
-
end
|
81
|
-
end
|
82
|
-
|
83
|
-
# Get metrics
|
84
|
-
# @param [String] regex a factor for filtering by metrics name
|
85
|
-
# [optional]
|
86
|
-
# @param [String] from_date a factor for filtering by start timestamp
|
87
|
-
# [optional]
|
88
|
-
# @param [String] to_date a factor for filtering by end timestamp
|
89
|
-
# [optional]
|
90
|
-
# @param [String] aggregator an aggregation methods
|
91
|
-
# [optional]
|
92
|
-
# @param [String] group_interval grouping values by time interval
|
93
|
-
# [optional]
|
94
|
-
# [Examples] 1000s, 100m, 10h, 1d , 1w. Use 's' for seconds, 'm' for minutes, 'h' for hours, 'd' for days and 'w' for weeks.
|
95
|
-
# @param [String] filter_condition filters to be applied to metric values
|
96
|
-
# [optional]
|
97
|
-
# [Examples] "column1 > 0", "column1 > 50 AND column2 = 10".
|
98
|
-
# @param [Integer] limit a maximum number of returning values
|
99
|
-
# [optional]
|
100
|
-
# @return [Zeus::APIClient::Result]
|
101
|
-
def get_metrics(regex=nil, from_date=nil, to_date=nil, aggregator=nil, group_interval=nil, filter_condition=nil, limit=nil)
|
102
|
-
params = {}
|
103
|
-
params.merge!(metric_name: regex) if regex
|
104
|
-
params.merge!(from: from_date) if from_date
|
105
|
-
params.merge!(to: to_date) if to_date
|
106
|
-
params.merge!(aggregator_function: aggregator) if aggregator
|
107
|
-
params.merge!(group_interval: group_interval) if group_interval
|
108
|
-
params.merge!(filter_condition: filter_condition) if filter_condition
|
109
|
-
params.merge!(limit: limit) if limit
|
110
|
-
begin
|
111
|
-
response = get("/metrics/#{@access_token}/_values/", params)
|
112
|
-
Result.new(response)
|
113
|
-
rescue => e
|
114
|
-
Result.new(e.response)
|
115
|
-
end
|
116
|
-
end
|
117
|
-
|
118
|
-
# delete metrics
|
119
|
-
# @param [String] name a target metrics name
|
120
|
-
# @return [Zeus::APIClient::Result]
|
121
|
-
def delete_metrics(name)
|
122
|
-
response = delete("/metrics/#{@access_token}/#{name}/")
|
123
|
-
Result.new(response)
|
124
|
-
end
|
125
|
-
|
126
|
-
# send logs
|
127
|
-
# @param [String] name a log name
|
128
|
-
# @param [Array] logs a list of hash objects
|
129
|
-
# @return [Zeus::APIClient::Result]
|
130
|
-
def send_logs(name, logs)
|
131
|
-
params = {logs:logs}
|
132
|
-
begin
|
133
|
-
response = post("/logs/#{@access_token}/#{name}/", params)
|
134
|
-
Result.new(response)
|
135
|
-
rescue => e
|
136
|
-
Result.new(e.response)
|
137
|
-
end
|
32
|
+
# makes sure its using https
|
33
|
+
uri_parts = URI.split(opts[:endpoint])
|
34
|
+
uri_parts[0] = 'https://'
|
35
|
+
@endpoint = uri_parts.join
|
138
36
|
end
|
139
|
-
|
140
|
-
# get logs
|
141
|
-
# @param [String] name a log name
|
142
|
-
# @param [String] attribute_name Name of the attribute within the log to be searched.
|
143
|
-
# [optional]
|
144
|
-
# [Examples] if the submitted log has the format {"key1": "value1", "key2": "value2", "timestamp": 1430268064} then the value of this field can be "key1" or "key2"
|
145
|
-
# @param [String] pattern a factor for fitering by name
|
146
|
-
# [optional]
|
147
|
-
# @param [String] from_date a factor for filtering by start timestamp
|
148
|
-
# [optional]
|
149
|
-
# @param [String] to_date a factor for filtering by end timestamp
|
150
|
-
# [optional]
|
151
|
-
# @param [Integer] offset a factor for filtering by metrics name
|
152
|
-
# [optional]
|
153
|
-
# @param [Integer] limit a maximum number of returning values
|
154
|
-
# [optional]
|
155
|
-
# @return [Zeus::APIClient::Result]
|
156
|
-
def get_logs(name, attribute_name=nil, pattern=nil, from_date=nil, to_date=nil, offset=nil, limit=nil)
|
157
|
-
params = {log_name: name} # required fields
|
158
|
-
params.merge!(attribute_name: attribute_name) if attribute_name
|
159
|
-
params.merge!(pattern: pattern) if pattern
|
160
|
-
params.merge!(from: from_date) if from_date
|
161
|
-
params.merge!(to: to_date) if to_date
|
162
|
-
params.merge!(offset: offset) if offset
|
163
|
-
params.merge!(limit: limit) if limit
|
164
|
-
begin
|
165
|
-
response = get("/logs/#{@access_token}", params)
|
166
|
-
Result.new(response)
|
167
|
-
rescue => e
|
168
|
-
Result.new(e.response)
|
169
|
-
end
|
170
|
-
end
|
171
|
-
|
172
|
-
private
|
173
|
-
def get(path, params={})
|
174
|
-
RestClient.get "#{@endpoint}#{path}", {params: params}
|
175
|
-
end
|
176
|
-
|
177
|
-
def post(path, data={})
|
178
|
-
RestClient.post "#{@endpoint}#{path}", data.to_json, :content_type => :json, :accept => :json
|
179
|
-
end
|
180
|
-
|
181
|
-
def put(path, data={})
|
182
|
-
RestClient.put "#{@endpoint}#{path}", data.to_json, :content_type => :json, :accept => :json
|
183
|
-
end
|
184
|
-
|
185
|
-
def delete(path={})
|
186
|
-
RestClient.delete "#{@endpoint}#{path}"
|
187
|
-
end
|
188
|
-
|
189
37
|
end
|
190
38
|
end
|
data/zeusclient.gemspec
CHANGED
@@ -16,31 +16,36 @@
|
|
16
16
|
|
17
17
|
lib = File.expand_path('../lib', __FILE__)
|
18
18
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
19
|
-
require 'zeus/api_client'
|
19
|
+
require 'zeus/api_client/version'
|
20
20
|
|
21
21
|
Gem::Specification.new do |spec|
|
22
|
-
spec.name =
|
22
|
+
spec.name = 'zeusclient'
|
23
23
|
spec.version = Zeus::APIClient::VERSION
|
24
|
-
spec.authors = [
|
25
|
-
spec.email = [
|
24
|
+
spec.authors = ['Cisco Zeus']
|
25
|
+
spec.email = ['info@ciscozeus.io']
|
26
26
|
|
27
27
|
if spec.respond_to?(:metadata)
|
28
28
|
# spec.metadata['allowed_push_host'] = 'http://mygemserver.com'
|
29
29
|
end
|
30
30
|
|
31
|
-
spec.summary =
|
32
|
-
spec.description =
|
33
|
-
|
34
|
-
spec.
|
31
|
+
spec.summary = 'Ruby Client for Cisco Zeus'
|
32
|
+
spec.description = 'Client for Cisco Zeus. This allows users to send'\
|
33
|
+
'and receive data to and from Cisco Zeus.'
|
34
|
+
spec.homepage = 'https://github.com/CiscoZeus/ruby-zeusclient'
|
35
|
+
spec.license = 'Apache 2.0'
|
35
36
|
|
36
|
-
spec.files =
|
37
|
-
|
37
|
+
spec.files =
|
38
|
+
`git ls-files -z`.split("\x0").reject { |f|
|
39
|
+
f.match(%r{^(test|spec|features|icons)/})
|
40
|
+
}
|
41
|
+
spec.bindir = 'exe'
|
38
42
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
39
|
-
spec.require_paths = [
|
43
|
+
spec.require_paths = ['lib']
|
40
44
|
|
41
|
-
spec.
|
42
|
-
spec.
|
43
|
-
spec.add_development_dependency
|
44
|
-
spec.add_development_dependency
|
45
|
-
spec.add_development_dependency
|
45
|
+
spec.add_runtime_dependency 'rest-client', '~> 1.8.0'
|
46
|
+
spec.add_development_dependency 'bundler', '~> 1.8'
|
47
|
+
spec.add_development_dependency 'rake', '~> 10.0'
|
48
|
+
spec.add_development_dependency 'rspec', '~> 3.0.0'
|
49
|
+
spec.add_development_dependency 'yard', '~> 0.8.0'
|
50
|
+
spec.add_development_dependency 'rubocop', '~> 0.45.0'
|
46
51
|
end
|
metadata
CHANGED
@@ -1,71 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: zeusclient
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- Cisco Zeus
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
|
-
name:
|
14
|
+
name: rest-client
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 1.8.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 1.8.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
34
|
-
type: :
|
33
|
+
version: '1.8'
|
34
|
+
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '1.8'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
|
-
name:
|
42
|
+
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '10.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '10.0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version:
|
61
|
+
version: 3.0.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version:
|
68
|
+
version: 3.0.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: yard
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -80,15 +80,30 @@ dependencies:
|
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: 0.8.0
|
83
|
-
|
84
|
-
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rubocop
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 0.45.0
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 0.45.0
|
97
|
+
description: Client for Cisco Zeus. This allows users to sendand receive data to and
|
98
|
+
from Cisco Zeus.
|
85
99
|
email:
|
86
|
-
-
|
100
|
+
- info@ciscozeus.io
|
87
101
|
executables: []
|
88
102
|
extensions: []
|
89
103
|
extra_rdoc_files: []
|
90
104
|
files:
|
91
105
|
- ".gitignore"
|
106
|
+
- ".travis.yml"
|
92
107
|
- Gemfile
|
93
108
|
- Gemfile.lock
|
94
109
|
- LICENSE
|
@@ -97,7 +112,12 @@ files:
|
|
97
112
|
- bin/console
|
98
113
|
- bin/setup
|
99
114
|
- lib/zeus/api_client.rb
|
115
|
+
- lib/zeus/api_client/alerts_interface.rb
|
116
|
+
- lib/zeus/api_client/logs_interface.rb
|
117
|
+
- lib/zeus/api_client/metrics_interface.rb
|
118
|
+
- lib/zeus/api_client/rest_interface.rb
|
100
119
|
- lib/zeus/api_client/result.rb
|
120
|
+
- lib/zeus/api_client/trigalerts_interface.rb
|
101
121
|
- lib/zeus/api_client/version.rb
|
102
122
|
- zeusclient.gemspec
|
103
123
|
homepage: https://github.com/CiscoZeus/ruby-zeusclient
|
@@ -120,7 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
120
140
|
version: '0'
|
121
141
|
requirements: []
|
122
142
|
rubyforge_project:
|
123
|
-
rubygems_version: 2.
|
143
|
+
rubygems_version: 2.5.1
|
124
144
|
signing_key:
|
125
145
|
specification_version: 4
|
126
146
|
summary: Ruby Client for Cisco Zeus
|