specinfra 2.0.0.beta6 → 2.0.0.beta7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +2 -2
- data/lib/specinfra.rb +25 -0
- data/lib/specinfra/backend/exec.rb +15 -103
- data/lib/specinfra/backend/ssh.rb +1 -1
- data/lib/specinfra/command.rb +208 -29
- data/lib/specinfra/command/aix.rb +1 -66
- data/lib/specinfra/command/aix/base.rb +2 -0
- data/lib/specinfra/command/aix/base/file.rb +19 -0
- data/lib/specinfra/command/aix/base/group.rb +6 -0
- data/lib/specinfra/command/aix/base/package.rb +9 -0
- data/lib/specinfra/command/aix/base/port.rb +6 -0
- data/lib/specinfra/command/aix/base/service.rb +9 -0
- data/lib/specinfra/command/aix/base/user.rb +13 -0
- data/lib/specinfra/command/arch.rb +1 -38
- data/lib/specinfra/command/arch/base.rb +11 -0
- data/lib/specinfra/command/arch/base/file.rb +5 -0
- data/lib/specinfra/command/arch/base/package.rb +22 -0
- data/lib/specinfra/command/arch/base/service.rb +3 -0
- data/lib/specinfra/command/base.rb +74 -334
- data/lib/specinfra/command/base/cron.rb +10 -0
- data/lib/specinfra/command/base/file.rb +95 -0
- data/lib/specinfra/command/base/group.rb +10 -0
- data/lib/specinfra/command/base/host.rb +23 -0
- data/lib/specinfra/command/base/interface.rb +2 -0
- data/lib/specinfra/command/base/ipfilter.rb +2 -0
- data/lib/specinfra/command/base/ipnat.rb +2 -0
- data/lib/specinfra/command/base/iptables.rb +2 -0
- data/lib/specinfra/command/base/kernel_module.rb +2 -0
- data/lib/specinfra/command/base/lxc_container.rb +2 -0
- data/lib/specinfra/command/base/mail_alias.rb +6 -0
- data/lib/specinfra/command/base/package.rb +43 -0
- data/lib/specinfra/command/base/port.rb +8 -0
- data/lib/specinfra/command/base/ppa.rb +2 -0
- data/lib/specinfra/command/base/process.rb +14 -0
- data/lib/specinfra/command/base/routing_table.rb +5 -0
- data/lib/specinfra/command/base/selinux.rb +2 -0
- data/lib/specinfra/command/base/service.rb +25 -0
- data/lib/specinfra/command/base/user.rb +31 -0
- data/lib/specinfra/command/base/yumrepo.rb +3 -0
- data/lib/specinfra/command/base/zfs.rb +1 -0
- data/lib/specinfra/command/darwin.rb +1 -67
- data/lib/specinfra/command/darwin/base.rb +2 -0
- data/lib/specinfra/command/darwin/base/file.rb +37 -0
- data/lib/specinfra/command/darwin/base/package.rb +15 -0
- data/lib/specinfra/command/darwin/base/port.rb +6 -0
- data/lib/specinfra/command/darwin/base/service.rb +9 -0
- data/lib/specinfra/command/debian.rb +1 -31
- data/lib/specinfra/command/debian/base.rb +11 -0
- data/lib/specinfra/command/debian/base/package.rb +22 -0
- data/lib/specinfra/command/debian/base/ppa.rb +2 -0
- data/lib/specinfra/command/debian/base/service.rb +6 -0
- data/lib/specinfra/command/fedora.rb +1 -29
- data/lib/specinfra/command/fedora/base.rb +2 -0
- data/lib/specinfra/command/fedora/base/service.rb +10 -0
- data/lib/specinfra/command/fedora/v15.rb +1 -0
- data/lib/specinfra/command/fedora/v15/service.rb +3 -0
- data/lib/specinfra/command/freebsd.rb +1 -39
- data/lib/specinfra/command/freebsd/base.rb +3 -0
- data/lib/specinfra/command/freebsd/base/file.rb +10 -0
- data/lib/specinfra/command/freebsd/base/package.rb +17 -0
- data/lib/specinfra/command/freebsd/base/port.rb +6 -0
- data/lib/specinfra/command/freebsd/base/service.rb +5 -0
- data/lib/specinfra/command/freebsd/v10.rb +1 -0
- data/lib/specinfra/command/freebsd/v10/package.rb +17 -0
- data/lib/specinfra/command/gentoo.rb +1 -18
- data/lib/specinfra/command/gentoo/base.rb +2 -0
- data/lib/specinfra/command/gentoo/base/package.rb +5 -0
- data/lib/specinfra/command/gentoo/base/service.rb +17 -0
- data/lib/specinfra/command/linux.rb +1 -71
- data/lib/specinfra/command/linux/base.rb +2 -0
- data/lib/specinfra/command/linux/base/file.rb +13 -0
- data/lib/specinfra/command/linux/base/interface.rb +17 -0
- data/lib/specinfra/command/linux/base/iptables.rb +10 -0
- data/lib/specinfra/command/linux/base/kernel_module.rb +5 -0
- data/lib/specinfra/command/linux/base/lxc_container.rb +9 -0
- data/lib/specinfra/command/linux/base/package.rb +2 -0
- data/lib/specinfra/command/linux/base/ppa.rb +2 -0
- data/lib/specinfra/command/linux/base/selinux.rb +10 -0
- data/lib/specinfra/command/linux/base/service.rb +2 -0
- data/lib/specinfra/command/linux/base/yumrepo.rb +2 -0
- data/lib/specinfra/command/linux/base/zfs.rb +3 -0
- data/lib/specinfra/command/module.rb +2 -0
- data/lib/specinfra/command/module/systemd.rb +13 -0
- data/lib/specinfra/command/module/zfs.rb +14 -0
- data/lib/specinfra/command/nixos.rb +1 -28
- data/lib/specinfra/command/nixos/base.rb +2 -0
- data/lib/specinfra/command/nixos/base/package.rb +15 -0
- data/lib/specinfra/command/nixos/base/service.rb +3 -0
- data/lib/specinfra/command/openbsd.rb +1 -91
- data/lib/specinfra/command/openbsd/base.rb +4 -0
- data/lib/specinfra/command/openbsd/base/file.rb +39 -0
- data/lib/specinfra/command/openbsd/base/interface.rb +9 -0
- data/lib/specinfra/command/openbsd/base/mail_alias.rb +5 -0
- data/lib/specinfra/command/openbsd/base/package.rb +13 -0
- data/lib/specinfra/command/openbsd/base/port.rb +5 -0
- data/lib/specinfra/command/openbsd/base/service.rb +9 -0
- data/lib/specinfra/command/openbsd/base/user.rb +16 -0
- data/lib/specinfra/command/opensuse.rb +1 -14
- data/lib/specinfra/command/opensuse/base.rb +3 -0
- data/lib/specinfra/command/opensuse/base/service.rb +3 -0
- data/lib/specinfra/command/plamo.rb +1 -21
- data/lib/specinfra/command/plamo/base.rb +3 -0
- data/lib/specinfra/command/plamo/base/package.rb +9 -0
- data/lib/specinfra/command/plamo/base/service.rb +12 -0
- data/lib/specinfra/command/redhat.rb +1 -40
- data/lib/specinfra/command/redhat/base.rb +2 -0
- data/lib/specinfra/command/redhat/base/file.rb +6 -0
- data/lib/specinfra/command/redhat/base/iptables.rb +11 -0
- data/lib/specinfra/command/redhat/base/package.rb +28 -0
- data/lib/specinfra/command/redhat/base/service.rb +12 -0
- data/lib/specinfra/command/redhat/base/yumrepo.rb +11 -0
- data/lib/specinfra/command/redhat/v5.rb +2 -0
- data/lib/specinfra/command/redhat/v5/iptables.rb +8 -0
- data/lib/specinfra/command/redhat/v7.rb +2 -0
- data/lib/specinfra/command/redhat/v7/service.rb +3 -0
- data/lib/specinfra/command/smartos.rb +1 -25
- data/lib/specinfra/command/smartos/base.rb +3 -0
- data/lib/specinfra/command/smartos/base/package.rb +13 -0
- data/lib/specinfra/command/smartos/base/service.rb +9 -0
- data/lib/specinfra/command/smartos/tmp.rb +8 -0
- data/lib/specinfra/command/solaris.rb +1 -117
- data/lib/specinfra/command/solaris/base.rb +2 -0
- data/lib/specinfra/command/solaris/base/cron.rb +10 -0
- data/lib/specinfra/command/solaris/base/file.rb +17 -0
- data/lib/specinfra/command/solaris/base/group.rb +6 -0
- data/lib/specinfra/command/solaris/base/host.rb +12 -0
- data/lib/specinfra/command/solaris/base/ipfilter.rb +5 -0
- data/lib/specinfra/command/solaris/base/ipnat.rb +12 -0
- data/lib/specinfra/command/solaris/base/package.rb +12 -0
- data/lib/specinfra/command/solaris/base/port.rb +11 -0
- data/lib/specinfra/command/solaris/base/service.rb +19 -0
- data/lib/specinfra/command/solaris/base/user.rb +13 -0
- data/lib/specinfra/command/solaris/base/zfs.rb +11 -0
- data/lib/specinfra/command/solaris/v10.rb +1 -0
- data/lib/specinfra/command/solaris/v10/file.rb +40 -0
- data/lib/specinfra/command/solaris/v10/group.rb +5 -0
- data/lib/specinfra/command/solaris/v10/host.rb +11 -0
- data/lib/specinfra/command/solaris/v10/package.rb +9 -0
- data/lib/specinfra/command/solaris/v10/user.rb +16 -0
- data/lib/specinfra/command/suse.rb +1 -27
- data/lib/specinfra/command/suse/base.rb +2 -0
- data/lib/specinfra/command/suse/base/package.rb +19 -0
- data/lib/specinfra/command/suse/base/service.rb +12 -0
- data/lib/specinfra/command/ubuntu.rb +11 -23
- data/lib/specinfra/command/ubuntu/base.rb +2 -0
- data/lib/specinfra/command/ubuntu/base/ppa.rb +15 -0
- data/lib/specinfra/command/ubuntu/base/service.rb +5 -0
- data/lib/specinfra/command/windows.rb +1 -344
- data/lib/specinfra/command/windows/base.rb +14 -0
- data/lib/specinfra/command/windows/base/feature.rb +15 -0
- data/lib/specinfra/command/windows/base/file.rb +103 -0
- data/lib/specinfra/command/windows/base/group.rb +9 -0
- data/lib/specinfra/command/windows/base/host.rb +23 -0
- data/lib/specinfra/command/windows/base/hot_fix.rb +17 -0
- data/lib/specinfra/command/windows/base/iis_app_pool.rb +15 -0
- data/lib/specinfra/command/windows/base/iis_website.rb +36 -0
- data/lib/specinfra/command/windows/base/package.rb +9 -0
- data/lib/specinfra/command/windows/base/port.rb +15 -0
- data/lib/specinfra/command/windows/base/process.rb +7 -0
- data/lib/specinfra/command/windows/base/registry_key.rb +43 -0
- data/lib/specinfra/command/windows/base/scheduled_task.rb +8 -0
- data/lib/specinfra/command/windows/base/service.rb +29 -0
- data/lib/specinfra/command/windows/base/user.rb +20 -0
- data/lib/specinfra/configuration.rb +2 -1
- data/lib/specinfra/helper.rb +1 -1
- data/lib/specinfra/helper/backend.rb +1 -1
- data/lib/specinfra/helper/detect_os.rb +15 -21
- data/lib/specinfra/helper/detect_os/aix.rb +7 -0
- data/lib/specinfra/helper/detect_os/arch.rb +7 -0
- data/lib/specinfra/helper/detect_os/darwin.rb +7 -0
- data/lib/specinfra/helper/detect_os/debian.rb +24 -0
- data/lib/specinfra/helper/detect_os/freebsd.rb +11 -0
- data/lib/specinfra/helper/detect_os/gentoo.rb +7 -0
- data/lib/specinfra/helper/detect_os/nixos.rb +7 -0
- data/lib/specinfra/helper/detect_os/openbsd.rb +7 -0
- data/lib/specinfra/helper/detect_os/plamo.rb +7 -0
- data/lib/specinfra/helper/detect_os/redhat.rb +27 -0
- data/lib/specinfra/helper/detect_os/solaris.rb +15 -0
- data/lib/specinfra/helper/detect_os/suse.rb +15 -0
- data/lib/specinfra/helper/os.rb +47 -33
- data/lib/specinfra/version.rb +1 -1
- data/spec/backend/exec/build_command_spec.rb +16 -11
- data/spec/command/base/file_spec.rb +11 -0
- data/spec/command/base_spec.rb +28 -0
- data/spec/command/module/systemd_spec.rb +8 -0
- data/spec/command/redhat/package_spec.rb +12 -0
- data/spec/helper/os_spec.rb +58 -0
- metadata +163 -8
- data/lib/specinfra/command/freebsd10.rb +0 -21
- data/lib/specinfra/command/redhat7.rb +0 -9
- data/lib/specinfra/command/solaris10.rb +0 -78
- data/lib/specinfra/command/solaris11.rb +0 -7
- data/spec/command/base.rb +0 -28
@@ -0,0 +1,24 @@
|
|
1
|
+
class Specinfra::Helper::DetectOs::Debian < Specinfra::Helper::DetectOs
|
2
|
+
def self.detect
|
3
|
+
if run_command('ls /etc/debian_version').success?
|
4
|
+
lsb_release = run_command("lsb_release -ir")
|
5
|
+
if lsb_release.success?
|
6
|
+
if lsb_release.stdout =~ /:/
|
7
|
+
distro = lsb_release.stdout.split("\n").first.split(':').last
|
8
|
+
release = lsb_release.stdout.split("\n").last.split(':').last.strip
|
9
|
+
end
|
10
|
+
else
|
11
|
+
lsb_release = run_command("cat /etc/lsb-release")
|
12
|
+
if lsb_release.success?
|
13
|
+
lsb_release.stdout.each_line do |line|
|
14
|
+
distro = line.split('=').last if line =~ /^DISTRIB_ID=/
|
15
|
+
release = line.split('=').last.strip if line =~ /^DISTRIB_RELEASE=/
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
distro ||= 'debian'
|
20
|
+
release ||= nil
|
21
|
+
{ :family => distro.strip.downcase, :release => release }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
class Specinfra::Helper::DetectOs::Freebsd < Specinfra::Helper::DetectOs
|
2
|
+
def self.detect
|
3
|
+
if ( uname = run_command('uname -sr').stdout ) && uname =~ /FreeBSD/i
|
4
|
+
if uname =~ /10./
|
5
|
+
{ :family => 'freebsd', :release => 10 }
|
6
|
+
else
|
7
|
+
{ :family => 'freebsd', :release => nil }
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class Specinfra::Helper::DetectOs::Redhat < Specinfra::Helper::DetectOs
|
2
|
+
def self.detect
|
3
|
+
# Fedora also has an /etc/redhat-release so the Fedora check must
|
4
|
+
# come before the RedHat check
|
5
|
+
if run_command('ls /etc/fedora-release').success?
|
6
|
+
line = run_command('cat /etc/redhat-release').stdout
|
7
|
+
if line =~ /release (\d[\d]*)/
|
8
|
+
release = $1
|
9
|
+
end
|
10
|
+
{ :family => 'fedora', :release => release }
|
11
|
+
elsif run_command('ls /etc/redhat-release').success?
|
12
|
+
line = run_command('cat /etc/redhat-release').stdout
|
13
|
+
if line =~ /release (\d[\d.]*)/
|
14
|
+
release = $1
|
15
|
+
end
|
16
|
+
|
17
|
+
{ :family => 'redhat', :release => release }
|
18
|
+
elsif run_command('ls /etc/system-release').success?
|
19
|
+
{ :family => 'redhat', :release => nil } # Amazon Linux
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class Specinfra::Helper::DetectOs::Solaris < Specinfra::Helper::DetectOs
|
2
|
+
def self.detect
|
3
|
+
if ( uname = run_command('uname -sr').stdout) && uname =~ /SunOS/i
|
4
|
+
if uname =~ /5.10/
|
5
|
+
{ :family => 'solaris', :release => 10 }
|
6
|
+
elsif run_command('grep -q "Oracle Solaris 11" /etc/release').success?
|
7
|
+
{ :family => 'solaris', :release => 11 }
|
8
|
+
elsif run_command('grep -q SmartOS /etc/release').success?
|
9
|
+
{ :family => 'smartos', :release => nil }
|
10
|
+
else
|
11
|
+
{ :family => 'solaris', :release => nil }
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class Specinfra::Helper::DetectOs::Suse < Specinfra::Helper::DetectOs
|
2
|
+
def self.detect
|
3
|
+
if run_command('ls /etc/SuSE-release').success?
|
4
|
+
line = run_command('cat /etc/SuSE-release').stdout
|
5
|
+
if line =~ /SUSE Linux Enterprise Server (\d+)/
|
6
|
+
release = $1
|
7
|
+
family = 'suse'
|
8
|
+
elsif line =~ /openSUSE (\d+\.\d+|\d+)/
|
9
|
+
release = $1
|
10
|
+
family = 'opensuse'
|
11
|
+
end
|
12
|
+
{ :family => family, :release => release }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
data/lib/specinfra/helper/os.rb
CHANGED
@@ -1,36 +1,50 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
1
|
+
require 'specinfra/helper/detect_os'
|
2
|
+
|
3
|
+
module Specinfra::Helper::Os
|
4
|
+
def commands
|
5
|
+
Specinfra::Command::Base.new
|
6
|
+
end
|
7
|
+
|
8
|
+
def os
|
9
|
+
property[:os_by_host] = {} if ! property[:os_by_host]
|
10
|
+
host_port = current_host_and_port
|
11
|
+
|
12
|
+
if property[:os_by_host][host_port]
|
13
|
+
os_by_host = property[:os_by_host][host_port]
|
14
|
+
else
|
15
|
+
# Set command object explicitly to avoid `stack too deep`
|
16
|
+
os_by_host = detect_os
|
17
|
+
property[:os_by_host][host_port] = os_by_host
|
18
|
+
end
|
19
|
+
os_by_host
|
20
|
+
end
|
21
|
+
|
22
|
+
private
|
23
|
+
|
24
|
+
# put this in a module for better reuse
|
25
|
+
def current_host_and_port
|
26
|
+
if Specinfra.configuration.ssh
|
27
|
+
"#{Specinfra.configuration.ssh.host}:#{Specinfra.configuration.ssh.options[:port]}"
|
28
|
+
elsif Specinfra.configuration.ssh_options
|
29
|
+
|
30
|
+
"#{Specinfra.configuration.host}:#{Specinfra.configuration.ssh_options[:port]}"
|
31
|
+
else
|
32
|
+
"#{Specinfra.configuration.host}:0"
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def run_command(cmd)
|
37
|
+
backend.run_command(cmd)
|
38
|
+
end
|
39
|
+
|
40
|
+
def detect_os
|
41
|
+
return Specinfra.configuration.os if Specinfra.configuration.os
|
42
|
+
Specinfra::Helper::DetectOs.subclasses.each do |c|
|
43
|
+
res = c.detect
|
44
|
+
if res
|
45
|
+
res[:arch] ||= run_command('uname -m').stdout.strip
|
46
|
+
return res
|
47
|
+
end
|
34
48
|
end
|
35
49
|
end
|
36
50
|
end
|
data/lib/specinfra/version.rb
CHANGED
@@ -74,9 +74,14 @@ describe Specinfra::Backend::Exec do
|
|
74
74
|
end
|
75
75
|
end
|
76
76
|
|
77
|
-
describe '
|
77
|
+
describe 'os' do
|
78
|
+
before do
|
79
|
+
# clear os information cache
|
80
|
+
property[:os_by_host] = {}
|
81
|
+
end
|
82
|
+
|
78
83
|
context 'test ubuntu with lsb_release command' do
|
79
|
-
subject {
|
84
|
+
subject { os }
|
80
85
|
it do
|
81
86
|
expect(backend).to receive(:run_command).at_least(1).times do |args|
|
82
87
|
if ['ls /etc/debian_version', 'lsb_release -ir'].include? args
|
@@ -88,15 +93,15 @@ describe 'check_os' do
|
|
88
93
|
elsif args == 'uname -m'
|
89
94
|
double :run_command_response, :success? => true, :stdout => "x86_64\n"
|
90
95
|
else
|
91
|
-
double :run_command_response, :success? => false
|
96
|
+
double :run_command_response, :success? => false, :stdout => nil
|
92
97
|
end
|
93
98
|
end
|
94
|
-
should eq({:family => '
|
99
|
+
should eq({:family => 'ubuntu', :release => '12.04', :arch => 'x86_64' })
|
95
100
|
end
|
96
101
|
end
|
97
102
|
|
98
103
|
context 'test ubuntu with /etc/lsb-release' do
|
99
|
-
subject {
|
104
|
+
subject { os }
|
100
105
|
it do
|
101
106
|
expect(backend).to receive(:run_command).at_least(1).times do |args|
|
102
107
|
if ['ls /etc/debian_version', 'cat /etc/lsb-release'].include? args
|
@@ -113,26 +118,26 @@ EOF
|
|
113
118
|
elsif args == 'uname -m'
|
114
119
|
double :run_command_response, :success? => true, :stdout => "x86_64\n"
|
115
120
|
else
|
116
|
-
double :run_command_response, :success? => false
|
121
|
+
double :run_command_response, :success? => false, :stdout => nil
|
117
122
|
end
|
118
123
|
end
|
119
|
-
should eq({:family => '
|
124
|
+
should eq({:family => 'ubuntu', :release => '12.04', :arch => 'x86_64' })
|
120
125
|
end
|
121
126
|
end
|
122
127
|
|
123
128
|
context 'test debian (no lsb_release or lsb-release)' do
|
124
|
-
subject {
|
129
|
+
subject { os }
|
125
130
|
it do
|
126
131
|
expect(backend).to receive(:run_command).at_least(1).times do |args|
|
127
132
|
if args == 'ls /etc/debian_version'
|
128
|
-
double :run_command_response, :success? => true
|
133
|
+
double :run_command_response, :success? => true, :stdout => nil
|
129
134
|
elsif args == 'uname -m'
|
130
135
|
double :run_command_response, :success? => true, :stdout => "x86_64\n"
|
131
136
|
else
|
132
|
-
double :run_command_response, :success? => false
|
137
|
+
double :run_command_response, :success? => false, :stdout => nil
|
133
138
|
end
|
134
139
|
end
|
135
|
-
should eq({:family => '
|
140
|
+
should eq({:family => 'debian', :release => nil, :arch => 'x86_64' })
|
136
141
|
end
|
137
142
|
end
|
138
143
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Specinfra::Command::Base do
|
4
|
+
after do
|
5
|
+
property[:os_by_host] = nil
|
6
|
+
end
|
7
|
+
|
8
|
+
context 'family: base, release: nil' do
|
9
|
+
before do
|
10
|
+
set :os, :family => 'base'
|
11
|
+
end
|
12
|
+
it { expect(subject.command_class('file')).to be Specinfra::Command::Base::File }
|
13
|
+
end
|
14
|
+
|
15
|
+
context 'family: redhat, release: nil' do
|
16
|
+
before do
|
17
|
+
set :os, :family => 'redhat'
|
18
|
+
end
|
19
|
+
it { expect(subject.command_class('file')).to be Specinfra::Command::Redhat::Base::File }
|
20
|
+
end
|
21
|
+
|
22
|
+
context 'family: redhat, release: 7' do
|
23
|
+
before do
|
24
|
+
set :os, :family => 'redhat', :release => 7
|
25
|
+
end
|
26
|
+
xit { expect(subject.command_class('file')).to be Specinfra::Command::Redhat::V7::File }
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Specinfra::Command::Redhat::V7::Service do
|
4
|
+
it { expect(subject.check_is_enabled('httpd')).to eq "systemctl --plain list-dependencies multi-user.target | grep '^httpd.service$'" }
|
5
|
+
it { expect(subject.check_is_enabled('httpd', 'multi-user.target')).to eq "systemctl --plain list-dependencies multi-user.target | grep '^httpd.service$'" }
|
6
|
+
it { expect(subject.check_is_enabled('httpd', 3)).to eq "systemctl --plain list-dependencies runlevel3.target | grep '^httpd.service$'" }
|
7
|
+
it { expect(subject.check_is_enabled('httpd', '3')).to eq "systemctl --plain list-dependencies runlevel3.target | grep '^httpd.service$'" }
|
8
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
def set_stub_chain(keys, value)
|
4
|
+
allow(Specinfra).to receive_message_chain([:configuration, keys].flatten).and_return(value)
|
5
|
+
end
|
6
|
+
|
7
|
+
describe 'no ssh connection without cache' do
|
8
|
+
before do
|
9
|
+
set_stub_chain(:ssh, nil)
|
10
|
+
set_stub_chain(:ssh_options, nil)
|
11
|
+
set_stub_chain(:host, 'localhost')
|
12
|
+
set_stub_chain(:os, :family => 'redhat')
|
13
|
+
end
|
14
|
+
|
15
|
+
it { expect(property[:os_by_host]).to eq nil }
|
16
|
+
it { expect(os[:family]).to eq 'redhat' }
|
17
|
+
end
|
18
|
+
|
19
|
+
describe 'no ssh connection with cache' do
|
20
|
+
it { expect(property[:os_by_host]['localhost:0']).to eq(:family => 'redhat') }
|
21
|
+
end
|
22
|
+
|
23
|
+
describe 'ssh_options without cache' do
|
24
|
+
before do
|
25
|
+
set_stub_chain(:ssh, nil)
|
26
|
+
set_stub_chain(:ssh_options, :port => 22)
|
27
|
+
set_stub_chain(:host, 'localhost')
|
28
|
+
set_stub_chain(:os, :family => 'ubuntu')
|
29
|
+
end
|
30
|
+
|
31
|
+
it { expect(property[:os_by_host]['localhost:22']).to eq nil }
|
32
|
+
it { expect(os[:family]).to eq 'ubuntu' }
|
33
|
+
end
|
34
|
+
|
35
|
+
describe 'ssh_options with cache' do
|
36
|
+
it { expect(property[:os_by_host]['localhost:22']).to eq(:family => 'ubuntu') }
|
37
|
+
end
|
38
|
+
|
39
|
+
describe 'ssh_connection without cache' do
|
40
|
+
before do
|
41
|
+
set_stub_chain([:ssh, :host], 'localhost')
|
42
|
+
set_stub_chain([:ssh, :options], :port => 2222)
|
43
|
+
set_stub_chain(:os, :family => 'nixos')
|
44
|
+
end
|
45
|
+
|
46
|
+
it { expect(property[:os_by_host]['localhost:2222']).to eq nil }
|
47
|
+
it { expect(os[:family]).to eq 'nixos' }
|
48
|
+
end
|
49
|
+
|
50
|
+
describe 'ssh_connection wit cache' do
|
51
|
+
before do
|
52
|
+
set_stub_chain([:ssh, :host], 'localhost')
|
53
|
+
set_stub_chain([:ssh, :options], :port => 2222)
|
54
|
+
set_stub_chain(:os, :family => 'nixos')
|
55
|
+
end
|
56
|
+
|
57
|
+
it { expect(property[:os_by_host]['localhost:2222']).to eq(:family => 'nixos') }
|
58
|
+
end
|