poise-monit 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +11 -0
- data/.kitchen.yml +8 -0
- data/.travis.yml +20 -0
- data/.yardopts +7 -0
- data/Berksfile +29 -0
- data/CHANGELOG.md +5 -0
- data/Gemfile +35 -0
- data/LICENSE +201 -0
- data/README.md +242 -0
- data/Rakefile +17 -0
- data/chef/attributes/default.rb +37 -0
- data/chef/recipes/default.rb +22 -0
- data/chef/templates/monit.conf.erb +27 -0
- data/chef/templates/monit_service.conf.erb +6 -0
- data/lib/poise_monit.rb +24 -0
- data/lib/poise_monit/cheftie.rb +19 -0
- data/lib/poise_monit/error.rb +21 -0
- data/lib/poise_monit/monit_providers.rb +36 -0
- data/lib/poise_monit/monit_providers/base.rb +173 -0
- data/lib/poise_monit/monit_providers/binaries.rb +108 -0
- data/lib/poise_monit/monit_providers/dummy.rb +57 -0
- data/lib/poise_monit/monit_providers/system.rb +86 -0
- data/lib/poise_monit/resources.rb +28 -0
- data/lib/poise_monit/resources/monit.rb +238 -0
- data/lib/poise_monit/resources/monit_config.rb +111 -0
- data/lib/poise_monit/resources/monit_service.rb +194 -0
- data/lib/poise_monit/resources/monit_test.rb +127 -0
- data/lib/poise_monit/service_providers.rb +26 -0
- data/lib/poise_monit/service_providers/monit.rb +124 -0
- data/lib/poise_monit/version.rb +20 -0
- data/poise-monit.gemspec +46 -0
- data/test/cookbooks/poise-monit_test/attributes/default.rb +17 -0
- data/test/cookbooks/poise-monit_test/metadata.rb +19 -0
- data/test/cookbooks/poise-monit_test/recipes/default.rb +31 -0
- data/test/docker/docker.ca +29 -0
- data/test/docker/docker.pem +83 -0
- data/test/gemfiles/chef-12.gemfile +19 -0
- data/test/gemfiles/master.gemfile +24 -0
- data/test/integration/default/serverspec/Gemfile +19 -0
- data/test/integration/default/serverspec/default_spec.rb +67 -0
- data/test/spec/monit_providers/binaries_spec.rb +95 -0
- data/test/spec/monit_providers/dummy_spec.rb +52 -0
- data/test/spec/monit_providers/system_spec.rb +74 -0
- data/test/spec/recipe_spec.rb +40 -0
- data/test/spec/resources/monit_config_spec.rb +43 -0
- data/test/spec/resources/monit_service_spec.rb +297 -0
- data/test/spec/resources/monit_spec.rb +101 -0
- data/test/spec/service_providers/monit_spec.rb +58 -0
- data/test/spec/spec_helper.rb +19 -0
- metadata +182 -0
@@ -0,0 +1,20 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
|
18
|
+
module PoiseMonit
|
19
|
+
VERSION = '1.0.0'
|
20
|
+
end
|
data/poise-monit.gemspec
ADDED
@@ -0,0 +1,46 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
lib = File.expand_path('../lib', __FILE__)
|
18
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
19
|
+
require 'poise_monit/version'
|
20
|
+
|
21
|
+
Gem::Specification.new do |spec|
|
22
|
+
spec.name = 'poise-monit'
|
23
|
+
spec.version = PoiseMonit::VERSION
|
24
|
+
spec.authors = ['Noah Kantrowitz']
|
25
|
+
spec.email = %w{noah@coderanger.net}
|
26
|
+
spec.description = 'A Chef cookbook for managing the Monit process manager.'
|
27
|
+
spec.summary = spec.description
|
28
|
+
spec.homepage = 'https://github.com/poise/poise-monit'
|
29
|
+
spec.license = 'Apache 2.0'
|
30
|
+
|
31
|
+
spec.files = `git ls-files`.split($/)
|
32
|
+
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
33
|
+
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
34
|
+
spec.require_paths = %w{lib}
|
35
|
+
|
36
|
+
spec.add_dependency 'halite', '~> 1.1'
|
37
|
+
spec.add_dependency 'poise', '~> 2.5'
|
38
|
+
spec.add_dependency 'poise-languages', '~> 1.3'
|
39
|
+
spec.add_dependency 'poise-service', '~> 1.1'
|
40
|
+
|
41
|
+
spec.add_development_dependency 'poise-boiler', '~> 1.0'
|
42
|
+
|
43
|
+
# Leaving this hear but commented so it is clear this dependency has been
|
44
|
+
# removed on purpose. It's going to be a rare thing, so don't pull it in.
|
45
|
+
# spec.metadata['halite_dependencies'] = 'yum-epel'
|
46
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
override['poise-service']['provider'] = 'dummy'
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
name 'poise-monit_test'
|
18
|
+
depends 'poise-monit'
|
19
|
+
depends 'yum-epel'
|
@@ -0,0 +1,31 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'poise_monit/resources/monit_test'
|
18
|
+
|
19
|
+
monit_test 'monit' do
|
20
|
+
base_port 5000
|
21
|
+
end
|
22
|
+
|
23
|
+
monit_test 'system' do
|
24
|
+
base_port 6000
|
25
|
+
monit_provider :system
|
26
|
+
end
|
27
|
+
|
28
|
+
monit_test 'binaries' do
|
29
|
+
base_port 7000
|
30
|
+
monit_provider :binaries
|
31
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIFCzCCAvOgAwIBAgIJAJTJgn9tSdKmMA0GCSqGSIb3DQEBBQUAMA0xCzAJBgNV
|
3
|
+
BAMTAkNBMB4XDTE1MDExMjIwMjk0M1oXDTI1MDEwOTIwMjk0M1owDTELMAkGA1UE
|
4
|
+
AxMCQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDDPFn79sz1kQLk
|
5
|
+
rAS5z/zfCMXuE+V9IEmGXJeSprsXrv+AdjFpVDr52lpvZ36i2gixk8grcWtFqQMC
|
6
|
+
jB1c2HUe69ebC89rHSPmGCx5eRcWQPQG29fdH/nC+I34EbYadJB7PdzkvTj0KuN8
|
7
|
+
YfQj6lhwqltYiELZhuGoXcuhwZ5SC4VcJ2cdvx7oQPECLlMft8dhWyk15WGhp0jL
|
8
|
+
2H5noGajz9IFzHieoKJyh+oYA3BYCugpNBLTweNw+NuRxMwHixftvkXvlqKeZ402
|
9
|
+
4iwmIO8MG9oUxXs6D85gv6tJOau+dD1EDYH9VzYwSvLto3QBzJX0NiHKlmeq4BG2
|
10
|
+
1V3n+N1kZmMDgEtX2TDFsGHlUo77Gw0ob/w7qJU+7GAXRwWw7TPhMBLSkOlGM726
|
11
|
+
Lq9p5+7mK1YThk0PmlsSAU6/fT79PSdrYpTKr3WkBTnwd76df+Koh8fpN4BHf9L4
|
12
|
+
9bWSYc9Nb9/wp0md9xhzjjVHargpVxZmNH7bcIa8YA9tYaW+oifo2hfb7o0qhGQ1
|
13
|
+
8pES3LPUi/qtZkBYUQdh8/mkqTvRjeS446iUmYWcrHyiIzQk/cMbrAVYOi3Xnq0J
|
14
|
+
ui/r48iv7uLhpcDEQl2mENr0syygrPthVKa4gYHAZ0tK3pfe0yUGMiwS2D23xMR4
|
15
|
+
WYLWLwYSK0j1JYpEbsBNS3wZX91FIwIDAQABo24wbDAdBgNVHQ4EFgQU1j2CHhNt
|
16
|
+
sWAvDmu49yRFfHRBp9kwPQYDVR0jBDYwNIAU1j2CHhNtsWAvDmu49yRFfHRBp9mh
|
17
|
+
EaQPMA0xCzAJBgNVBAMTAkNBggkAlMmCf21J0qYwDAYDVR0TBAUwAwEB/zANBgkq
|
18
|
+
hkiG9w0BAQUFAAOCAgEAD7apefon65k3Xey7vsTb/A18m7JwBNLB48ILNcSKVgO1
|
19
|
+
iuSMCGNQ+4bNU4o9cTpRoijB3w4RY7IIaDlRcUg8FIO6kgEhjhiAjSSqJAaajOFc
|
20
|
+
urxOmi9E7xYmTDqLxEGF5/5vaG4olAi3tRgZNd2+Ue0ANZ1KMh3ZkE0nA5v1zb/g
|
21
|
+
Ax/Zs6tATdoG6umMQg8TjiKucwi9J9he+xJ5y0E77/RrdNL9aKcU47wTAwUkokpb
|
22
|
+
u1JFo1da3yZLDwQuBN5DCc4pgPgxXlfa6DnzQM1veKIhP5sa9T4sCC8S4IjGFenw
|
23
|
+
yl4xm+9AOZQeLFpczqgVJhun5P41syepnZ433hWoLXKLHd1n0ILgw9JyVF686LIt
|
24
|
+
bSar3+krmFuzdRCfet0kJR762p8jmxJOwL+KQGELGlkleJK48a+ruWIeeulZhpJ5
|
25
|
+
tF4QJxytq4aXpjeFma0Yi/0rQuNi3H1QIW5YPnFL0XlJ8Rvr8gSVc1zhkM9rsnxX
|
26
|
+
l9Pun0flP/mf/ulOa020hQUPqEYjSfdJOkLy2gZDvHRL2LRXNjGHoteGNJCq34Q1
|
27
|
+
wQerxofHn+Hpp61+Ebj+RLK0KJE+QeP3T8rL30aSSzQZQZJVI0ict5C71kiTbQnw
|
28
|
+
Z0vE6LquvFfMSqfPLt6uuCRVywBjLx19B7TuMf/DgAD+lR+1FFGKy1hO2Q1jfCY=
|
29
|
+
-----END CERTIFICATE-----
|
@@ -0,0 +1,83 @@
|
|
1
|
+
-----BEGIN CERTIFICATE-----
|
2
|
+
MIIFBDCCAuygAwIBAgIBJjANBgkqhkiG9w0BAQUFADANMQswCQYDVQQDEwJDQTAe
|
3
|
+
Fw0xNTEyMDgwMDA2NTdaFw0yNTEyMDUwMDA2NTdaMGUxJjAkBgNVBAMTHURvY2tl
|
4
|
+
ciBjbGllbnQgZm9yIHBvaXNlLW1vbml0MRcwFQYDVQQLEw5raXRjaGVuLWRvY2tl
|
5
|
+
cjEiMCAGA1UEChMZQ29kZXJhbmdlciBDb25zdWx0aW5nIExMQzCCAiIwDQYJKoZI
|
6
|
+
hvcNAQEBBQADggIPADCCAgoCggIBAJ3Tn7qE/G7odc0Pi187fhbj83FnZeW9D7DQ
|
7
|
+
qkTaJt7fvgmpSgluhWMkTTJiFKtbbqwmVeCJmjrxjrpzk0VoBs7OwkaaqyiHUOFv
|
8
|
+
C3HyjzUkjd5ldkNCPC5iZ7WzlH3r4MQXSzezvoJpeRK8EADoXLEyqm+A1ofttdpm
|
9
|
+
Dj1wAQPXXIrw9+6QPmthyBDI1rdJ6RxlTqDQ+MpKnxXo0r4CHlXSonjndEI1d7zG
|
10
|
+
Zmmk8wv5kg8YsOlPA1AbqNvoMQj2NK7IogiDl+5k9obDFfbZktZurJf7bZ+j24to
|
11
|
+
qT6sZ7rOYvjpQFmdRpRQDoJUfblivGoawDH7bK9rI+sXZYj/YR6dYwcUBTNWkfs1
|
12
|
+
uMpAsgTq7z9Hl6VG43ptjxhexIcBNDE9Tg+w1HuvYMc4iX+SKq2h2qSsVhTCcpEB
|
13
|
+
wmVz77yy9GBM6ElDDN434WIe2lPEQsrAaQcF5oBtH385KranSoTdSA/GJf18qJwj
|
14
|
+
1A6NDwvleJQNsNfVxr00gUWB5whsZDT4ztNsNqzZf+U0mEH2J3/S24j4UexHwJYR
|
15
|
+
BsdUhj+WhKM+0GfpTUtfgt4uBvQ6YN5v1u69qIZQDVWr2mlyJGNvupvbJhIvICoW
|
16
|
+
IYwCKLRd4sWVgMbtFBgIaxCoZzc08rhlw11+v3dcuz9ip4EWmq//bBV/RCwm/Ic/
|
17
|
+
m640o+GVAgMBAAGjFzAVMBMGA1UdJQQMMAoGCCsGAQUFBwMCMA0GCSqGSIb3DQEB
|
18
|
+
BQUAA4ICAQAnqOv/lcrHQc9VwT6qfTr83i978nrPe5QPnfXJwePGIrHoiQF0vddu
|
19
|
+
g4pcbrrtj7P6PqwXIZG/qe39cF961OnnbzBX+lYYwAhw/xf9ejNz8wGXhaoCOdHo
|
20
|
+
76QmSQo6tJHguSXTDs4tVa6WPRTU6yXONPCEiVztlHLTBAGzETEG4ecuzRVlZc1J
|
21
|
+
yShYRUj7vLCYvqtn3HH676IE9T4i0PQ9Cj+3jyXnIkXvycYmGXQvduDsIJLMrrMP
|
22
|
+
4I1nneVS+6gPW/Qcyx7gQy6yJ0Zee0n1Wv49M0DdSenp6jfxcLLNTRTEKTDo6Aya
|
23
|
+
pM9zmu5htYdjVGVlDymChul1z1khx4hxiSZi6Roh91GeJg6l7fmTHYKZ+E6iP23e
|
24
|
+
lUGj1C1OZZHmBCHnvYusJSqUtsKkrRJ2Q0ChnENKcTvgXO5usgFUnlWAr+YGXPsQ
|
25
|
+
Z1ynIySkrX8eMFNRMqdMdOeLOpRyBr/m/VlHSFbkPfxiytnaGKQtwr3pZEj/Pb16
|
26
|
+
u96MMZsNwrm1lSDRbaryi4QFRKCfKXBSQ3ZI+gC2joVCkaVlCDv6e1znxFwxUKBS
|
27
|
+
4Lkh7VwXespHr/jp8LQdKbZhhGlN7RWSlGDFsNWNQvwWh+8xdGjxp0r2Ek9WVnVD
|
28
|
+
SZG4HRZENb5kMSJ7uZcV745DsI00KbVLfjDsbbgA0BFDSgCGp8KNXg==
|
29
|
+
-----END CERTIFICATE-----
|
30
|
+
-----BEGIN RSA PRIVATE KEY-----
|
31
|
+
Proc-Type: 4,ENCRYPTED
|
32
|
+
DEK-Info: AES-256-CBC,E5ACFCD027C3D851A3078EE374DAAEFB
|
33
|
+
|
34
|
+
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
|
83
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
18
|
+
|
19
|
+
gem 'chef', '~> 12.0'
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
18
|
+
|
19
|
+
gem 'chef', github: 'chef/chef'
|
20
|
+
gem 'halite', github: 'poise/halite'
|
21
|
+
gem 'poise', github: 'poise/poise'
|
22
|
+
gem 'poise-boiler', github: 'poise/poise-boiler'
|
23
|
+
gem 'poise-languages', github: 'poise/poise-languages'
|
24
|
+
gem 'poise-service', github: 'poise/poise-service'
|
@@ -0,0 +1,19 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
source 'https://rubygems.org/'
|
18
|
+
|
19
|
+
gem 'poise-service-spechelper'
|
@@ -0,0 +1,67 @@
|
|
1
|
+
# #
|
2
|
+
# # Copyright 2015, Noah Kantrowitz
|
3
|
+
# #
|
4
|
+
# # Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# # you may not use this file except in compliance with the License.
|
6
|
+
# # You may obtain a copy of the License at
|
7
|
+
# #
|
8
|
+
# # http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
# #
|
10
|
+
# # Unless required by applicable law or agreed to in writing, software
|
11
|
+
# # distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# # See the License for the specific language governing permissions and
|
14
|
+
# # limitations under the License.
|
15
|
+
# #
|
16
|
+
|
17
|
+
require 'serverspec'
|
18
|
+
set :backend, :exec
|
19
|
+
|
20
|
+
require 'poise_service/spec_helper'
|
21
|
+
|
22
|
+
# Set up the shared example for monit_test.
|
23
|
+
RSpec.shared_examples 'a monit_test' do |monit_name, base_port|
|
24
|
+
let(:monit_name) { monit_name }
|
25
|
+
let(:monit_path) { File.join('', 'root', "monit_test_#{monit_name}") }
|
26
|
+
# Helper for all the file checks.
|
27
|
+
def self.assert_file(rel_path, should_exist=true, &block)
|
28
|
+
describe rel_path do
|
29
|
+
subject { file(File.join(monit_path, rel_path)) }
|
30
|
+
# Do nothing for nil.
|
31
|
+
if should_exist == true
|
32
|
+
it { is_expected.to be_a_file }
|
33
|
+
elsif should_exist == false
|
34
|
+
it { is_expected.to_not exist }
|
35
|
+
end
|
36
|
+
instance_eval(&block) if block
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# Tests for direct monit commands.
|
41
|
+
assert_file('version')
|
42
|
+
assert_file('status') do
|
43
|
+
its(:content) { is_expected.to include 'file_test' }
|
44
|
+
its(:content) { is_expected.to include 'process_test' }
|
45
|
+
end
|
46
|
+
|
47
|
+
# Tests for monit_config and monit_service.
|
48
|
+
assert_file('check')
|
49
|
+
assert_file('pid')
|
50
|
+
|
51
|
+
it_should_behave_like 'a poise_service_test', 'monit_'+monit_name, base_port, false
|
52
|
+
end
|
53
|
+
|
54
|
+
describe 'default' do
|
55
|
+
it_should_behave_like 'a monit_test', 'monit', 5000
|
56
|
+
end
|
57
|
+
|
58
|
+
# Wait at least the default daemon interval.
|
59
|
+
Kernel.sleep 120
|
60
|
+
|
61
|
+
describe 'system provider', unless: File.exist?('/no_system') do
|
62
|
+
it_should_behave_like 'a monit_test', 'system', 6000
|
63
|
+
end
|
64
|
+
|
65
|
+
describe 'binaries provider', unless: File.exist?('/no_binaries') do
|
66
|
+
it_should_behave_like 'a monit_test', 'binaries', 7000
|
67
|
+
end
|
@@ -0,0 +1,95 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2015, Noah Kantrowitz
|
3
|
+
#
|
4
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
5
|
+
# you may not use this file except in compliance with the License.
|
6
|
+
# You may obtain a copy of the License at
|
7
|
+
#
|
8
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
9
|
+
#
|
10
|
+
# Unless required by applicable law or agreed to in writing, software
|
11
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
12
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
13
|
+
# See the License for the specific language governing permissions and
|
14
|
+
# limitations under the License.
|
15
|
+
#
|
16
|
+
|
17
|
+
require 'spec_helper'
|
18
|
+
|
19
|
+
describe PoiseMonit::MonitProviders::Binaries do
|
20
|
+
let(:monit_version) { nil }
|
21
|
+
let(:chefspec_options) { {platform: 'ubuntu', version: '14.04'} }
|
22
|
+
let(:default_attributes) { {poise_monit_version: monit_version} }
|
23
|
+
let(:monit_resource) { chef_run.monit('monit') }
|
24
|
+
step_into(:monit)
|
25
|
+
recipe do
|
26
|
+
monit 'monit' do
|
27
|
+
httpd_port false
|
28
|
+
provider :binaries
|
29
|
+
version node['poise_monit_version']
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
shared_examples_for 'binaries provider' do |base, url|
|
34
|
+
it { expect(monit_resource.provider_for_action(:enable)).to be_a described_class }
|
35
|
+
it { is_expected.to install_poise_languages_static(File.join('', 'opt', base)).with(source: url) }
|
36
|
+
it { expect(monit_resource.monit_binary).to eq File.join('', 'opt', base, 'bin', 'monit') }
|
37
|
+
end
|
38
|
+
|
39
|
+
context 'with no version' do
|
40
|
+
it_behaves_like 'binaries provider', 'monit-5.15', 'https://bitbucket.org/tildeslash/monit/downloads/monit-5.15-linux-x64.tar.gz'
|
41
|
+
end # /context with no version
|
42
|
+
|
43
|
+
context 'with version 5.14' do
|
44
|
+
let(:monit_version) { '5.14' }
|
45
|
+
it_behaves_like 'binaries provider', 'monit-5.14', 'https://bitbucket.org/tildeslash/monit/downloads/monit-5.14-linux-x64.tar.gz'
|
46
|
+
end # /context with version 5.14
|
47
|
+
|
48
|
+
context 'with version 5.9 and no forced provider' do
|
49
|
+
recipe do
|
50
|
+
monit 'monit' do
|
51
|
+
httpd_port false
|
52
|
+
version '5.9'
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
it_behaves_like 'binaries provider', 'monit-5.9', 'https://bitbucket.org/tildeslash/monit/downloads/monit-5.9-linux-x64.tar.gz'
|
57
|
+
end # /context with version 5.9 and no forced provider
|
58
|
+
|
59
|
+
context 'on CentOS 7' do
|
60
|
+
let(:chefspec_options) { {platform: 'centos', version: '7.0'} }
|
61
|
+
it_behaves_like 'binaries provider', 'monit-5.15', 'https://bitbucket.org/tildeslash/monit/downloads/monit-5.15-linux-x64.tar.gz'
|
62
|
+
end # /context on CentOS 7
|
63
|
+
|
64
|
+
context 'on Fedora 18 (x86)' do
|
65
|
+
let(:chefspec_options) { {platform: 'fedora', version: '18'} }
|
66
|
+
it_behaves_like 'binaries provider', 'monit-5.15', 'https://bitbucket.org/tildeslash/monit/downloads/monit-5.15-linux-x86.tar.gz'
|
67
|
+
end # /context on Fedora 18 (x86)
|
68
|
+
|
69
|
+
context 'on AIX 6' do
|
70
|
+
let(:chefspec_options) { {platform: 'aix', version: '6.1'} }
|
71
|
+
it_behaves_like 'binaries provider', 'monit-5.15', 'https://bitbucket.org/tildeslash/monit/downloads/monit-5.15-aix6.1-ppc.tar.gz'
|
72
|
+
end # /context on AIX 6
|
73
|
+
|
74
|
+
context 'on Solaris 5.11' do
|
75
|
+
let(:chefspec_options) { {platform: 'solaris2', version: '5.11'} }
|
76
|
+
it_behaves_like 'binaries provider', 'monit-5.15', 'https://bitbucket.org/tildeslash/monit/downloads/monit-5.15-solaris-x64.tar.gz'
|
77
|
+
end # /context on Solaris 5.11
|
78
|
+
|
79
|
+
context 'on OS X 10.11.1' do
|
80
|
+
let(:chefspec_options) { {platform: 'mac_os_x', version: '10.11.1'} }
|
81
|
+
it_behaves_like 'binaries provider', 'monit-5.15', 'https://bitbucket.org/tildeslash/monit/downloads/monit-5.15-macosx-universal.tar.gz'
|
82
|
+
end # /context on OS X 10.11.1
|
83
|
+
|
84
|
+
context 'action :disable' do
|
85
|
+
recipe do
|
86
|
+
monit 'monit' do
|
87
|
+
action :disable
|
88
|
+
httpd_port false
|
89
|
+
provider :binaries
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
it { is_expected.to uninstall_poise_languages_static('/opt/monit-5.15') }
|
94
|
+
end # /context action :disable
|
95
|
+
end
|