specinfra 2.33.1 → 2.34.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/lib/specinfra/command.rb +9 -0
- data/lib/specinfra/command/base/service.rb +11 -27
- data/lib/specinfra/command/module/service/daemontools.rb +41 -0
- data/lib/specinfra/command/module/service/delegator.rb +20 -0
- data/lib/specinfra/command/module/service/god.rb +13 -0
- data/lib/specinfra/command/module/service/init.rb +42 -0
- data/lib/specinfra/command/module/service/monit.rb +13 -0
- data/lib/specinfra/command/module/service/runit.rb +13 -0
- data/lib/specinfra/command/module/service/supervisor.rb +13 -0
- data/lib/specinfra/command/module/service/systemd.rb +48 -0
- data/lib/specinfra/command/module/service/upstart.rb +13 -0
- data/lib/specinfra/command/module/systemd.rb +3 -38
- data/lib/specinfra/command/redhat/base/service.rb +0 -36
- data/lib/specinfra/version.rb +1 -1
- data/spec/command/module/service/daemontools_spec.rb +18 -0
- data/spec/command/module/service/init_spec.rb +18 -0
- data/spec/command/module/service/systemd_spec.rb +16 -0
- metadata +17 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c7770fd21e92746495faaeabbcccdb5590a7c22b
|
4
|
+
data.tar.gz: b3a64e48ef28c3ffdea1532382c4a029d0efea09
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c23382cfab4758f8f3b98351e59cde4f19e9fd8832c0e04f8405c960694bf8c5123f4663c49ea690d7ce2376611aff118436a5231522abe501bae8a035e02366
|
7
|
+
data.tar.gz: b8e6ca1b31f2fbb5e0d55471ae0a9d6e7970d89e16cabfe5ed6314675baacf5bfdd485a2e77d9bace685e5a8aa4bf8ae375d5379434db004935ddda42329da6d
|
data/lib/specinfra/command.rb
CHANGED
@@ -5,6 +5,15 @@ end
|
|
5
5
|
|
6
6
|
# Module
|
7
7
|
require 'specinfra/command/module'
|
8
|
+
require 'specinfra/command/module/service/init'
|
9
|
+
require 'specinfra/command/module/service/systemd'
|
10
|
+
require 'specinfra/command/module/service/daemontools'
|
11
|
+
require 'specinfra/command/module/service/supervisor'
|
12
|
+
require 'specinfra/command/module/service/upstart'
|
13
|
+
require 'specinfra/command/module/service/runit'
|
14
|
+
require 'specinfra/command/module/service/monit'
|
15
|
+
require 'specinfra/command/module/service/god'
|
16
|
+
require 'specinfra/command/module/service/delegator'
|
8
17
|
require 'specinfra/command/module/systemd'
|
9
18
|
require 'specinfra/command/module/zfs'
|
10
19
|
|
@@ -1,31 +1,15 @@
|
|
1
1
|
class Specinfra::Command::Base::Service < Specinfra::Command::Base
|
2
2
|
class << self
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
def check_is_running_under_daemontools(service)
|
16
|
-
"svstat /service/#{escape(service)} | grep -E 'up \\(pid [0-9]+\\)'"
|
17
|
-
end
|
18
|
-
|
19
|
-
def check_is_running_under_runit(service)
|
20
|
-
"sv status #{escape(service)} | grep -E '^run: '"
|
21
|
-
end
|
22
|
-
|
23
|
-
def check_is_monitored_by_monit(service)
|
24
|
-
"monit status"
|
25
|
-
end
|
26
|
-
|
27
|
-
def check_is_monitored_by_god(service)
|
28
|
-
"god status #{escape(service)}"
|
29
|
-
end
|
3
|
+
include Specinfra::Command::Module::Service::Init
|
4
|
+
include Specinfra::Command::Module::Service::Systemd
|
5
|
+
include Specinfra::Command::Module::Service::Daemontools
|
6
|
+
include Specinfra::Command::Module::Service::Supervisor
|
7
|
+
include Specinfra::Command::Module::Service::Upstart
|
8
|
+
include Specinfra::Command::Module::Service::Runit
|
9
|
+
include Specinfra::Command::Module::Service::Monit
|
10
|
+
include Specinfra::Command::Module::Service::God
|
11
|
+
extend Specinfra::Command::Module::Service::Delegator
|
12
|
+
|
13
|
+
def_delegator_service_under :init
|
30
14
|
end
|
31
15
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
module Specinfra
|
2
|
+
module Command
|
3
|
+
module Module
|
4
|
+
module Service
|
5
|
+
module Daemontools
|
6
|
+
def check_is_enabled_under_daemontools(service)
|
7
|
+
"test -L /service/#{escape(service)} && test -f /service/#{escape(service)}/run"
|
8
|
+
end
|
9
|
+
|
10
|
+
def check_is_running_under_daemontools(service)
|
11
|
+
"svstat /service/#{escape(service)} | grep -E 'up \\(pid [0-9]+\\)'"
|
12
|
+
end
|
13
|
+
|
14
|
+
def enable_under_daemontools(service, directory)
|
15
|
+
"ln -snf #{escape(directory)} /service/#{escape(service)}"
|
16
|
+
end
|
17
|
+
|
18
|
+
def disable_under_daemontools(service)
|
19
|
+
"( cd /service/#{escape(service)} && rm -f /service/#{escape(service)} && svc -dx . && [ -d log ] && svc -dx log )"
|
20
|
+
end
|
21
|
+
|
22
|
+
def start_under_daemontools(service)
|
23
|
+
"svc -u /service/#{escape(service)}"
|
24
|
+
end
|
25
|
+
|
26
|
+
def stop_under_daemontools(service)
|
27
|
+
"svc -d /service/#{escape(service)}"
|
28
|
+
end
|
29
|
+
|
30
|
+
def restart_under_daemontools(service)
|
31
|
+
"svc -t /service/#{escape(service)}"
|
32
|
+
end
|
33
|
+
|
34
|
+
def reload_under_daemontools(service)
|
35
|
+
"svc -h /service/#{escape(service)}"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Specinfra
|
2
|
+
module Command
|
3
|
+
module Module
|
4
|
+
module Service
|
5
|
+
module Delegator
|
6
|
+
def def_delegator_service_under(under)
|
7
|
+
self.send(:alias_method, :check_is_enabled, :"check_is_enabled_under_#{under}")
|
8
|
+
self.send(:alias_method, :check_is_running, :"check_is_running_under_#{under}")
|
9
|
+
self.send(:alias_method, :enable, :"enable_under_#{under}")
|
10
|
+
self.send(:alias_method, :disable, :"disable_under_#{under}")
|
11
|
+
self.send(:alias_method, :start, :"start_under_#{under}")
|
12
|
+
self.send(:alias_method, :stop, :"stop_under_#{under}")
|
13
|
+
self.send(:alias_method, :restart, :"restart_under_#{under}")
|
14
|
+
self.send(:alias_method, :reload, :"reload_under_#{under}")
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,42 @@
|
|
1
|
+
module Specinfra
|
2
|
+
module Command
|
3
|
+
module Module
|
4
|
+
module Service
|
5
|
+
module Init
|
6
|
+
def check_is_enabled_under_init(service, level=3)
|
7
|
+
"chkconfig --list #{escape(service)} | grep #{level}:on"
|
8
|
+
end
|
9
|
+
|
10
|
+
def check_is_running_under_init(service)
|
11
|
+
"service #{escape(service)} status"
|
12
|
+
end
|
13
|
+
|
14
|
+
def enable_under_init(service)
|
15
|
+
"chkconfig #{escape(service)} on"
|
16
|
+
end
|
17
|
+
|
18
|
+
def disable_under_init(service)
|
19
|
+
"chkconfig #{escape(service)} off"
|
20
|
+
end
|
21
|
+
|
22
|
+
def start_under_init(service)
|
23
|
+
"service #{escape(service)} start"
|
24
|
+
end
|
25
|
+
|
26
|
+
def stop_under_init(service)
|
27
|
+
"service #{escape(service)} stop"
|
28
|
+
end
|
29
|
+
|
30
|
+
def restart_under_init(service)
|
31
|
+
"service #{escape(service)} restart"
|
32
|
+
end
|
33
|
+
|
34
|
+
def reload_under_init(service)
|
35
|
+
"service #{escape(service)} reload"
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module Specinfra
|
2
|
+
module Command
|
3
|
+
module Module
|
4
|
+
module Service
|
5
|
+
module Systemd
|
6
|
+
def check_is_enabled_under_systemd(service, level="multi-user.target")
|
7
|
+
if level.to_s =~ /^\d+$/
|
8
|
+
level = "runlevel#{level}.target"
|
9
|
+
end
|
10
|
+
unless service.match(/\.(service|mount|device|socket)$/)
|
11
|
+
service += '.service'
|
12
|
+
end
|
13
|
+
|
14
|
+
"systemctl --plain list-dependencies #{level} | grep '\\(^\\| \\)#{escape(service)}$'"
|
15
|
+
end
|
16
|
+
|
17
|
+
def check_is_running_under_systemd(service)
|
18
|
+
"systemctl is-active #{escape(service)}"
|
19
|
+
end
|
20
|
+
|
21
|
+
def enable_under_systemd(service)
|
22
|
+
"systemctl enable #{escape(service)}"
|
23
|
+
end
|
24
|
+
|
25
|
+
def disable_under_systemd(service)
|
26
|
+
"systemctl disable #{escape(service)}"
|
27
|
+
end
|
28
|
+
|
29
|
+
def start_under_systemd(service)
|
30
|
+
"systemctl start #{escape(service)}"
|
31
|
+
end
|
32
|
+
|
33
|
+
def stop_under_systemd(service)
|
34
|
+
"systemctl stop #{escape(service)}"
|
35
|
+
end
|
36
|
+
|
37
|
+
def restart_under_systemd(service)
|
38
|
+
"systemctl restart #{escape(service)}"
|
39
|
+
end
|
40
|
+
|
41
|
+
def reload_under_systemd(service)
|
42
|
+
"systemctl reload #{escape(service)}"
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -2,44 +2,9 @@ module Specinfra
|
|
2
2
|
module Command
|
3
3
|
module Module
|
4
4
|
module Systemd
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
end
|
9
|
-
unless service.match(/\.(service|mount|device|socket)$/)
|
10
|
-
service += '.service'
|
11
|
-
end
|
12
|
-
|
13
|
-
"systemctl --plain list-dependencies #{level} | grep '\\(^\\| \\)#{escape(service)}$'"
|
14
|
-
end
|
15
|
-
|
16
|
-
def check_is_running(service)
|
17
|
-
"systemctl is-active #{escape(service)}"
|
18
|
-
end
|
19
|
-
|
20
|
-
def enable(service)
|
21
|
-
"systemctl enable #{escape(service)}"
|
22
|
-
end
|
23
|
-
|
24
|
-
def disable(service)
|
25
|
-
"systemctl disable #{escape(service)}"
|
26
|
-
end
|
27
|
-
|
28
|
-
def start(service)
|
29
|
-
"systemctl start #{escape(service)}"
|
30
|
-
end
|
31
|
-
|
32
|
-
def stop(service)
|
33
|
-
"systemctl stop #{escape(service)}"
|
34
|
-
end
|
35
|
-
|
36
|
-
def restart(service)
|
37
|
-
"systemctl restart #{escape(service)}"
|
38
|
-
end
|
39
|
-
|
40
|
-
def reload(service)
|
41
|
-
"systemctl reload #{escape(service)}"
|
42
|
-
end
|
5
|
+
include Specinfra::Command::Module::Service::Systemd
|
6
|
+
extend Specinfra::Command::Module::Service::Delegator
|
7
|
+
def_delegator_service_under :systemd
|
43
8
|
end
|
44
9
|
end
|
45
10
|
end
|
@@ -1,38 +1,2 @@
|
|
1
1
|
class Specinfra::Command::Redhat::Base::Service < Specinfra::Command::Linux::Base::Service
|
2
|
-
class << self
|
3
|
-
def check_is_enabled(service, level=3)
|
4
|
-
"chkconfig --list #{escape(service)} | grep #{level}:on"
|
5
|
-
end
|
6
|
-
|
7
|
-
def enable(service)
|
8
|
-
"chkconfig #{escape(service)} on"
|
9
|
-
end
|
10
|
-
|
11
|
-
def disable(service)
|
12
|
-
"chkconfig #{escape(service)} off"
|
13
|
-
end
|
14
|
-
|
15
|
-
def start(service)
|
16
|
-
"service #{escape(service)} start"
|
17
|
-
end
|
18
|
-
|
19
|
-
def stop(service)
|
20
|
-
"service #{escape(service)} stop"
|
21
|
-
end
|
22
|
-
|
23
|
-
def restart(service)
|
24
|
-
"service #{escape(service)} restart"
|
25
|
-
end
|
26
|
-
|
27
|
-
def reload(service)
|
28
|
-
"service #{escape(service)} reload"
|
29
|
-
end
|
30
|
-
end
|
31
2
|
end
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
data/lib/specinfra/version.rb
CHANGED
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Specinfra::Command::Module::Service::Daemontools do
|
4
|
+
class Specinfra::Command::Module::Service::Daemontools::Test < Specinfra::Command::Base
|
5
|
+
extend Specinfra::Command::Module::Service::Daemontools
|
6
|
+
end
|
7
|
+
let(:klass) { Specinfra::Command::Module::Service::Daemontools::Test }
|
8
|
+
it { expect(klass.check_is_enabled_under_daemontools('httpd')).to eq "test -L /service/httpd && test -f /service/httpd/run" }
|
9
|
+
it { expect(klass.check_is_running_under_daemontools('httpd')).to eq "svstat /service/httpd | grep -E 'up \\(pid [0-9]+\\)'" }
|
10
|
+
it { expect(klass.enable_under_daemontools('httpd', '/tmp/service/httpd')).to eq 'ln -snf /tmp/service/httpd /service/httpd' }
|
11
|
+
it { expect(klass.disable_under_daemontools('httpd')).to eq '( cd /service/httpd && rm -f /service/httpd && svc -dx . && [ -d log ] && svc -dx log )' }
|
12
|
+
it { expect(klass.start_under_daemontools('httpd')).to eq 'svc -u /service/httpd' }
|
13
|
+
it { expect(klass.stop_under_daemontools('httpd')).to eq 'svc -d /service/httpd' }
|
14
|
+
it { expect(klass.restart_under_daemontools('httpd')).to eq 'svc -t /service/httpd' }
|
15
|
+
it { expect(klass.reload_under_daemontools('httpd')).to eq 'svc -h /service/httpd' }
|
16
|
+
end
|
17
|
+
|
18
|
+
|
@@ -0,0 +1,18 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Specinfra::Command::Module::Service::Init do
|
4
|
+
class Specinfra::Command::Module::Service::Init::Test < Specinfra::Command::Base
|
5
|
+
extend Specinfra::Command::Module::Service::Init
|
6
|
+
end
|
7
|
+
let(:klass) { Specinfra::Command::Module::Service::Init::Test }
|
8
|
+
it { expect(klass.check_is_enabled_under_init('httpd')).to eq "chkconfig --list httpd | grep 3:on" }
|
9
|
+
it { expect(klass.check_is_running_under_init('httpd')).to eq 'service httpd status' }
|
10
|
+
it { expect(klass.enable_under_init('httpd')).to eq 'chkconfig httpd on' }
|
11
|
+
it { expect(klass.disable_under_init('httpd')).to eq 'chkconfig httpd off' }
|
12
|
+
it { expect(klass.start_under_init('httpd')).to eq 'service httpd start' }
|
13
|
+
it { expect(klass.stop_under_init('httpd')).to eq 'service httpd stop' }
|
14
|
+
it { expect(klass.restart_under_init('httpd')).to eq 'service httpd restart' }
|
15
|
+
it { expect(klass.reload_under_init('httpd')).to eq 'service httpd reload' }
|
16
|
+
end
|
17
|
+
|
18
|
+
|
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Specinfra::Command::Module::Service::Systemd do
|
4
|
+
class Specinfra::Command::Module::Service::Systemd::Test < Specinfra::Command::Base
|
5
|
+
extend Specinfra::Command::Module::Service::Systemd
|
6
|
+
end
|
7
|
+
let(:klass) { Specinfra::Command::Module::Service::Systemd::Test }
|
8
|
+
it { expect(klass.check_is_enabled_under_systemd('httpd')).to eq "systemctl --plain list-dependencies multi-user.target | grep '\\(^\\| \\)httpd.service$'" }
|
9
|
+
it { expect(klass.check_is_running_under_systemd('httpd')).to eq 'systemctl is-active httpd' }
|
10
|
+
it { expect(klass.enable_under_systemd('httpd')).to eq 'systemctl enable httpd' }
|
11
|
+
it { expect(klass.disable_under_systemd('httpd')).to eq 'systemctl disable httpd' }
|
12
|
+
it { expect(klass.start_under_systemd('httpd')).to eq 'systemctl start httpd' }
|
13
|
+
it { expect(klass.stop_under_systemd('httpd')).to eq 'systemctl stop httpd' }
|
14
|
+
it { expect(klass.restart_under_systemd('httpd')).to eq 'systemctl restart httpd' }
|
15
|
+
it { expect(klass.reload_under_systemd('httpd')).to eq 'systemctl reload httpd' }
|
16
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: specinfra
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.34.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gosuke Miyashita
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-05-
|
11
|
+
date: 2015-05-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-ssh
|
@@ -247,6 +247,15 @@ files:
|
|
247
247
|
- lib/specinfra/command/linux/base/yumrepo.rb
|
248
248
|
- lib/specinfra/command/linux/base/zfs.rb
|
249
249
|
- lib/specinfra/command/module.rb
|
250
|
+
- lib/specinfra/command/module/service/daemontools.rb
|
251
|
+
- lib/specinfra/command/module/service/delegator.rb
|
252
|
+
- lib/specinfra/command/module/service/god.rb
|
253
|
+
- lib/specinfra/command/module/service/init.rb
|
254
|
+
- lib/specinfra/command/module/service/monit.rb
|
255
|
+
- lib/specinfra/command/module/service/runit.rb
|
256
|
+
- lib/specinfra/command/module/service/supervisor.rb
|
257
|
+
- lib/specinfra/command/module/service/systemd.rb
|
258
|
+
- lib/specinfra/command/module/service/upstart.rb
|
250
259
|
- lib/specinfra/command/module/systemd.rb
|
251
260
|
- lib/specinfra/command/module/zfs.rb
|
252
261
|
- lib/specinfra/command/nixos.rb
|
@@ -403,6 +412,9 @@ files:
|
|
403
412
|
- spec/command/linux/ip6tables_spec.rb
|
404
413
|
- spec/command/linux/selinux_module_spec.rb
|
405
414
|
- spec/command/linux/selinux_spec.rb
|
415
|
+
- spec/command/module/service/daemontools_spec.rb
|
416
|
+
- spec/command/module/service/init_spec.rb
|
417
|
+
- spec/command/module/service/systemd_spec.rb
|
406
418
|
- spec/command/module/systemd_spec.rb
|
407
419
|
- spec/command/module/zfs_spec.rb
|
408
420
|
- spec/command/redhat/interface_spec.rb
|
@@ -466,6 +478,9 @@ test_files:
|
|
466
478
|
- spec/command/linux/ip6tables_spec.rb
|
467
479
|
- spec/command/linux/selinux_module_spec.rb
|
468
480
|
- spec/command/linux/selinux_spec.rb
|
481
|
+
- spec/command/module/service/daemontools_spec.rb
|
482
|
+
- spec/command/module/service/init_spec.rb
|
483
|
+
- spec/command/module/service/systemd_spec.rb
|
469
484
|
- spec/command/module/systemd_spec.rb
|
470
485
|
- spec/command/module/zfs_spec.rb
|
471
486
|
- spec/command/redhat/interface_spec.rb
|