poise-monit 1.0.1 → 1.1.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/.kitchen.yml +1 -6
- data/.travis.yml +6 -0
- data/Berksfile +2 -10
- data/CHANGELOG.md +7 -0
- data/Gemfile +2 -1
- data/README.md +5 -1
- data/Rakefile +1 -1
- data/chef/attributes/default.rb +3 -1
- data/chef/recipes/default.rb +1 -1
- data/chef/templates/monit.conf.erb +8 -0
- data/lib/poise_monit.rb +1 -1
- data/lib/poise_monit/cheftie.rb +1 -1
- data/lib/poise_monit/error.rb +1 -1
- data/lib/poise_monit/monit_providers.rb +1 -1
- data/lib/poise_monit/monit_providers/base.rb +6 -3
- data/lib/poise_monit/monit_providers/binaries.rb +10 -3
- data/lib/poise_monit/monit_providers/dummy.rb +1 -1
- data/lib/poise_monit/monit_providers/system.rb +1 -1
- data/lib/poise_monit/resources.rb +1 -1
- data/lib/poise_monit/resources/monit.rb +12 -1
- data/lib/poise_monit/resources/monit_config.rb +2 -2
- data/lib/poise_monit/resources/monit_service.rb +22 -6
- data/lib/poise_monit/resources/monit_test.rb +1 -1
- data/lib/poise_monit/service_providers.rb +1 -1
- data/lib/poise_monit/service_providers/monit.rb +1 -1
- data/lib/poise_monit/version.rb +2 -2
- data/poise-monit.gemspec +4 -3
- data/test/{cookbooks/poise-monit_test → cookbook}/attributes/default.rb +1 -1
- data/test/{cookbooks/poise-monit_test → cookbook}/metadata.rb +1 -1
- data/test/{cookbooks/poise-monit_test → cookbook}/recipes/default.rb +1 -1
- data/test/gemfiles/chef-12.1.gemfile +19 -0
- data/test/gemfiles/chef-12.2.gemfile +19 -0
- data/test/gemfiles/chef-12.3.gemfile +19 -0
- data/test/gemfiles/chef-12.4.gemfile +21 -0
- data/test/gemfiles/chef-12.5.gemfile +19 -0
- data/test/gemfiles/chef-12.6.gemfile +19 -0
- data/test/gemfiles/chef-12.gemfile +2 -2
- data/test/gemfiles/master.gemfile +2 -1
- data/test/integration/default/serverspec/Gemfile +1 -1
- data/test/integration/default/serverspec/default_spec.rb +15 -15
- data/test/spec/monit_providers/binaries_spec.rb +20 -8
- data/test/spec/monit_providers/dummy_spec.rb +1 -1
- data/test/spec/monit_providers/system_spec.rb +1 -1
- data/test/spec/recipe_spec.rb +1 -1
- data/test/spec/resources/monit_config_spec.rb +1 -1
- data/test/spec/resources/monit_service_spec.rb +32 -5
- data/test/spec/resources/monit_spec.rb +88 -1
- data/test/spec/service_providers/monit_spec.rb +1 -1
- data/test/spec/spec_helper.rb +1 -1
- metadata +38 -12
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3b8431aa0868c66f89d7de71426b2f9f1cfb3dbd
|
|
4
|
+
data.tar.gz: ae851e48383783f8ee8c18731aea27310a9c2077
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a057f285f6ab413378e3a6cc863ff11a98698ce8470f5e2b249d0cb2a0576aa28574c14bdb60cacc5d6d83d1c71d00368e12b168d675ca735a97a5454c4b3183
|
|
7
|
+
data.tar.gz: 1a8a1a3895ac84e20bb6d747af4af3724362ac4737231fcf69af42f1b51e24e3613e28c07995fff485afcfe229253a4d9a526234fa005d93220e23c87d91ec16
|
data/.kitchen.yml
CHANGED
data/.travis.yml
CHANGED
|
@@ -17,4 +17,10 @@ script:
|
|
|
17
17
|
- "./bin/rake travis"
|
|
18
18
|
gemfile:
|
|
19
19
|
- test/gemfiles/chef-12.gemfile
|
|
20
|
+
- test/gemfiles/chef-12.1.gemfile
|
|
21
|
+
- test/gemfiles/chef-12.2.gemfile
|
|
22
|
+
- test/gemfiles/chef-12.3.gemfile
|
|
23
|
+
- test/gemfiles/chef-12.4.gemfile
|
|
24
|
+
- test/gemfiles/chef-12.5.gemfile
|
|
25
|
+
- test/gemfiles/chef-12.6.gemfile
|
|
20
26
|
- test/gemfiles/master.gemfile
|
data/Berksfile
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2015, Noah Kantrowitz
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -15,15 +15,7 @@
|
|
|
15
15
|
#
|
|
16
16
|
|
|
17
17
|
source 'https://supermarket.chef.io/'
|
|
18
|
-
extension 'halite'
|
|
19
|
-
|
|
20
|
-
# Force the rebuild every time for development.
|
|
21
|
-
cookbook 'poise', gem: 'poise'
|
|
22
|
-
cookbook 'poise-languages', gem: 'poise-languages'
|
|
23
|
-
cookbook 'poise-service', gem: 'poise-service'
|
|
24
|
-
cookbook 'poise-monit', gem: 'poise-monit'
|
|
25
18
|
|
|
26
19
|
group :test do
|
|
27
|
-
cookbook '
|
|
28
|
-
cookbook 'apt'
|
|
20
|
+
cookbook 'yum-epel'
|
|
29
21
|
end
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# Poise-Monit Changelog
|
|
2
2
|
|
|
3
|
+
## v1.1.0
|
|
4
|
+
|
|
5
|
+
* Improve compatibility with Chef 12.4 and earlier.
|
|
6
|
+
* New property for `monit` resource: `demon_delay` to control start delay.
|
|
7
|
+
* More verbose output from Monit when Chef is running in debug mode.
|
|
8
|
+
* Update binaries provider for Monit 5.16.
|
|
9
|
+
|
|
3
10
|
## v1.0.1
|
|
4
11
|
|
|
5
12
|
* Small fix for compatibility with `poise-service-monit`.
|
data/Gemfile
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2015, Noah Kantrowitz
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -31,5 +31,6 @@ dev_gem 'halite'
|
|
|
31
31
|
dev_gem 'poise'
|
|
32
32
|
dev_gem 'poise-boiler'
|
|
33
33
|
dev_gem 'poise-languages'
|
|
34
|
+
dev_gem 'poise-profiler'
|
|
34
35
|
dev_gem 'poise-service'
|
|
35
36
|
|
data/README.md
CHANGED
|
@@ -88,6 +88,10 @@ end
|
|
|
88
88
|
|
|
89
89
|
* `service_name` – Name of the Monit instance. *(name attribute)*
|
|
90
90
|
* `daemon_interval` – Number of seconds between service checks. *(default: 120)*
|
|
91
|
+
* `daemon_delay` – Number of intervals to wait on startup before running service
|
|
92
|
+
checks. If unset or 0, no start delay is used. *(default: nil)*
|
|
93
|
+
* `daemon_verbose` – Run the daemon in verbose mode for debugging. *(default:
|
|
94
|
+
log_level==debug)*
|
|
91
95
|
* `event_slots` – Number of slots in the Monit event buffer. Set to 0 to disable
|
|
92
96
|
event buffering, or -1 for an unlimited queue. *(default: 100)*
|
|
93
97
|
* `httpd_port` – Port to listen on for Monit's HTTPD. If a path is specified, it
|
|
@@ -227,7 +231,7 @@ The Poise test server infrastructure is sponsored by [Rackspace](https://rackspa
|
|
|
227
231
|
|
|
228
232
|
## License
|
|
229
233
|
|
|
230
|
-
Copyright 2015, Noah Kantrowitz
|
|
234
|
+
Copyright 2015-2016, Noah Kantrowitz
|
|
231
235
|
|
|
232
236
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
233
237
|
you may not use this file except in compliance with the License.
|
data/Rakefile
CHANGED
data/chef/attributes/default.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2015, Noah Kantrowitz
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -24,6 +24,8 @@ default['poise-monit']['options'] = {}
|
|
|
24
24
|
# Attributes for recipe[poise-monit]. All values are nil because the actual
|
|
25
25
|
# defaults live in the resource.
|
|
26
26
|
default['poise-monit']['recipe']['daemon_interval'] = nil
|
|
27
|
+
default['poise-monit']['recipe']['daemon_delay'] = nil
|
|
28
|
+
default['poise-monit']['recipe']['daemon_verbose'] = nil
|
|
27
29
|
default['poise-monit']['recipe']['event_slots'] = nil
|
|
28
30
|
default['poise-monit']['recipe']['httpd_port'] = nil
|
|
29
31
|
default['poise-monit']['recipe']['httpd_password'] = nil
|
data/chef/recipes/default.rb
CHANGED
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
# Generated by Chef for <%= @new_resource.to_s %>
|
|
2
2
|
|
|
3
|
+
<%# If daemon_delay is nil/false we put the value on the command line with -d %>
|
|
4
|
+
<%- if @new_resource.daemon_delay -%>
|
|
5
|
+
SET DAEMON <%= @new_resource.daemon_interval %>
|
|
6
|
+
<%- if @new_resource.daemon_delay > 0 -%>
|
|
7
|
+
WITH START DELAY <%= @new_resource.daemon_delay %>
|
|
8
|
+
<%- end -%>
|
|
9
|
+
<%- end -%>
|
|
10
|
+
|
|
3
11
|
SET PIDFILE <%= @new_resource.pidfile %>
|
|
4
12
|
|
|
5
13
|
<%- if @new_resource.logfile -%>
|
data/lib/poise_monit.rb
CHANGED
data/lib/poise_monit/cheftie.rb
CHANGED
data/lib/poise_monit/error.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2015, Noah Kantrowitz
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -141,7 +141,7 @@ module PoiseMonit
|
|
|
141
141
|
mode '600'
|
|
142
142
|
notifies :reload, new_resource, :immediately
|
|
143
143
|
owner new_resource.owner
|
|
144
|
-
verify "#{monit_binary} -t -c
|
|
144
|
+
verify "#{monit_binary} -t -c #{Poise::Backports::VERIFY_PATH}" if defined?(verify)
|
|
145
145
|
end
|
|
146
146
|
end
|
|
147
147
|
|
|
@@ -163,7 +163,10 @@ module PoiseMonit
|
|
|
163
163
|
|
|
164
164
|
# Configure properties for Monit service resource.
|
|
165
165
|
def service_options(r)
|
|
166
|
-
|
|
166
|
+
cmd = "#{monit_binary} -c #{new_resource.config_path} -I"
|
|
167
|
+
cmd << " -d #{new_resource.daemon_interval}" unless new_resource.daemon_delay
|
|
168
|
+
cmd << ' -v' if new_resource.daemon_verbose
|
|
169
|
+
r.command(cmd)
|
|
167
170
|
r.provider_no_auto('monit')
|
|
168
171
|
r.user(new_resource.owner)
|
|
169
172
|
end
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2015, Noah Kantrowitz
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -30,7 +30,7 @@ module PoiseMonit
|
|
|
30
30
|
provides(:binaries)
|
|
31
31
|
include PoiseLanguages::Static(
|
|
32
32
|
name: 'monit',
|
|
33
|
-
versions: %w{5.
|
|
33
|
+
versions: %w{5.16},
|
|
34
34
|
machines: %w{aix5.3-ppc aix6.1-ppc freebsd-x64 freebsd-x86 linux-x64 linux-x86 linux-arm macosx-universal openbsd-x64 openbsd-x86 solaris-sparc solaris-x64},
|
|
35
35
|
url: 'https://bitbucket.org/tildeslash/monit/downloads/monit-%{version}-%{machine_label}.tar.gz'
|
|
36
36
|
)
|
|
@@ -70,7 +70,14 @@ module PoiseMonit
|
|
|
70
70
|
raw_kernel = (node['kernel']['name'] || 'unknown').downcase
|
|
71
71
|
kernel = case raw_kernel
|
|
72
72
|
when 'aix'
|
|
73
|
-
"aix#{node['kernel']['version']}.#{node['kernel']['release']}"
|
|
73
|
+
# Less correct than "aix#{node['kernel']['version']}.#{node['kernel']['release']}"
|
|
74
|
+
# but more likely to work on more systems. Notably we think the 6.1
|
|
75
|
+
# build should work on AIX 7 just fine.
|
|
76
|
+
if node['kernel']['version'].to_i <= 5
|
|
77
|
+
'aix5.3'
|
|
78
|
+
else
|
|
79
|
+
'aix6.1'
|
|
80
|
+
end
|
|
74
81
|
when 'sunos'
|
|
75
82
|
'solaris'
|
|
76
83
|
when 'darwin'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2015, Noah Kantrowitz
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -52,6 +52,17 @@ module PoiseMonit
|
|
|
52
52
|
# Number of seconds between service checks. Defaults to 120 seconds.
|
|
53
53
|
# @return [Integer]
|
|
54
54
|
attribute(:daemon_interval, kind_of: Integer, default: 120)
|
|
55
|
+
# @!attribute daemon_delay
|
|
56
|
+
# Number of intervals to wait on startup before running service checks.
|
|
57
|
+
# If unset or 0, no start delay is used. Defaults to nil for backwards
|
|
58
|
+
# compat.
|
|
59
|
+
# @return [Integer, nil, false]
|
|
60
|
+
attribute(:daemon_delay, kind_of: [Integer, NilClass, FalseClass], default: nil)
|
|
61
|
+
# @!attribute daemon_verbose
|
|
62
|
+
# Run the daemon in verbose mode for debugging. Defaults to true if
|
|
63
|
+
# Chef is run with debug logging.
|
|
64
|
+
# @return [Boolean]
|
|
65
|
+
attribute(:daemon_verbose, equal_to: [true, false], default: lazy { Chef::Log.level == :debug })
|
|
55
66
|
# @!attribute event_slots
|
|
56
67
|
# Number of slots in the Monit event buffer. Set to 0 to disable
|
|
57
68
|
# event buffering, or -1 for an unlimited queue. Defaults to 100.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2015, Noah Kantrowitz
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -93,7 +93,7 @@ module PoiseMonit
|
|
|
93
93
|
mode '600'
|
|
94
94
|
notifies :reload, new_resource.parent, :immediately
|
|
95
95
|
owner new_resource.parent.owner if new_resource.parent.owner
|
|
96
|
-
verify "#{new_resource.parent.monit_binary} -t -c
|
|
96
|
+
verify "#{new_resource.parent.monit_binary} -t -c #{Poise::Backports::VERIFY_PATH}" if defined?(verify)
|
|
97
97
|
end
|
|
98
98
|
end
|
|
99
99
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2015, Noah Kantrowitz
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -51,7 +51,16 @@ module PoiseMonit
|
|
|
51
51
|
provides(:monit_service)
|
|
52
52
|
actions(:enable, :disable, :start, :stop, :restart)
|
|
53
53
|
|
|
54
|
+
# @!attribute monit_config_path
|
|
55
|
+
# Optional path to a config file that corresponds to this service to
|
|
56
|
+
# speed up some idempotence checks.
|
|
57
|
+
# @return [String, nil, false]
|
|
54
58
|
attribute(:monit_config_path, kind_of: [String, NilClass, FalseClass])
|
|
59
|
+
# @!attribute monit_verbose
|
|
60
|
+
# Run monit commands in verbose mode for debugging. Defaults to true
|
|
61
|
+
# if Chef is run with debug logging.
|
|
62
|
+
# @return [Boolean]
|
|
63
|
+
attribute(:monit_verbose, equal_to: [true, false], default: lazy { Chef::Log.level == :debug })
|
|
55
64
|
|
|
56
65
|
# Unsupported properties.
|
|
57
66
|
%w{pattern reload_command priority timeout parameters run_levels}.each do |name|
|
|
@@ -76,10 +85,12 @@ module PoiseMonit
|
|
|
76
85
|
provides(:monit_service)
|
|
77
86
|
|
|
78
87
|
def load_current_resource
|
|
79
|
-
super
|
|
88
|
+
# Only call super if it won't ruin things. Chef 12.4 and earlier didn't
|
|
89
|
+
# declare Provider::Service#load_current_resource.
|
|
90
|
+
super if self.class.superclass.instance_method(:load_current_resource).owner != Chef::Provider
|
|
80
91
|
@current_resource = MonitService::Resource.new(new_resource.name).tap do |r|
|
|
81
92
|
r.service_name(new_resource.service_name)
|
|
82
|
-
if new_resource.monit_config_path && !::File.exist?(new_resource.monit_config_path)
|
|
93
|
+
if defined?(new_resource.monit_config_path) && new_resource.monit_config_path && !::File.exist?(new_resource.monit_config_path)
|
|
83
94
|
Chef::Log.debug("[#{new_resource}] Config file #{new_resource.monit_config_path} does not exist, not checking status")
|
|
84
95
|
r.enabled(false)
|
|
85
96
|
r.running(false)
|
|
@@ -119,7 +130,7 @@ module PoiseMonit
|
|
|
119
130
|
end
|
|
120
131
|
|
|
121
132
|
def disable_service
|
|
122
|
-
if new_resource.monit_config_path && !::File.exist?(new_resource.monit_config_path)
|
|
133
|
+
if defined?(new_resource.monit_config_path) && new_resource.monit_config_path && !::File.exist?(new_resource.monit_config_path)
|
|
123
134
|
Chef::Log.debug("[#{new_resource}] Config file #{new_resource.monit_config_path} does not exist, not trying to unmonitor")
|
|
124
135
|
return
|
|
125
136
|
end
|
|
@@ -132,11 +143,14 @@ module PoiseMonit
|
|
|
132
143
|
|
|
133
144
|
def start_service
|
|
134
145
|
monit_shell_out!('start')
|
|
146
|
+
# No this isn't a typo, it's a ragefix to make older Monit (like
|
|
147
|
+
# Ubuntu' packages) always start things even right after an enable
|
|
148
|
+
# action. I am really unclear why running start twice fixes this :-(
|
|
135
149
|
monit_shell_out!('start')
|
|
136
150
|
end
|
|
137
151
|
|
|
138
152
|
def stop_service
|
|
139
|
-
if new_resource.monit_config_path && !::File.exist?(new_resource.monit_config_path)
|
|
153
|
+
if defined?(new_resource.monit_config_path) && new_resource.monit_config_path && !::File.exist?(new_resource.monit_config_path)
|
|
140
154
|
Chef::Log.debug("[#{new_resource}] Config file #{new_resource.monit_config_path} does not exist, not trying to stop")
|
|
141
155
|
return
|
|
142
156
|
end
|
|
@@ -163,7 +177,9 @@ module PoiseMonit
|
|
|
163
177
|
|
|
164
178
|
def monit_shell_out!(monit_cmd, timeout: DEFAULT_TIMEOUT, wait: DEFAULT_WAIT, &block)
|
|
165
179
|
while true
|
|
166
|
-
cmd_args = [new_resource.parent.monit_binary
|
|
180
|
+
cmd_args = [new_resource.parent.monit_binary]
|
|
181
|
+
cmd_args << '-v' if (defined?(new_resource.monit_verbose) && new_resource.monit_verbose) || Chef::Log.level == :debug
|
|
182
|
+
cmd_args.concat(['-c', new_resource.parent.config_path, monit_cmd, new_resource.service_name])
|
|
167
183
|
Chef::Log.debug("[#{new_resource}] Running #{cmd_args.join(' ')}")
|
|
168
184
|
cmd = poise_shell_out(cmd_args, user: new_resource.parent.owner, group: new_resource.parent.group)
|
|
169
185
|
error = block ? block.call(cmd) : cmd.error?
|
data/lib/poise_monit/version.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2015, Noah Kantrowitz
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -16,5 +16,5 @@
|
|
|
16
16
|
|
|
17
17
|
|
|
18
18
|
module PoiseMonit
|
|
19
|
-
VERSION = '1.0
|
|
19
|
+
VERSION = '1.1.0'
|
|
20
20
|
end
|
data/poise-monit.gemspec
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2015, Noah Kantrowitz
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -34,11 +34,12 @@ Gem::Specification.new do |spec|
|
|
|
34
34
|
spec.require_paths = %w{lib}
|
|
35
35
|
|
|
36
36
|
spec.add_dependency 'halite', '~> 1.1'
|
|
37
|
-
spec.add_dependency 'poise', '~> 2.
|
|
37
|
+
spec.add_dependency 'poise', '~> 2.6'
|
|
38
38
|
spec.add_dependency 'poise-languages', '~> 1.3'
|
|
39
39
|
spec.add_dependency 'poise-service', '~> 1.1'
|
|
40
40
|
|
|
41
|
-
spec.add_development_dependency '
|
|
41
|
+
spec.add_development_dependency 'berkshelf', '~> 4.0'
|
|
42
|
+
spec.add_development_dependency 'poise-boiler', '~> 1.6'
|
|
42
43
|
|
|
43
44
|
# Leaving this hear but commented so it is clear this dependency has been
|
|
44
45
|
# removed on purpose. It's going to be a rare thing, so don't pull it in.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright 2015-2016, 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.1.2'
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright 2015-2016, 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.2.1'
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright 2015-2016, 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.3.0'
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright 2015-2016, 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.4.3'
|
|
20
|
+
# Pending https://github.com/berkshelf/ridley/pull/335
|
|
21
|
+
gem 'ridley', '4.4.1'
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright 2015-2016, 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.5.1'
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#
|
|
2
|
+
# Copyright 2015-2016, 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.6.0'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2015, Noah Kantrowitz
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -16,4 +16,4 @@
|
|
|
16
16
|
|
|
17
17
|
eval_gemfile File.expand_path('../../../Gemfile', __FILE__)
|
|
18
18
|
|
|
19
|
-
gem 'chef', '~> 12.
|
|
19
|
+
gem 'chef', '~> 12.6'
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2015, Noah Kantrowitz
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -21,4 +21,5 @@ gem 'halite', github: 'poise/halite'
|
|
|
21
21
|
gem 'poise', github: 'poise/poise'
|
|
22
22
|
gem 'poise-boiler', github: 'poise/poise-boiler'
|
|
23
23
|
gem 'poise-languages', github: 'poise/poise-languages'
|
|
24
|
+
gem 'poise-profiler', github: 'poise/poise-profiler'
|
|
24
25
|
gem 'poise-service', github: 'poise/poise-service'
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
#
|
|
2
|
-
#
|
|
3
|
-
#
|
|
4
|
-
#
|
|
5
|
-
#
|
|
6
|
-
#
|
|
7
|
-
#
|
|
8
|
-
#
|
|
9
|
-
#
|
|
10
|
-
#
|
|
11
|
-
#
|
|
12
|
-
#
|
|
13
|
-
#
|
|
14
|
-
#
|
|
15
|
-
#
|
|
1
|
+
#
|
|
2
|
+
# Copyright 2015-2016, 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
16
|
|
|
17
17
|
require 'serverspec'
|
|
18
18
|
set :backend, :exec
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2015, Noah Kantrowitz
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -37,7 +37,7 @@ describe PoiseMonit::MonitProviders::Binaries do
|
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
context 'with no version' do
|
|
40
|
-
it_behaves_like 'binaries provider', 'monit-5.
|
|
40
|
+
it_behaves_like 'binaries provider', 'monit-5.16', 'https://bitbucket.org/tildeslash/monit/downloads/monit-5.16-linux-x64.tar.gz'
|
|
41
41
|
end # /context with no version
|
|
42
42
|
|
|
43
43
|
context 'with version 5.14' do
|
|
@@ -58,27 +58,39 @@ describe PoiseMonit::MonitProviders::Binaries do
|
|
|
58
58
|
|
|
59
59
|
context 'on CentOS 7' do
|
|
60
60
|
let(:chefspec_options) { {platform: 'centos', version: '7.0'} }
|
|
61
|
-
it_behaves_like 'binaries provider', 'monit-5.
|
|
61
|
+
it_behaves_like 'binaries provider', 'monit-5.16', 'https://bitbucket.org/tildeslash/monit/downloads/monit-5.16-linux-x64.tar.gz'
|
|
62
62
|
end # /context on CentOS 7
|
|
63
63
|
|
|
64
64
|
context 'on Fedora 18 (x86)' do
|
|
65
65
|
let(:chefspec_options) { {platform: 'fedora', version: '18'} }
|
|
66
|
-
it_behaves_like 'binaries provider', 'monit-5.
|
|
66
|
+
it_behaves_like 'binaries provider', 'monit-5.16', 'https://bitbucket.org/tildeslash/monit/downloads/monit-5.16-linux-x86.tar.gz'
|
|
67
67
|
end # /context on Fedora 18 (x86)
|
|
68
68
|
|
|
69
|
+
context 'on AIX 5' do
|
|
70
|
+
# Fauxhai doesn't have AIX 5 data, so fake it.
|
|
71
|
+
let(:chefspec_options) { {platform: 'aix', version: '6.1'} }
|
|
72
|
+
before { chef_runner.node.automatic['kernel']['version'] = 5 }
|
|
73
|
+
it_behaves_like 'binaries provider', 'monit-5.16', 'https://bitbucket.org/tildeslash/monit/downloads/monit-5.16-aix5.3-ppc.tar.gz'
|
|
74
|
+
end # /context on AIX 5
|
|
75
|
+
|
|
69
76
|
context 'on AIX 6' do
|
|
70
77
|
let(:chefspec_options) { {platform: 'aix', version: '6.1'} }
|
|
71
|
-
it_behaves_like 'binaries provider', 'monit-5.
|
|
78
|
+
it_behaves_like 'binaries provider', 'monit-5.16', 'https://bitbucket.org/tildeslash/monit/downloads/monit-5.16-aix6.1-ppc.tar.gz'
|
|
72
79
|
end # /context on AIX 6
|
|
73
80
|
|
|
81
|
+
context 'on AIX 7' do
|
|
82
|
+
let(:chefspec_options) { {platform: 'aix', version: '7.1'} }
|
|
83
|
+
it_behaves_like 'binaries provider', 'monit-5.16', 'https://bitbucket.org/tildeslash/monit/downloads/monit-5.16-aix6.1-ppc.tar.gz'
|
|
84
|
+
end # /context on AIX 7
|
|
85
|
+
|
|
74
86
|
context 'on Solaris 5.11' do
|
|
75
87
|
let(:chefspec_options) { {platform: 'solaris2', version: '5.11'} }
|
|
76
|
-
it_behaves_like 'binaries provider', 'monit-5.
|
|
88
|
+
it_behaves_like 'binaries provider', 'monit-5.16', 'https://bitbucket.org/tildeslash/monit/downloads/monit-5.16-solaris-x64.tar.gz'
|
|
77
89
|
end # /context on Solaris 5.11
|
|
78
90
|
|
|
79
91
|
context 'on OS X 10.11.1' do
|
|
80
92
|
let(:chefspec_options) { {platform: 'mac_os_x', version: '10.11.1'} }
|
|
81
|
-
it_behaves_like 'binaries provider', 'monit-5.
|
|
93
|
+
it_behaves_like 'binaries provider', 'monit-5.16', 'https://bitbucket.org/tildeslash/monit/downloads/monit-5.16-macosx-universal.tar.gz'
|
|
82
94
|
end # /context on OS X 10.11.1
|
|
83
95
|
|
|
84
96
|
context 'action :disable' do
|
|
@@ -90,6 +102,6 @@ describe PoiseMonit::MonitProviders::Binaries do
|
|
|
90
102
|
end
|
|
91
103
|
end
|
|
92
104
|
|
|
93
|
-
it { is_expected.to uninstall_poise_languages_static('/opt/monit-5.
|
|
105
|
+
it { is_expected.to uninstall_poise_languages_static('/opt/monit-5.16') }
|
|
94
106
|
end # /context action :disable
|
|
95
107
|
end
|
data/test/spec/recipe_spec.rb
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2015, Noah Kantrowitz
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -24,6 +24,8 @@ describe PoiseMonit::Resources::MonitService do
|
|
|
24
24
|
let(:test_provider) { test_resource.provider_for_action(action) }
|
|
25
25
|
subject { test_provider.run_action }
|
|
26
26
|
before do
|
|
27
|
+
# Force the default log level because it alters the tests.
|
|
28
|
+
chefspec_options.delete(:log_level)
|
|
27
29
|
# Give us some files to work with that won't hit the disk.
|
|
28
30
|
allow(File).to receive(:exist?).and_call_original
|
|
29
31
|
allow(File).to receive(:exist?).with('/exists').and_return(true)
|
|
@@ -34,19 +36,19 @@ describe PoiseMonit::Resources::MonitService do
|
|
|
34
36
|
# Status for simple cases.
|
|
35
37
|
stub_status(status) if status
|
|
36
38
|
end
|
|
37
|
-
def stub_cmd(cmd, error: false, stdout: '', stderr: '', &block)
|
|
39
|
+
def stub_cmd(cmd, error: false, stdout: '', stderr: '', verbose: false, &block)
|
|
38
40
|
fake_cmd = double("output of monit #{cmd}", error?: error, stdout: stdout, stderr: stderr)
|
|
39
41
|
if error
|
|
40
42
|
allow(fake_cmd).to receive(:error!).and_raise(Mixlib::ShellOut::ShellCommandFailed)
|
|
41
43
|
else
|
|
42
44
|
allow(fake_cmd).to receive(:error!)
|
|
43
45
|
end
|
|
44
|
-
matcher = receive(:poise_shell_out).with(['/bin/monit', '-c', '/etc/monit/monitrc', cmd, 'myapp'], user: nil, group: nil).and_return(fake_cmd).ordered
|
|
46
|
+
matcher = receive(:poise_shell_out).with(['/bin/monit', (verbose ? '-v' : []), '-c', '/etc/monit/monitrc', cmd, 'myapp'].flatten, user: nil, group: nil).and_return(fake_cmd).ordered
|
|
45
47
|
matcher = block.call(matcher) if block
|
|
46
48
|
expect(test_provider).to matcher
|
|
47
49
|
end
|
|
48
|
-
def stub_status(status)
|
|
49
|
-
stub_cmd('status', stdout: "Process 'myapp'\n status #{status}")
|
|
50
|
+
def stub_status(status, verbose: false)
|
|
51
|
+
stub_cmd('status', stdout: "Process 'myapp'\n status #{status}", verbose: verbose)
|
|
50
52
|
end
|
|
51
53
|
|
|
52
54
|
describe 'action :enable' do
|
|
@@ -67,6 +69,31 @@ describe PoiseMonit::Resources::MonitService do
|
|
|
67
69
|
subject
|
|
68
70
|
end
|
|
69
71
|
end # /context with status Running
|
|
72
|
+
|
|
73
|
+
context 'with monit_verbose' do
|
|
74
|
+
before do
|
|
75
|
+
test_resource.monit_verbose(true)
|
|
76
|
+
end
|
|
77
|
+
it do
|
|
78
|
+
stub_status('Not monitored', verbose: true)
|
|
79
|
+
stub_cmd('monitor', verbose: true)
|
|
80
|
+
subject
|
|
81
|
+
end
|
|
82
|
+
end # /context with monit_verbose
|
|
83
|
+
|
|
84
|
+
context 'with log_level debug' do
|
|
85
|
+
before do
|
|
86
|
+
chefspec_options[:log_level] = :debug
|
|
87
|
+
# Don't actually show debug or info logs.
|
|
88
|
+
allow(Chef::Log).to receive(:info)
|
|
89
|
+
allow(Chef::Log).to receive(:debug)
|
|
90
|
+
end
|
|
91
|
+
it do
|
|
92
|
+
stub_status('Not monitored', verbose: true)
|
|
93
|
+
stub_cmd('monitor', verbose: true)
|
|
94
|
+
subject
|
|
95
|
+
end
|
|
96
|
+
end # /context with log_level debug
|
|
70
97
|
end # /describe action :enable
|
|
71
98
|
|
|
72
99
|
describe 'action :disable' do
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#
|
|
2
|
-
# Copyright 2015, Noah Kantrowitz
|
|
2
|
+
# Copyright 2015-2016, Noah Kantrowitz
|
|
3
3
|
#
|
|
4
4
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
5
|
# you may not use this file except in compliance with the License.
|
|
@@ -21,9 +21,14 @@ describe PoiseMonit::Resources::Monit do
|
|
|
21
21
|
let(:monit_version) { '5.15' }
|
|
22
22
|
let(:monit_version_cmd) { double('monit_version_cmd', error?: false, stdout: "This is Monit version #{monit_version}\nCopyright (C) 2001-2013 Tildeslash Ltd. All Rights Reserved.\n") }
|
|
23
23
|
before do
|
|
24
|
+
# Force the default log level because it alters the tests.
|
|
25
|
+
chefspec_options.delete(:log_level)
|
|
24
26
|
allow_any_instance_of(described_class::Resource).to receive(:shell_out).and_call_original
|
|
25
27
|
allow_any_instance_of(described_class::Resource).to receive(:shell_out).with(%w{/bin/monit -V}).and_return(monit_version_cmd)
|
|
26
28
|
end
|
|
29
|
+
def service_resource(name)
|
|
30
|
+
chef_run.monit(name).provider_for_action(:enable).send(:service_resource)
|
|
31
|
+
end
|
|
27
32
|
|
|
28
33
|
context 'action :enable' do
|
|
29
34
|
recipe do
|
|
@@ -33,6 +38,7 @@ describe PoiseMonit::Resources::Monit do
|
|
|
33
38
|
it { is_expected.to render_file('/etc/monit/monitrc').with_content(<<-EOH) }
|
|
34
39
|
# Generated by Chef for monit[monit]
|
|
35
40
|
|
|
41
|
+
|
|
36
42
|
SET PIDFILE /var/run/monit_real.pid
|
|
37
43
|
|
|
38
44
|
SET LOGFILE /var/log/monit.log
|
|
@@ -50,6 +56,7 @@ EOH
|
|
|
50
56
|
it { is_expected.to create_directory('/etc/monit/conf.d') }
|
|
51
57
|
it { is_expected.to create_directory('/var/lib/monit') }
|
|
52
58
|
it { is_expected.to create_directory('/var/lib/monit/events') }
|
|
59
|
+
it { expect(service_resource('monit').command).to eq '/bin/monit -c /etc/monit/monitrc -I -d 120' }
|
|
53
60
|
|
|
54
61
|
context 'with a different name' do
|
|
55
62
|
recipe do
|
|
@@ -59,6 +66,7 @@ EOH
|
|
|
59
66
|
it { is_expected.to render_file('/etc/monit-other/monitrc').with_content(<<-EOH) }
|
|
60
67
|
# Generated by Chef for monit[other]
|
|
61
68
|
|
|
69
|
+
|
|
62
70
|
SET PIDFILE /var/run/monit-other_real.pid
|
|
63
71
|
|
|
64
72
|
SET LOGFILE /var/log/monit-other.log
|
|
@@ -76,8 +84,66 @@ EOH
|
|
|
76
84
|
it { is_expected.to create_directory('/etc/monit-other/conf.d') }
|
|
77
85
|
it { is_expected.to create_directory('/var/lib/monit-other') }
|
|
78
86
|
it { is_expected.to create_directory('/var/lib/monit-other/events') }
|
|
87
|
+
it { expect(service_resource('other').command).to eq '/bin/monit -c /etc/monit-other/monitrc -I -d 120' }
|
|
79
88
|
end # /context with a different name
|
|
80
89
|
|
|
90
|
+
context 'with daemon_delay 0' do
|
|
91
|
+
recipe do
|
|
92
|
+
monit 'monit' do
|
|
93
|
+
daemon_delay 0
|
|
94
|
+
end
|
|
95
|
+
end
|
|
96
|
+
|
|
97
|
+
it { is_expected.to render_file('/etc/monit/monitrc').with_content(<<-EOH) }
|
|
98
|
+
# Generated by Chef for monit[monit]
|
|
99
|
+
|
|
100
|
+
SET DAEMON 120
|
|
101
|
+
|
|
102
|
+
SET PIDFILE /var/run/monit_real.pid
|
|
103
|
+
|
|
104
|
+
SET LOGFILE /var/log/monit.log
|
|
105
|
+
|
|
106
|
+
SET IDFILE /var/lib/monit/id
|
|
107
|
+
SET STATEFILE /var/lib/monit/state
|
|
108
|
+
SET EVENTQUEUE BASEDIR /var/lib/monit/events SLOTS 100
|
|
109
|
+
|
|
110
|
+
SET HTTPD UNIXSOCKET /var/run/monit.sock
|
|
111
|
+
ALLOW 0.0.0.0/0
|
|
112
|
+
|
|
113
|
+
INCLUDE /etc/monit/conf.d/*
|
|
114
|
+
EOH
|
|
115
|
+
it { expect(service_resource('monit').command).to eq '/bin/monit -c /etc/monit/monitrc -I' }
|
|
116
|
+
end # /context with daemon_delay 0
|
|
117
|
+
|
|
118
|
+
context 'with daemon_delay 5' do
|
|
119
|
+
recipe do
|
|
120
|
+
monit 'monit' do
|
|
121
|
+
daemon_delay 5
|
|
122
|
+
end
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
it { is_expected.to render_file('/etc/monit/monitrc').with_content(<<-EOH) }
|
|
126
|
+
# Generated by Chef for monit[monit]
|
|
127
|
+
|
|
128
|
+
SET DAEMON 120
|
|
129
|
+
WITH START DELAY 5
|
|
130
|
+
|
|
131
|
+
SET PIDFILE /var/run/monit_real.pid
|
|
132
|
+
|
|
133
|
+
SET LOGFILE /var/log/monit.log
|
|
134
|
+
|
|
135
|
+
SET IDFILE /var/lib/monit/id
|
|
136
|
+
SET STATEFILE /var/lib/monit/state
|
|
137
|
+
SET EVENTQUEUE BASEDIR /var/lib/monit/events SLOTS 100
|
|
138
|
+
|
|
139
|
+
SET HTTPD UNIXSOCKET /var/run/monit.sock
|
|
140
|
+
ALLOW 0.0.0.0/0
|
|
141
|
+
|
|
142
|
+
INCLUDE /etc/monit/conf.d/*
|
|
143
|
+
EOH
|
|
144
|
+
it { expect(service_resource('monit').command).to eq '/bin/monit -c /etc/monit/monitrc -I' }
|
|
145
|
+
end # /context with daemon_delay 5
|
|
146
|
+
|
|
81
147
|
context 'with 0 events slots' do
|
|
82
148
|
recipe do
|
|
83
149
|
monit 'monit' do
|
|
@@ -97,5 +163,26 @@ EOH
|
|
|
97
163
|
|
|
98
164
|
it { is_expected.to render_file('/etc/monit/monitrc').with_content("SET EVENTQUEUE BASEDIR /var/lib/monit/events\n") }
|
|
99
165
|
end # /context with -1 events slots
|
|
166
|
+
|
|
167
|
+
context 'with daemon_verbose' do
|
|
168
|
+
recipe do
|
|
169
|
+
monit 'monit' do
|
|
170
|
+
daemon_verbose true
|
|
171
|
+
end
|
|
172
|
+
end
|
|
173
|
+
|
|
174
|
+
it { expect(service_resource('monit').command).to eq '/bin/monit -c /etc/monit/monitrc -I -d 120 -v' }
|
|
175
|
+
end # /context with daemon_verbose
|
|
176
|
+
|
|
177
|
+
context 'with log_level debug' do
|
|
178
|
+
before do
|
|
179
|
+
chefspec_options[:log_level] = :debug
|
|
180
|
+
# Don't actually show debug or info logs.
|
|
181
|
+
allow(Chef::Log).to receive(:info)
|
|
182
|
+
allow(Chef::Log).to receive(:debug)
|
|
183
|
+
end
|
|
184
|
+
|
|
185
|
+
it { expect(service_resource('monit').command).to eq '/bin/monit -c /etc/monit/monitrc -I -d 120 -v' }
|
|
186
|
+
end # /context with log_level debug
|
|
100
187
|
end # /context action :enable
|
|
101
188
|
end
|
data/test/spec/spec_helper.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: poise-monit
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0
|
|
4
|
+
version: 1.1.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Noah Kantrowitz
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-02-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: halite
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - "~>"
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: '2.
|
|
33
|
+
version: '2.6'
|
|
34
34
|
type: :runtime
|
|
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: '2.
|
|
40
|
+
version: '2.6'
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: poise-languages
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -66,20 +66,34 @@ dependencies:
|
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '1.1'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: berkshelf
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '4.0'
|
|
76
|
+
type: :development
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '4.0'
|
|
69
83
|
- !ruby/object:Gem::Dependency
|
|
70
84
|
name: poise-boiler
|
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
|
72
86
|
requirements:
|
|
73
87
|
- - "~>"
|
|
74
88
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '1.
|
|
89
|
+
version: '1.6'
|
|
76
90
|
type: :development
|
|
77
91
|
prerelease: false
|
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
93
|
requirements:
|
|
80
94
|
- - "~>"
|
|
81
95
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '1.
|
|
96
|
+
version: '1.6'
|
|
83
97
|
description: A Chef cookbook for managing the Monit process manager.
|
|
84
98
|
email:
|
|
85
99
|
- noah@coderanger.net
|
|
@@ -118,11 +132,17 @@ files:
|
|
|
118
132
|
- lib/poise_monit/service_providers/monit.rb
|
|
119
133
|
- lib/poise_monit/version.rb
|
|
120
134
|
- poise-monit.gemspec
|
|
121
|
-
- test/
|
|
122
|
-
- test/
|
|
123
|
-
- test/
|
|
135
|
+
- test/cookbook/attributes/default.rb
|
|
136
|
+
- test/cookbook/metadata.rb
|
|
137
|
+
- test/cookbook/recipes/default.rb
|
|
124
138
|
- test/docker/docker.ca
|
|
125
139
|
- test/docker/docker.pem
|
|
140
|
+
- test/gemfiles/chef-12.1.gemfile
|
|
141
|
+
- test/gemfiles/chef-12.2.gemfile
|
|
142
|
+
- test/gemfiles/chef-12.3.gemfile
|
|
143
|
+
- test/gemfiles/chef-12.4.gemfile
|
|
144
|
+
- test/gemfiles/chef-12.5.gemfile
|
|
145
|
+
- test/gemfiles/chef-12.6.gemfile
|
|
126
146
|
- test/gemfiles/chef-12.gemfile
|
|
127
147
|
- test/gemfiles/master.gemfile
|
|
128
148
|
- test/integration/default/serverspec/Gemfile
|
|
@@ -161,11 +181,17 @@ signing_key:
|
|
|
161
181
|
specification_version: 4
|
|
162
182
|
summary: A Chef cookbook for managing the Monit process manager.
|
|
163
183
|
test_files:
|
|
164
|
-
- test/
|
|
165
|
-
- test/
|
|
166
|
-
- test/
|
|
184
|
+
- test/cookbook/attributes/default.rb
|
|
185
|
+
- test/cookbook/metadata.rb
|
|
186
|
+
- test/cookbook/recipes/default.rb
|
|
167
187
|
- test/docker/docker.ca
|
|
168
188
|
- test/docker/docker.pem
|
|
189
|
+
- test/gemfiles/chef-12.1.gemfile
|
|
190
|
+
- test/gemfiles/chef-12.2.gemfile
|
|
191
|
+
- test/gemfiles/chef-12.3.gemfile
|
|
192
|
+
- test/gemfiles/chef-12.4.gemfile
|
|
193
|
+
- test/gemfiles/chef-12.5.gemfile
|
|
194
|
+
- test/gemfiles/chef-12.6.gemfile
|
|
169
195
|
- test/gemfiles/chef-12.gemfile
|
|
170
196
|
- test/gemfiles/master.gemfile
|
|
171
197
|
- test/integration/default/serverspec/Gemfile
|