capistrano2-zabbix 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,34 @@
1
+ require 'simplecov'
2
+ # simple coverage
3
+ module SimpleCov
4
+ # config
5
+ module Configuration
6
+ def clean_filters
7
+ @filters = []
8
+ end
9
+ end
10
+ end
11
+
12
+ SimpleCov.configure do
13
+ clean_filters
14
+ load_profile 'test_frameworks'
15
+ end
16
+
17
+ ENV['COVERAGE'] && SimpleCov.start do
18
+ add_filter '/.rvm/'
19
+ end
20
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
21
+ $LOAD_PATH.unshift(File.dirname(__FILE__))
22
+
23
+ require 'rspec'
24
+ require 'vcr'
25
+
26
+ VCR.configure do |c|
27
+ c.cassette_library_dir = 'spec/cassettes'
28
+ c.hook_into :webmock
29
+ c.configure_rspec_metadata!
30
+ end
31
+
32
+ # Requires supporting files with custom matchers and macros, etc,
33
+ # in ./support/ and its subdirectories.
34
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
@@ -0,0 +1,81 @@
1
+ require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
2
+ require_relative '../lib/zabbix_maintenance'
3
+
4
+ describe ZabbixMaintenance do
5
+ let(:zbx) do
6
+ ZabbixMaintenance.new(
7
+ 'http://192.168.56.2/zabbix/api_jsonrpc.php',
8
+ 'Admin', 'zabbix')
9
+ end
10
+
11
+ describe '.new' do
12
+ it 'fails on missing parameters' do
13
+ expect { subject.new }.to raise_error
14
+ end
15
+
16
+ it 'authenticates with correct credentials', :vcr do
17
+ lzbx = ZabbixMaintenance.new('http://192.168.56.2/zabbix/api_jsonrpc.php',
18
+ 'Admin',
19
+ 'zabbix')
20
+ expect(lzbx).to be_a ZabbixMaintenance
21
+ expect(lzbx.authenticated?).to eq(true)
22
+ end
23
+ end
24
+
25
+ describe '.create' do
26
+ context 'with valid parameters' do
27
+ it 'creates maintenance period: with correct groupid', :vcr do
28
+ res = zbx.create([2], period: 3200)
29
+ expect(res).to be_a Integer
30
+ expect(zbx.id).not_to be_nil
31
+ zbx.delete
32
+ end
33
+ end
34
+ end
35
+
36
+ describe '.delete' do
37
+ it 'removes the maintenance', :vcr do
38
+ zbx.create([2])
39
+ expect { zbx.delete }.to change { zbx.exists? }.from(true).to(false)
40
+ end
41
+ end
42
+
43
+ describe '.exists?' do
44
+ subject { zbx.exists? }
45
+ context 'when maintenance does not exist on remote server', :vcr do
46
+ it { is_expected.to eq(false) }
47
+ end
48
+ context 'when maintenance exists on remote server', :vcr do
49
+ it do
50
+ zbx.create([2])
51
+ is_expected.to eq(true)
52
+ end
53
+ end
54
+ end
55
+
56
+ describe '.authenticated?' do
57
+ context 'when authenticated', :vcr do
58
+ subject { zbx.authenticated? }
59
+ it { is_expected.to eq(true) }
60
+ end
61
+
62
+ context 'when not authenticated', :vcr do
63
+ it 'returns false' do
64
+ wrong_pw_zbx = ZabbixMaintenance.new('http://192.168.56.2/zabbix/api_jsonrpc.php',
65
+ 'wronglogin',
66
+ 'wrongpw')
67
+ expect(wrong_pw_zbx.authenticated?).to eq(false)
68
+ end
69
+ end
70
+ end
71
+
72
+ describe '.maint_id' do
73
+ context 'when maintenance exsts', :vcr do
74
+ it 'returns correct ID' do
75
+ new_id = zbx.create([2])
76
+ expect(zbx.maint_id).to eq(new_id)
77
+ zbx.delete
78
+ end
79
+ end
80
+ end
81
+ end
metadata ADDED
@@ -0,0 +1,276 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: capistrano2-zabbix
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.2
5
+ platform: ruby
6
+ authors:
7
+ - Marek Skrobacki
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-05-14 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: zabbixapi
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "<"
18
+ - !ruby/object:Gem::Version
19
+ version: 2.3.0
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 2.2.0
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - "<"
28
+ - !ruby/object:Gem::Version
29
+ version: 2.3.0
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: 2.2.0
33
+ - !ruby/object:Gem::Dependency
34
+ name: capistrano
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - "~>"
38
+ - !ruby/object:Gem::Version
39
+ version: '2.0'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - "~>"
45
+ - !ruby/object:Gem::Version
46
+ version: '2.0'
47
+ - !ruby/object:Gem::Dependency
48
+ name: rspec
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - "~>"
52
+ - !ruby/object:Gem::Version
53
+ version: '3.2'
54
+ type: :development
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - "~>"
59
+ - !ruby/object:Gem::Version
60
+ version: '3.2'
61
+ - !ruby/object:Gem::Dependency
62
+ name: yard
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '0.7'
68
+ type: :development
69
+ prerelease: false
70
+ version_requirements: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - "~>"
73
+ - !ruby/object:Gem::Version
74
+ version: '0.7'
75
+ - !ruby/object:Gem::Dependency
76
+ name: rdoc
77
+ requirement: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - "~>"
80
+ - !ruby/object:Gem::Version
81
+ version: '3.12'
82
+ type: :development
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - "~>"
87
+ - !ruby/object:Gem::Version
88
+ version: '3.12'
89
+ - !ruby/object:Gem::Dependency
90
+ name: bundler
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '1.0'
96
+ type: :development
97
+ prerelease: false
98
+ version_requirements: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - "~>"
101
+ - !ruby/object:Gem::Version
102
+ version: '1.0'
103
+ - !ruby/object:Gem::Dependency
104
+ name: jeweler
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - "~>"
108
+ - !ruby/object:Gem::Version
109
+ version: '2.0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - "~>"
115
+ - !ruby/object:Gem::Version
116
+ version: '2.0'
117
+ - !ruby/object:Gem::Dependency
118
+ name: simplecov
119
+ requirement: !ruby/object:Gem::Requirement
120
+ requirements:
121
+ - - "~>"
122
+ - !ruby/object:Gem::Version
123
+ version: '0.10'
124
+ type: :development
125
+ prerelease: false
126
+ version_requirements: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: '0.10'
131
+ - !ruby/object:Gem::Dependency
132
+ name: vcr
133
+ requirement: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: '2.9'
138
+ type: :development
139
+ prerelease: false
140
+ version_requirements: !ruby/object:Gem::Requirement
141
+ requirements:
142
+ - - "~>"
143
+ - !ruby/object:Gem::Version
144
+ version: '2.9'
145
+ - !ruby/object:Gem::Dependency
146
+ name: webmock
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '1.21'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '1.21'
159
+ - !ruby/object:Gem::Dependency
160
+ name: pry
161
+ requirement: !ruby/object:Gem::Requirement
162
+ requirements:
163
+ - - "~>"
164
+ - !ruby/object:Gem::Version
165
+ version: '0.10'
166
+ type: :development
167
+ prerelease: false
168
+ version_requirements: !ruby/object:Gem::Requirement
169
+ requirements:
170
+ - - "~>"
171
+ - !ruby/object:Gem::Version
172
+ version: '0.10'
173
+ - !ruby/object:Gem::Dependency
174
+ name: guard-rubocop
175
+ requirement: !ruby/object:Gem::Requirement
176
+ requirements:
177
+ - - "~>"
178
+ - !ruby/object:Gem::Version
179
+ version: '1.2'
180
+ type: :development
181
+ prerelease: false
182
+ version_requirements: !ruby/object:Gem::Requirement
183
+ requirements:
184
+ - - "~>"
185
+ - !ruby/object:Gem::Version
186
+ version: '1.2'
187
+ - !ruby/object:Gem::Dependency
188
+ name: guard
189
+ requirement: !ruby/object:Gem::Requirement
190
+ requirements:
191
+ - - "~>"
192
+ - !ruby/object:Gem::Version
193
+ version: '2.12'
194
+ type: :development
195
+ prerelease: false
196
+ version_requirements: !ruby/object:Gem::Requirement
197
+ requirements:
198
+ - - "~>"
199
+ - !ruby/object:Gem::Version
200
+ version: '2.12'
201
+ - !ruby/object:Gem::Dependency
202
+ name: guard-rspec
203
+ requirement: !ruby/object:Gem::Requirement
204
+ requirements:
205
+ - - "~>"
206
+ - !ruby/object:Gem::Version
207
+ version: '4.5'
208
+ type: :development
209
+ prerelease: false
210
+ version_requirements: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: '4.5'
215
+ description: "\n Tired of manually creating maintenance objects in your Zabbix monitoring\n
216
+ \ system for every new release of your application ? This gem is for you! It\n automates
217
+ creation and removal of necessary objects so that your code can be\n released without
218
+ unnecessary false alerts.\n "
219
+ email: skrobul@skrobul.com
220
+ executables: []
221
+ extensions: []
222
+ extra_rdoc_files:
223
+ - LICENSE.txt
224
+ - README.md
225
+ files:
226
+ - ".document"
227
+ - ".rspec"
228
+ - ".rubocop.yml"
229
+ - ".ruby-version"
230
+ - Gemfile
231
+ - Gemfile.lock
232
+ - Guardfile
233
+ - LICENSE.txt
234
+ - README.md
235
+ - Rakefile
236
+ - VERSION
237
+ - capistrano2-zabbix.gemspec
238
+ - lib/capistrano/tasks.rb
239
+ - lib/capistrano2-zabbix.rb
240
+ - lib/zabbix_maintenance.rb
241
+ - spec/capistrano2-zabbix_spec.rb
242
+ - spec/cassettes/ZabbixMaintenance/_authenticated_/when_authenticated/.yml
243
+ - spec/cassettes/ZabbixMaintenance/_authenticated_/when_not_authenticated/returns_false.yml
244
+ - spec/cassettes/ZabbixMaintenance/_create/with_valid_parameters/creates_maintenance_period_with_correct_groupid.yml
245
+ - spec/cassettes/ZabbixMaintenance/_delete/removes_the_maintenance.yml
246
+ - spec/cassettes/ZabbixMaintenance/_exists_/when_maintenance_does_not_exist_on_remote_server/.yml
247
+ - spec/cassettes/ZabbixMaintenance/_exists_/when_maintenance_exists_on_remote_server/.yml
248
+ - spec/cassettes/ZabbixMaintenance/_maint_id/when_maintenance_exsts/returns_correct_ID.yml
249
+ - spec/cassettes/ZabbixMaintenance/_new/authenticates_with_correct_credentials.yml
250
+ - spec/spec_helper.rb
251
+ - spec/zabbix_maintenance_spec.rb
252
+ homepage: http://github.com/skrobul/capistrano2-zabbix
253
+ licenses:
254
+ - MIT
255
+ metadata: {}
256
+ post_install_message:
257
+ rdoc_options: []
258
+ require_paths:
259
+ - lib
260
+ required_ruby_version: !ruby/object:Gem::Requirement
261
+ requirements:
262
+ - - ">="
263
+ - !ruby/object:Gem::Version
264
+ version: '0'
265
+ required_rubygems_version: !ruby/object:Gem::Requirement
266
+ requirements:
267
+ - - ">="
268
+ - !ruby/object:Gem::Version
269
+ version: '0'
270
+ requirements: []
271
+ rubyforge_project:
272
+ rubygems_version: 2.4.6
273
+ signing_key:
274
+ specification_version: 4
275
+ summary: Create maintenances in Zabbix through Capistrano deployment
276
+ test_files: []