capistrano2-zabbix 0.1.2

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.
@@ -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: []