serverspec 0.2.13 → 0.2.14

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -75,14 +75,10 @@ end
75
75
 
76
76
  You can write spec for testing servers like this.
77
77
 
78
- You should create ~/.ssh/config like this before running tests because serverspec tests servers through SSH access.
78
+ Serverspec with SSH backend logs in to target servers as a user configured in ``~/.ssh/config`` or a current user.If you'd lile to change the user, please edit the below line in ``spec/spec_helper.rb``.
79
79
 
80
- ```
81
- Host *.example.jp
82
- User root
83
- IdentityFile ~/.ssh/id_rsa
84
- StrictHostKeyChecking no
85
- UserKnownHostsFile /dev/null
80
+ ```ruby
81
+ user = options[:user] || Etc.getlogin
86
82
  ```
87
83
 
88
84
  Run tests.
@@ -116,6 +116,10 @@ module Serverspec
116
116
  def check_svcprops svc, property
117
117
  raise NotImplementedError.new
118
118
  end
119
+
120
+ def check_selinux mode
121
+ "/usr/sbin/getenforce | grep -i '#{mode}'"
122
+ end
119
123
  end
120
124
  end
121
125
  end
@@ -20,6 +20,9 @@ require 'serverspec/matchers/be_zfs'
20
20
  require 'serverspec/matchers/be_readable'
21
21
  require 'serverspec/matchers/be_writable'
22
22
  require 'serverspec/matchers/be_executable'
23
+ require 'serverspec/matchers/be_enforcing'
24
+ require 'serverspec/matchers/be_permissive'
25
+ require 'serverspec/matchers/be_disabled'
23
26
  require 'serverspec/matchers/have_ipfilter_rule'
24
27
  require 'serverspec/matchers/have_ipnat_rule'
25
28
  require 'serverspec/matchers/have_svcprop'
@@ -0,0 +1,5 @@
1
+ RSpec::Matchers.define :be_disabled do
2
+ match do |actual|
3
+ backend.check_selinux(example, 'disabled')
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ RSpec::Matchers.define :be_enforcing do
2
+ match do |actual|
3
+ backend.check_selinux(example, 'enforcing')
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ RSpec::Matchers.define :be_permissive do
2
+ match do |actual|
3
+ backend.check_selinux(example, 'permissive')
4
+ end
5
+ end
@@ -1,3 +1,3 @@
1
1
  module Serverspec
2
- VERSION = "0.2.13"
2
+ VERSION = "0.2.14"
3
3
  end
@@ -1,103 +1,148 @@
1
1
  require 'spec_helper'
2
2
 
3
- include Serverspec::Helper::Debian
4
-
5
- describe commands.check_enabled('httpd') do
3
+ describe 'check_enabled', :os => :debian do
4
+ subject { commands.check_enabled('httpd') }
6
5
  it { should eq 'ls /etc/rc3.d/ | grep httpd' }
7
6
  end
8
7
 
9
- describe commands.check_file('/etc/passwd') do
8
+ describe 'check_file', :os => :debian do
9
+ subject { commands.check_file('/etc/passwd') }
10
10
  it { should eq 'test -f /etc/passwd' }
11
11
  end
12
12
 
13
- describe commands.check_directory('/var/log') do
13
+ describe 'check_directory', :os => :debian do
14
+ subject { commands.check_directory('/var/log') }
14
15
  it { should eq 'test -d /var/log' }
15
16
  end
16
17
 
17
- describe commands.check_user('root') do
18
+ describe 'check_user', :os => :debian do
19
+ subject { commands.check_user('root') }
18
20
  it { should eq 'id root' }
19
21
  end
20
22
 
21
- describe commands.check_group('wheel') do
23
+ describe 'check_group', :os => :debian do
24
+ subject { commands.check_group('wheel') }
22
25
  it { should eq 'getent group | grep -wq wheel' }
23
26
  end
24
27
 
25
- describe commands.check_installed('httpd') do
28
+ describe 'check_installed', :os => :debian do
29
+ subject { commands.check_installed('httpd') }
26
30
  it { should eq 'dpkg -s httpd' }
27
31
  end
28
32
 
29
- describe commands.check_listening(80) do
33
+ describe 'check_listening', :os => :debian do
34
+ subject { commands.check_listening(80) }
30
35
  it { should eq "netstat -tunl | grep ':80 '" }
31
36
  end
32
37
 
33
- describe commands.check_running('httpd') do
38
+ describe 'check_running', :os => :debian do
39
+ subject { commands.check_running('httpd') }
34
40
  it { should eq 'service httpd status' }
35
41
  end
36
42
 
37
- describe commands.check_running_under_supervisor('httpd') do
43
+
44
+ describe 'check_running_under_supervisor', :os => :debian do
45
+ subject { commands.check_running_under_supervisor('httpd') }
38
46
  it { should eq 'supervisorctl status httpd' }
39
47
  end
40
48
 
41
- describe commands.check_process('httpd') do
49
+ describe 'check_process', :os => :debian do
50
+ subject { commands.check_process('httpd') }
42
51
  it { should eq 'ps aux | grep -w httpd | grep -qv grep' }
43
52
  end
44
53
 
45
- describe commands.check_file_contain('/etc/passwd', 'root') do
54
+ describe 'check_file_contain', :os => :debian do
55
+ subject { commands.check_file_contain('/etc/passwd', 'root') }
46
56
  it { should eq "grep -q 'root' /etc/passwd" }
47
57
  end
48
58
 
49
- describe commands.check_file_contain_within('Gemfile', 'rspec') do
50
- it { should eq "sed -n '1,$p' Gemfile | grep -q 'rspec' -" }
51
- end
59
+ describe 'check_file_contain_within', :os => :debian do
60
+ context 'contain a pattern in the file' do
61
+ subject { commands.check_file_contain_within('Gemfile', 'rspec') }
62
+ it { should eq "sed -n '1,$p' Gemfile | grep -q 'rspec' -" }
63
+ end
52
64
 
53
- describe commands.check_file_contain_within('Gemfile', 'rspec', '/^group :test do/') do
54
- it { should eq "sed -n '/^group :test do/,$p' Gemfile | grep -q 'rspec' -" }
55
- end
65
+ context 'contain a pattern after a line in a file' do
66
+ subject { commands.check_file_contain_within('Gemfile', 'rspec', '/^group :test do/') }
67
+ it { should eq "sed -n '/^group :test do/,$p' Gemfile | grep -q 'rspec' -" }
68
+ end
56
69
 
57
- describe commands.check_file_contain_within('Gemfile', 'rspec', nil, '/^end/') do
58
- it { should eq "sed -n '1,/^end/p' Gemfile | grep -q 'rspec' -" }
59
- end
70
+ context 'contain a pattern before a line in a file' do
71
+ subject {commands.check_file_contain_within('Gemfile', 'rspec', nil, '/^end/') }
72
+ it { should eq "sed -n '1,/^end/p' Gemfile | grep -q 'rspec' -" }
73
+ end
60
74
 
61
- describe commands.check_file_contain_within('Gemfile', 'rspec', '/^group :test do/', '/^end/') do
62
- it { should eq "sed -n '/^group :test do/,/^end/p' Gemfile | grep -q 'rspec' -" }
75
+ context 'contain a pattern from within a line and another line in a file' do
76
+ subject { commands.check_file_contain_within('Gemfile', 'rspec', '/^group :test do/', '/^end/') }
77
+ it { should eq "sed -n '/^group :test do/,/^end/p' Gemfile | grep -q 'rspec' -" }
78
+ end
63
79
  end
64
80
 
65
- describe commands.check_mode('/etc/sudoers', 440) do
81
+ describe 'check_mode', :os => :debian do
82
+ subject { commands.check_mode('/etc/sudoers', 440) }
66
83
  it { should eq 'stat -c %a /etc/sudoers | grep \'^440$\'' }
67
84
  end
68
85
 
69
- describe commands.check_owner('/etc/passwd', 'root') do
86
+ describe 'check_owner', :os => :debian do
87
+ subject { commands.check_owner('/etc/passwd', 'root') }
70
88
  it { should eq 'stat -c %U /etc/passwd | grep \'^root$\'' }
71
89
  end
72
90
 
73
- describe commands.check_grouped('/etc/passwd', 'wheel') do
91
+ describe 'check_grouped', :os => :debian do
92
+ subject { commands.check_grouped('/etc/passwd', 'wheel') }
74
93
  it { should eq 'stat -c %G /etc/passwd | grep \'^wheel$\'' }
75
94
  end
76
95
 
77
- describe commands.check_cron_entry('root', '* * * * * /usr/local/bin/batch.sh') do
96
+ describe 'check_cron_entry', :os => :debian do
97
+ subject { commands.check_cron_entry('root', '* * * * * /usr/local/bin/batch.sh') }
78
98
  it { should eq 'crontab -u root -l | grep "\* \* \* \* \* /usr/local/bin/batch.sh"' }
79
99
  end
80
100
 
81
- describe commands.check_link('/etc/system-release', '/etc/redhat-release') do
101
+ describe 'check_link', :os => :debian do
102
+ subject { commands.check_link('/etc/system-release', '/etc/redhat-release') }
82
103
  it { should eq 'stat -c %N /etc/system-release | grep /etc/redhat-release' }
83
104
  end
84
105
 
85
- describe commands.check_installed_by_gem('jekyll') do
106
+ describe 'check_installed_by_gem', :os => :debian do
107
+ subject { commands.check_installed_by_gem('jekyll') }
86
108
  it { should eq 'gem list --local | grep \'^jekyll \'' }
87
109
  end
88
110
 
89
- describe commands.check_belonging_group('root', 'wheel') do
111
+ describe 'check_belonging_group', :os => :debian do
112
+ subject { commands.check_belonging_group('root', 'wheel') }
90
113
  it { should eq "id root | awk '{print $3}' | grep wheel" }
91
114
  end
92
115
 
93
- describe commands.check_iptables_rule('-P INPUT ACCEPT') do
94
- it { should eq "iptables -S | grep '\\-P INPUT ACCEPT'" }
116
+ describe 'check_ipatbles', :os => :debian do
117
+ context 'check a rule without a table and a chain' do
118
+ subject { commands.check_iptables_rule('-P INPUT ACCEPT') }
119
+ it { should eq "iptables -S | grep '\\-P INPUT ACCEPT'" }
120
+ end
121
+
122
+ context 'chack a rule with a table and a chain' do
123
+ subject { commands.check_iptables_rule('-P INPUT ACCEPT', 'mangle', 'INPUT') }
124
+ it { should eq "iptables -t mangle -S INPUT | grep '\\-P INPUT ACCEPT'" }
125
+ end
95
126
  end
96
127
 
97
- describe commands.check_iptables_rule('-P INPUT ACCEPT', 'mangle', 'INPUT') do
98
- it { should eq "iptables -t mangle -S INPUT | grep '\\-P INPUT ACCEPT'" }
128
+ describe 'check_selinux', :os => :debian do
129
+ context 'enforcing' do
130
+ subject { commands.check_selinux('enforcing') }
131
+ it { should eq "/usr/sbin/getenforce | grep -i 'enforcing'" }
132
+ end
133
+
134
+ context 'permissive' do
135
+ subject { commands.check_selinux('permissive') }
136
+ it { should eq "/usr/sbin/getenforce | grep -i 'permissive'" }
137
+ end
138
+
139
+ context 'disabled' do
140
+ subject { commands.check_selinux('disabled') }
141
+ it { should eq "/usr/sbin/getenforce | grep -i 'disabled'" }
142
+ end
99
143
  end
100
144
 
101
- describe commands.get_mode('/dev') do
145
+ describe 'get_mode', :os => :debian do
146
+ subject { commands.get_mode('/dev') }
102
147
  it { should eq 'stat -c %a /dev' }
103
148
  end
@@ -35,8 +35,6 @@ describe 'Serverspec matchers of Debian family', :os => :debian do
35
35
  it_behaves_like 'support have_iptables_rule matcher', '-P INPUT ACCEPT'
36
36
  it_behaves_like 'support have_iptables_rule.with_table.with_chain matcher', '-P INPUT ACCEPT', 'mangle', 'INPUT'
37
37
 
38
- it_behaves_like 'support get_stdout matcher', 'whoami', 'root'
39
-
40
38
  it_behaves_like 'support be_readable matcher', '/dev'
41
39
  it_behaves_like 'support be_readable_by_owner matcher', '/dev'
42
40
  it_behaves_like 'support be_readable_by_group matcher', '/dev'
@@ -1,103 +1,147 @@
1
1
  require 'spec_helper'
2
2
 
3
- include Serverspec::Helper::Gentoo
4
-
5
- describe commands.check_enabled('httpd') do
3
+ describe 'check_enabled', :os => :gentoo do
4
+ subject { commands.check_enabled('httpd') }
6
5
  it { should eq "/sbin/rc-update show | grep '^\\s*httpd\\s*|\\s*\\(boot\\|default\\)'" }
7
6
  end
8
7
 
9
- describe commands.check_file('/etc/passwd') do
8
+ describe 'check_file', :os => :gentoo do
9
+ subject { commands.check_file('/etc/passwd') }
10
10
  it { should eq 'test -f /etc/passwd' }
11
11
  end
12
12
 
13
- describe commands.check_directory('/var/log') do
13
+ describe 'check_directory', :os => :gentoo do
14
+ subject { commands.check_directory('/var/log') }
14
15
  it { should eq 'test -d /var/log' }
15
16
  end
16
17
 
17
- describe commands.check_user('root') do
18
+ describe 'check_user', :os => :gentoo do
19
+ subject { commands.check_user('root') }
18
20
  it { should eq 'id root' }
19
21
  end
20
22
 
21
- describe commands.check_group('wheel') do
23
+ describe 'check_group', :os => :gentoo do
24
+ subject { commands.check_group('wheel') }
22
25
  it { should eq 'getent group | grep -wq wheel' }
23
26
  end
24
27
 
25
- describe commands.check_installed('httpd') do
28
+ describe 'check_installed', :os => :gentoo do
29
+ subject { commands.check_installed('httpd') }
26
30
  it { should eq '/usr/bin/eix httpd --installed' }
27
31
  end
28
32
 
29
- describe commands.check_listening(80) do
33
+ describe 'check_listening', :os => :gentoo do
34
+ subject { commands.check_listening(80) }
30
35
  it { should eq "netstat -tunl | grep ':80 '" }
31
36
  end
32
37
 
33
- describe commands.check_running('httpd') do
38
+ describe 'check_running', :os => :gentoo do
39
+ subject { commands.check_running('httpd') }
34
40
  it { should eq 'service httpd status' }
35
41
  end
36
42
 
37
- describe commands.check_running_under_supervisor('httpd') do
43
+ describe 'check_running_under_supervisor', :os => :gentoo do
44
+ subject { commands.check_running_under_supervisor('httpd') }
38
45
  it { should eq 'supervisorctl status httpd' }
39
46
  end
40
47
 
41
- describe commands.check_process('httpd') do
48
+ describe 'check_process', :os => :gentoo do
49
+ subject { commands.check_process('httpd') }
42
50
  it { should eq 'ps aux | grep -w httpd | grep -qv grep' }
43
51
  end
44
52
 
45
- describe commands.check_file_contain('/etc/passwd', 'root') do
53
+ describe 'check_file_contain', :os => :gentoo do
54
+ subject { commands.check_file_contain('/etc/passwd', 'root') }
46
55
  it { should eq "grep -q 'root' /etc/passwd" }
47
56
  end
48
57
 
49
- describe commands.check_file_contain_within('Gemfile', 'rspec') do
50
- it { should eq "sed -n '1,$p' Gemfile | grep -q 'rspec' -" }
51
- end
58
+ describe 'check_file_contain_within', :os => :gentoo do
59
+ context 'contain a pattern in the file' do
60
+ subject { commands.check_file_contain_within('Gemfile', 'rspec') }
61
+ it { should eq "sed -n '1,$p' Gemfile | grep -q 'rspec' -" }
62
+ end
52
63
 
53
- describe commands.check_file_contain_within('Gemfile', 'rspec', '/^group :test do/') do
54
- it { should eq "sed -n '/^group :test do/,$p' Gemfile | grep -q 'rspec' -" }
55
- end
64
+ context 'contain a pattern after a line in a file' do
65
+ subject { commands.check_file_contain_within('Gemfile', 'rspec', '/^group :test do/') }
66
+ it { should eq "sed -n '/^group :test do/,$p' Gemfile | grep -q 'rspec' -" }
67
+ end
56
68
 
57
- describe commands.check_file_contain_within('Gemfile', 'rspec', nil, '/^end/') do
58
- it { should eq "sed -n '1,/^end/p' Gemfile | grep -q 'rspec' -" }
59
- end
69
+ context 'contain a pattern before a line in a file' do
70
+ subject {commands.check_file_contain_within('Gemfile', 'rspec', nil, '/^end/') }
71
+ it { should eq "sed -n '1,/^end/p' Gemfile | grep -q 'rspec' -" }
72
+ end
60
73
 
61
- describe commands.check_file_contain_within('Gemfile', 'rspec', '/^group :test do/', '/^end/') do
62
- it { should eq "sed -n '/^group :test do/,/^end/p' Gemfile | grep -q 'rspec' -" }
74
+ context 'contain a pattern from within a line and another line in a file' do
75
+ subject { commands.check_file_contain_within('Gemfile', 'rspec', '/^group :test do/', '/^end/') }
76
+ it { should eq "sed -n '/^group :test do/,/^end/p' Gemfile | grep -q 'rspec' -" }
77
+ end
63
78
  end
64
79
 
65
- describe commands.check_mode('/etc/sudoers', 440) do
80
+ describe 'check_mode', :os => :gentoo do
81
+ subject { commands.check_mode('/etc/sudoers', 440) }
66
82
  it { should eq 'stat -c %a /etc/sudoers | grep \'^440$\'' }
67
83
  end
68
84
 
69
- describe commands.check_owner('/etc/passwd', 'root') do
85
+ describe 'check_owner', :os => :gentoo do
86
+ subject { commands.check_owner('/etc/passwd', 'root') }
70
87
  it { should eq 'stat -c %U /etc/passwd | grep \'^root$\'' }
71
88
  end
72
89
 
73
- describe commands.check_grouped('/etc/passwd', 'wheel') do
90
+ describe 'check_grouped', :os => :gentoo do
91
+ subject { commands.check_grouped('/etc/passwd', 'wheel') }
74
92
  it { should eq 'stat -c %G /etc/passwd | grep \'^wheel$\'' }
75
93
  end
76
94
 
77
- describe commands.check_cron_entry('root', '* * * * * /usr/local/bin/batch.sh') do
95
+ describe 'check_cron_entry', :os => :gentoo do
96
+ subject { commands.check_cron_entry('root', '* * * * * /usr/local/bin/batch.sh') }
78
97
  it { should eq 'crontab -u root -l | grep "\* \* \* \* \* /usr/local/bin/batch.sh"' }
79
98
  end
80
99
 
81
- describe commands.check_link('/etc/system-release', '/etc/redhat-release') do
100
+ describe 'check_link', :os => :gentoo do
101
+ subject { commands.check_link('/etc/system-release', '/etc/redhat-release') }
82
102
  it { should eq 'stat -c %N /etc/system-release | grep /etc/redhat-release' }
83
103
  end
84
104
 
85
- describe commands.check_installed_by_gem('jekyll') do
105
+ describe 'check_installed_by_gem', :os => :gentoo do
106
+ subject { commands.check_installed_by_gem('jekyll') }
86
107
  it { should eq 'gem list --local | grep \'^jekyll \'' }
87
108
  end
88
109
 
89
- describe commands.check_belonging_group('root', 'wheel') do
110
+ describe 'check_belonging_group', :os => :gentoo do
111
+ subject { commands.check_belonging_group('root', 'wheel') }
90
112
  it { should eq "id root | awk '{print $3}' | grep wheel" }
91
113
  end
92
114
 
93
- describe commands.check_iptables_rule('-P INPUT ACCEPT') do
94
- it { should eq "iptables -S | grep '\\-P INPUT ACCEPT'" }
115
+ describe 'check_ipatbles', :os => :gentoo do
116
+ context 'check a rule without a table and a chain' do
117
+ subject { commands.check_iptables_rule('-P INPUT ACCEPT') }
118
+ it { should eq "iptables -S | grep '\\-P INPUT ACCEPT'" }
119
+ end
120
+
121
+ context 'chack a rule with a table and a chain' do
122
+ subject { commands.check_iptables_rule('-P INPUT ACCEPT', 'mangle', 'INPUT') }
123
+ it { should eq "iptables -t mangle -S INPUT | grep '\\-P INPUT ACCEPT'" }
124
+ end
95
125
  end
96
126
 
97
- describe commands.check_iptables_rule('-P INPUT ACCEPT', 'mangle', 'INPUT') do
98
- it { should eq "iptables -t mangle -S INPUT | grep '\\-P INPUT ACCEPT'" }
127
+ describe 'check_selinux', :os => :gentoo do
128
+ context 'enforcing' do
129
+ subject { commands.check_selinux('enforcing') }
130
+ it { should eq "/usr/sbin/getenforce | grep -i 'enforcing'" }
131
+ end
132
+
133
+ context 'permissive' do
134
+ subject { commands.check_selinux('permissive') }
135
+ it { should eq "/usr/sbin/getenforce | grep -i 'permissive'" }
136
+ end
137
+
138
+ context 'disabled' do
139
+ subject { commands.check_selinux('disabled') }
140
+ it { should eq "/usr/sbin/getenforce | grep -i 'disabled'" }
141
+ end
99
142
  end
100
143
 
101
- describe commands.get_mode('/dev') do
144
+ describe 'get_mode', :os => :gentoo do
145
+ subject { commands.get_mode('/dev') }
102
146
  it { should eq 'stat -c %a /dev' }
103
147
  end
@@ -36,8 +36,6 @@ describe 'Serverspec matchers of Gentoo family', :os => :gentoo do
36
36
  it_behaves_like 'support have_iptables_rule matcher', '-P INPUT ACCEPT'
37
37
  it_behaves_like 'support have_iptables_rule.with_table.with_chain matcher', '-P INPUT ACCEPT', 'mangle', 'INPUT'
38
38
 
39
- it_behaves_like 'support get_stdout matcher', 'whoami', 'root'
40
-
41
39
  it_behaves_like 'support be_readable matcher', '/dev'
42
40
  it_behaves_like 'support be_readable_by_owner matcher', '/dev'
43
41
  it_behaves_like 'support be_readable_by_group matcher', '/dev'
@@ -1,103 +1,147 @@
1
1
  require 'spec_helper'
2
2
 
3
- include Serverspec::Helper::RedHat
4
-
5
- describe commands.check_enabled('httpd') do
3
+ describe 'check_enabled', :os => :redhat do
4
+ subject { commands.check_enabled('httpd') }
6
5
  it { should eq 'chkconfig --list httpd | grep 3:on' }
7
6
  end
8
7
 
9
- describe commands.check_file('/etc/passwd') do
8
+ describe 'check_file', :os => :redhat do
9
+ subject { commands.check_file('/etc/passwd') }
10
10
  it { should eq 'test -f /etc/passwd' }
11
11
  end
12
12
 
13
- describe commands.check_directory('/var/log') do
13
+ describe 'check_directory', :os => :redhat do
14
+ subject { commands.check_directory('/var/log') }
14
15
  it { should eq 'test -d /var/log' }
15
16
  end
16
17
 
17
- describe commands.check_user('root') do
18
+ describe 'check_user', :os => :redhat do
19
+ subject { commands.check_user('root') }
18
20
  it { should eq 'id root' }
19
21
  end
20
22
 
21
- describe commands.check_group('wheel') do
23
+ describe 'check_group', :os => :redhat do
24
+ subject { commands.check_group('wheel') }
22
25
  it { should eq 'getent group | grep -wq wheel' }
23
26
  end
24
27
 
25
- describe commands.check_installed('httpd') do
28
+ describe 'check_installed', :os => :redhat do
29
+ subject { commands.check_installed('httpd') }
26
30
  it { should eq 'rpm -q httpd' }
27
31
  end
28
32
 
29
- describe commands.check_listening(80) do
33
+ describe 'check_listening', :os => :redhat do
34
+ subject { commands.check_listening(80) }
30
35
  it { should eq "netstat -tunl | grep ':80 '" }
31
36
  end
32
37
 
33
- describe commands.check_running('httpd') do
38
+ describe 'check_running', :os => :redhat do
39
+ subject { commands.check_running('httpd') }
34
40
  it { should eq 'service httpd status' }
35
41
  end
36
42
 
37
- describe commands.check_running_under_supervisor('httpd') do
43
+ describe 'check_running_under_supervisor', :os => :redhat do
44
+ subject { commands.check_running_under_supervisor('httpd') }
38
45
  it { should eq 'supervisorctl status httpd' }
39
46
  end
40
47
 
41
- describe commands.check_process('httpd') do
48
+ describe 'check_process', :os => :redhat do
49
+ subject { commands.check_process('httpd') }
42
50
  it { should eq 'ps aux | grep -w httpd | grep -qv grep' }
43
51
  end
44
52
 
45
- describe commands.check_file_contain('/etc/passwd', 'root') do
53
+ describe 'check_file_contain', :os => :redhat do
54
+ subject { commands.check_file_contain('/etc/passwd', 'root') }
46
55
  it { should eq "grep -q 'root' /etc/passwd" }
47
56
  end
48
57
 
49
- describe commands.check_file_contain_within('Gemfile', 'rspec') do
50
- it { should eq "sed -n '1,$p' Gemfile | grep -q 'rspec' -" }
51
- end
58
+ describe 'check_file_contain_within', :os => :redhat do
59
+ context 'contain a pattern in the file' do
60
+ subject { commands.check_file_contain_within('Gemfile', 'rspec') }
61
+ it { should eq "sed -n '1,$p' Gemfile | grep -q 'rspec' -" }
62
+ end
52
63
 
53
- describe commands.check_file_contain_within('Gemfile', 'rspec', '/^group :test do/') do
54
- it { should eq "sed -n '/^group :test do/,$p' Gemfile | grep -q 'rspec' -" }
55
- end
64
+ context 'contain a pattern after a line in a file' do
65
+ subject { commands.check_file_contain_within('Gemfile', 'rspec', '/^group :test do/') }
66
+ it { should eq "sed -n '/^group :test do/,$p' Gemfile | grep -q 'rspec' -" }
67
+ end
56
68
 
57
- describe commands.check_file_contain_within('Gemfile', 'rspec', nil, '/^end/') do
58
- it { should eq "sed -n '1,/^end/p' Gemfile | grep -q 'rspec' -" }
59
- end
69
+ context 'contain a pattern before a line in a file' do
70
+ subject {commands.check_file_contain_within('Gemfile', 'rspec', nil, '/^end/') }
71
+ it { should eq "sed -n '1,/^end/p' Gemfile | grep -q 'rspec' -" }
72
+ end
60
73
 
61
- describe commands.check_file_contain_within('Gemfile', 'rspec', '/^group :test do/', '/^end/') do
62
- it { should eq "sed -n '/^group :test do/,/^end/p' Gemfile | grep -q 'rspec' -" }
74
+ context 'contain a pattern from within a line and another line in a file' do
75
+ subject { commands.check_file_contain_within('Gemfile', 'rspec', '/^group :test do/', '/^end/') }
76
+ it { should eq "sed -n '/^group :test do/,/^end/p' Gemfile | grep -q 'rspec' -" }
77
+ end
63
78
  end
64
79
 
65
- describe commands.check_mode('/etc/sudoers', 440) do
80
+ describe 'check_mode', :os => :redhat do
81
+ subject { commands.check_mode('/etc/sudoers', 440) }
66
82
  it { should eq 'stat -c %a /etc/sudoers | grep \'^440$\'' }
67
83
  end
68
84
 
69
- describe commands.check_owner('/etc/passwd', 'root') do
85
+ describe 'check_owner', :os => :redhat do
86
+ subject { commands.check_owner('/etc/passwd', 'root') }
70
87
  it { should eq 'stat -c %U /etc/passwd | grep \'^root$\'' }
71
88
  end
72
89
 
73
- describe commands.check_grouped('/etc/passwd', 'wheel') do
90
+ describe 'check_grouped', :os => :redhat do
91
+ subject { commands.check_grouped('/etc/passwd', 'wheel') }
74
92
  it { should eq 'stat -c %G /etc/passwd | grep \'^wheel$\'' }
75
93
  end
76
94
 
77
- describe commands.check_cron_entry('root', '* * * * * /usr/local/bin/batch.sh') do
95
+ describe 'check_cron_entry', :os => :redhat do
96
+ subject { commands.check_cron_entry('root', '* * * * * /usr/local/bin/batch.sh') }
78
97
  it { should eq 'crontab -u root -l | grep "\* \* \* \* \* /usr/local/bin/batch.sh"' }
79
98
  end
80
99
 
81
- describe commands.check_link('/etc/system-release', '/etc/redhat-release') do
100
+ describe 'check_link', :os => :redhat do
101
+ subject { commands.check_link('/etc/system-release', '/etc/redhat-release') }
82
102
  it { should eq 'stat -c %N /etc/system-release | grep /etc/redhat-release' }
83
103
  end
84
104
 
85
- describe commands.check_installed_by_gem('jekyll') do
105
+ describe 'check_installed_by_gem', :os => :redhat do
106
+ subject { commands.check_installed_by_gem('jekyll') }
86
107
  it { should eq 'gem list --local | grep \'^jekyll \'' }
87
108
  end
88
109
 
89
- describe commands.check_belonging_group('root', 'wheel') do
110
+ describe 'check_belonging_group', :os => :redhat do
111
+ subject { commands.check_belonging_group('root', 'wheel') }
90
112
  it { should eq "id root | awk '{print $3}' | grep wheel" }
91
113
  end
92
114
 
93
- describe commands.check_iptables_rule('-P INPUT ACCEPT') do
94
- it { should eq "iptables -S | grep '\\-P INPUT ACCEPT'" }
115
+ describe 'check_ipatbles', :os => :redhat do
116
+ context 'check a rule without a table and a chain' do
117
+ subject { commands.check_iptables_rule('-P INPUT ACCEPT') }
118
+ it { should eq "iptables -S | grep '\\-P INPUT ACCEPT'" }
119
+ end
120
+
121
+ context 'chack a rule with a table and a chain' do
122
+ subject { commands.check_iptables_rule('-P INPUT ACCEPT', 'mangle', 'INPUT') }
123
+ it { should eq "iptables -t mangle -S INPUT | grep '\\-P INPUT ACCEPT'" }
124
+ end
95
125
  end
96
126
 
97
- describe commands.check_iptables_rule('-P INPUT ACCEPT', 'mangle', 'INPUT') do
98
- it { should eq "iptables -t mangle -S INPUT | grep '\\-P INPUT ACCEPT'" }
127
+ describe 'check_selinux', :os => :redhat do
128
+ context 'enforcing' do
129
+ subject { commands.check_selinux('enforcing') }
130
+ it { should eq "/usr/sbin/getenforce | grep -i 'enforcing'" }
131
+ end
132
+
133
+ context 'permissive' do
134
+ subject { commands.check_selinux('permissive') }
135
+ it { should eq "/usr/sbin/getenforce | grep -i 'permissive'" }
136
+ end
137
+
138
+ context 'disabled' do
139
+ subject { commands.check_selinux('disabled') }
140
+ it { should eq "/usr/sbin/getenforce | grep -i 'disabled'" }
141
+ end
99
142
  end
100
143
 
101
- describe commands.get_mode('/dev') do
144
+ describe 'get_mode', :os => :redhat do
145
+ subject { commands.get_mode('/dev') }
102
146
  it { should eq 'stat -c %a /dev' }
103
147
  end
@@ -37,8 +37,6 @@ describe 'Serverspec matchers of Red Hat family', :os => :redhat do
37
37
  it_behaves_like 'support have_iptables_rule matcher', '-P INPUT ACCEPT'
38
38
  it_behaves_like 'support have_iptables_rule.with_table.with_chain matcher', '-P INPUT ACCEPT', 'mangle', 'INPUT'
39
39
 
40
- it_behaves_like 'support get_stdout matcher', 'whoami', 'root'
41
-
42
40
  it_behaves_like 'support be_readable matcher', '/dev'
43
41
  it_behaves_like 'support be_readable_by_owner matcher', '/dev'
44
42
  it_behaves_like 'support be_readable_by_group matcher', '/dev'
@@ -54,6 +52,10 @@ describe 'Serverspec matchers of Red Hat family', :os => :redhat do
54
52
  it_behaves_like 'support be_executable_by_group matcher', '/dev'
55
53
  it_behaves_like 'support be_executable_by_others matcher', '/dev'
56
54
 
55
+ it_behaves_like 'support be_enforcing matcher', 'selinux'
56
+ it_behaves_like 'support be_permissive matcher', 'selinux'
57
+ it_behaves_like 'support be_disabled matcher', 'selinux'
58
+
57
59
  it_behaves_like 'support return_exit_status matcher', 'ls /tmp', 0
58
60
 
59
61
  it_behaves_like 'support return_stdout matcher', 'cat /etc/resolv.conf', 'localhost'
@@ -1,139 +1,162 @@
1
1
  require 'spec_helper'
2
2
 
3
- include Serverspec::Helper::Solaris
4
-
5
- describe commands.check_enabled('httpd') do
3
+ describe 'check_enabled', :os => :solaris do
4
+ subject { commands.check_enabled('httpd') }
6
5
  it { should eq "svcs -l httpd 2> /dev/null | grep 'enabled true'" }
7
6
  end
8
7
 
9
- describe commands.check_file('/etc/passwd') do
8
+ describe 'check_file', :os => :solaris do
9
+ subject { commands.check_file('/etc/passwd') }
10
10
  it { should eq 'test -f /etc/passwd' }
11
11
  end
12
12
 
13
- describe commands.check_directory('/var/log') do
13
+ describe 'check_directory', :os => :solaris do
14
+ subject { commands.check_directory('/var/log') }
14
15
  it { should eq 'test -d /var/log' }
15
16
  end
16
17
 
17
- describe commands.check_user('root') do
18
+ describe 'check_user', :os => :solaris do
19
+ subject { commands.check_user('root') }
18
20
  it { should eq 'id root' }
19
21
  end
20
22
 
21
- describe commands.check_group('wheel') do
23
+ describe 'check_group', :os => :solaris do
24
+ subject { commands.check_group('wheel') }
22
25
  it { should eq 'getent group | grep -wq wheel' }
23
26
  end
24
27
 
25
- describe commands.check_installed('httpd') do
28
+ describe 'check_installed', :os => :solaris do
29
+ subject { commands.check_installed('httpd') }
26
30
  it { should eq 'pkg list -H httpd 2> /dev/null' }
27
31
  end
28
32
 
29
- describe commands.check_listening(80) do
33
+ describe 'check_listening', :os => :solaris do
34
+ subject { commands.check_listening(80) }
30
35
  it { should eq "netstat -an 2> /dev/null | egrep 'LISTEN|Idle' | grep '.80 '" }
31
36
  end
32
37
 
33
- describe commands.check_running('httpd') do
38
+ describe 'check_running', :os => :solaris do
39
+ subject { commands.check_running('httpd') }
34
40
  it { should eq "svcs -l httpd status 2> /dev/null |grep 'state online'" }
35
41
  end
36
42
 
37
- describe commands.check_running_under_supervisor('httpd') do
43
+ describe 'check_running_under_supervisor', :os => :solaris do
44
+ subject { commands.check_running_under_supervisor('httpd') }
38
45
  it { should eq 'supervisorctl status httpd' }
39
46
  end
40
47
 
41
- describe commands.check_process('httpd') do
48
+ describe 'check_process', :os => :solaris do
49
+ subject { commands.check_process('httpd') }
42
50
  it { should eq 'ps aux | grep -w httpd | grep -qv grep' }
43
51
  end
44
52
 
45
- describe commands.check_file_contain('/etc/passwd', 'root') do
53
+ describe 'check_file_contain', :os => :solaris do
54
+ subject { commands.check_file_contain('/etc/passwd', 'root') }
46
55
  it { should eq "grep -q 'root' /etc/passwd" }
47
56
  end
48
57
 
49
- describe commands.check_file_contain_within('Gemfile', 'rspec') do
50
- it { should eq "sed -n '1,$p' Gemfile | grep -q 'rspec' -" }
51
- end
58
+ describe 'check_file_contain_within', :os => :solaris do
59
+ context 'contain a pattern in the file' do
60
+ subject { commands.check_file_contain_within('Gemfile', 'rspec') }
61
+ it { should eq "sed -n '1,$p' Gemfile | grep -q 'rspec' -" }
62
+ end
52
63
 
53
- describe commands.check_file_contain_within('Gemfile', 'rspec', '/^group :test do/') do
54
- it { should eq "sed -n '/^group :test do/,$p' Gemfile | grep -q 'rspec' -" }
55
- end
64
+ context 'contain a pattern after a line in a file' do
65
+ subject { commands.check_file_contain_within('Gemfile', 'rspec', '/^group :test do/') }
66
+ it { should eq "sed -n '/^group :test do/,$p' Gemfile | grep -q 'rspec' -" }
67
+ end
56
68
 
57
- describe commands.check_file_contain_within('Gemfile', 'rspec', nil, '/^end/') do
58
- it { should eq "sed -n '1,/^end/p' Gemfile | grep -q 'rspec' -" }
59
- end
69
+ context 'contain a pattern before a line in a file' do
70
+ subject {commands.check_file_contain_within('Gemfile', 'rspec', nil, '/^end/') }
71
+ it { should eq "sed -n '1,/^end/p' Gemfile | grep -q 'rspec' -" }
72
+ end
60
73
 
61
- describe commands.check_file_contain_within('Gemfile', 'rspec', '/^group :test do/', '/^end/') do
62
- it { should eq "sed -n '/^group :test do/,/^end/p' Gemfile | grep -q 'rspec' -" }
74
+ context 'contain a pattern from within a line and another line in a file' do
75
+ subject { commands.check_file_contain_within('Gemfile', 'rspec', '/^group :test do/', '/^end/') }
76
+ it { should eq "sed -n '/^group :test do/,/^end/p' Gemfile | grep -q 'rspec' -" }
77
+ end
63
78
  end
64
79
 
65
- describe commands.check_mode('/etc/sudoers', 440) do
80
+ describe 'check_mode', :os => :solaris do
81
+ subject { commands.check_mode('/etc/sudoers', 440) }
66
82
  it { should eq 'stat -c %a /etc/sudoers | grep \'^440$\'' }
67
83
  end
68
84
 
69
- describe commands.check_owner('/etc/passwd', 'root') do
85
+ describe 'check_owner', :os => :solaris do
86
+ subject { commands.check_owner('/etc/passwd', 'root') }
70
87
  it { should eq 'stat -c %U /etc/passwd | grep \'^root$\'' }
71
88
  end
72
89
 
73
- describe commands.check_grouped('/etc/passwd', 'wheel') do
90
+ describe 'check_grouped', :os => :solaris do
91
+ subject { commands.check_grouped('/etc/passwd', 'wheel') }
74
92
  it { should eq 'stat -c %G /etc/passwd | grep \'^wheel$\'' }
75
93
  end
76
94
 
77
- describe commands.check_cron_entry('root', '* * * * * /usr/local/bin/batch.sh') do
95
+ describe 'check_cron_entry', :os => :solaris do
96
+ subject { commands.check_cron_entry('root', '* * * * * /usr/local/bin/batch.sh') }
78
97
  it { should eq "crontab -l root | grep '\\* \\* \\* \\* \\* /usr/local/bin/batch.sh'" }
79
98
  end
80
99
 
81
- describe commands.check_link('/etc/system-release', '/etc/redhat-release') do
100
+ describe 'check_link', :os => :solaris do
101
+ subject { commands.check_link('/etc/system-release', '/etc/redhat-release') }
82
102
  it { should eq 'stat -c %N /etc/system-release | grep /etc/redhat-release' }
83
103
  end
84
104
 
85
- describe commands.check_installed_by_gem('jekyll') do
105
+ describe 'check_installed_by_gem', :os => :solaris do
106
+ subject { commands.check_installed_by_gem('jekyll') }
86
107
  it { should eq 'gem list --local | grep \'^jekyll \'' }
87
108
  end
88
109
 
89
- describe commands.check_belonging_group('root', 'wheel') do
110
+ describe 'check_belonging_group', :os => :solaris do
111
+ subject { commands.check_belonging_group('root', 'wheel') }
90
112
  it { should eq "id root | awk '{print $3}' | grep wheel" }
91
113
  end
92
114
 
93
- describe commands.check_zfs('rpool') do
94
- it { should eq "/sbin/zfs list -H rpool" }
95
- end
96
-
97
- describe commands.check_zfs('rpool', { 'mountpoint' => '/rpool' }) do
98
- it { should eq "/sbin/zfs list -H -o mountpoint rpool | grep ^/rpool$" }
99
- end
100
115
 
101
- describe commands.check_zfs('rpool', { 'mountpoint' => '/rpool' }) do
102
- it { should eq "/sbin/zfs list -H -o mountpoint rpool | grep ^/rpool$" }
103
- end
116
+ describe 'check_zfs', :os => :solaris do
117
+ context 'check without properties' do
118
+ subject { commands.check_zfs('rpool') }
119
+ it { should eq "/sbin/zfs list -H rpool" }
120
+ end
104
121
 
105
- check_zfs_with_multiple_properties = commands.check_zfs('rpool', {
106
- 'mountpoint' => '/rpool',
107
- 'compression' => 'off',
108
- })
122
+ context 'check with a property' do
123
+ subject { commands.check_zfs('rpool', { 'mountpoint' => '/rpool' }) }
124
+ it { should eq "/sbin/zfs list -H -o mountpoint rpool | grep ^/rpool$" }
125
+ end
109
126
 
110
- describe check_zfs_with_multiple_properties do
111
- it { should eq "/sbin/zfs list -H -o compression rpool | grep ^off$ && /sbin/zfs list -H -o mountpoint rpool | grep ^/rpool$" }
127
+ context 'check with multiple properties' do
128
+ subject { commands.check_zfs('rpool', { 'mountpoint' => '/rpool', 'compression' => 'off' }) }
129
+ it { should eq "/sbin/zfs list -H -o compression rpool | grep ^off$ && /sbin/zfs list -H -o mountpoint rpool | grep ^/rpool$" }
130
+ end
112
131
  end
113
132
 
114
- describe commands.get_mode('/dev') do
133
+ describe 'get_mode', :os => :solaris do
134
+ subject { commands.get_mode('/dev') }
115
135
  it { should eq 'stat -c %a /dev' }
116
136
  end
117
137
 
118
- describe commands.check_ipfilter_rule('pass in quick on lo0 all') do
138
+ describe 'check_ip_filter_rule', :os => :solaris do
139
+ subject { commands.check_ipfilter_rule('pass in quick on lo0 all') }
119
140
  it { should eq "/sbin/ipfstat -io 2> /dev/null | grep 'pass in quick on lo0 all'" }
120
141
  end
121
142
 
122
- describe commands.check_ipnat_rule('map net1 192.168.0.0/24 -> 0.0.0.0/32') do
143
+ describe 'check_ipnat_rule', :os => :solaris do
144
+ subject { commands.check_ipnat_rule('map net1 192.168.0.0/24 -> 0.0.0.0/32') }
123
145
  it { should eq "/sbin/ipnat -l 2> /dev/null | grep '^map net1 192.168.0.0/24 -> 0.0.0.0/32$'" }
124
146
  end
125
147
 
126
-
127
-
128
- describe commands.check_svcprop('svc:/network/http:apache22',
129
- 'httpd/enable_64bit','false') do
148
+ describe 'check_svcprop', :os => :solaris do
149
+ subject { commands.check_svcprop('svc:/network/http:apache22', 'httpd/enable_64bit','false') }
130
150
  it { should eq "svcprop -p httpd/enable_64bit svc:/network/http:apache22 | grep ^false$" }
131
151
  end
132
152
 
133
- describe commands.check_svcprops('svc:/network/http:apache22', {
134
- 'httpd/enable_64bit' => 'false',
135
- 'httpd/server_type' => 'worker',
136
- }) do
153
+ describe 'check_svcprops', :os => :solaris do
154
+ subject {
155
+ commands.check_svcprops('svc:/network/http:apache22', {
156
+ 'httpd/enable_64bit' => 'false',
157
+ 'httpd/server_type' => 'worker',
158
+ })
159
+ }
137
160
  it { should eq "svcprop -p httpd/enable_64bit svc:/network/http:apache22 | grep ^false$ && svcprop -p httpd/server_type svc:/network/http:apache22 | grep ^worker$" }
138
161
  end
139
162
 
@@ -33,7 +33,6 @@ describe 'Serverspec matchers of Solaris family', :os => :solaris do
33
33
 
34
34
  it_behaves_like 'support belong_to_group matcher', 'root', 'root'
35
35
 
36
- it_behaves_like 'support get_stdout matcher', 'whoami', 'root'
37
36
  it_behaves_like 'support be_zfs matcher', 'rpool'
38
37
  it_behaves_like 'support be_zfs.property matcher', 'rpool', { 'mountpoint' => '/rpool' }
39
38
 
@@ -226,6 +226,24 @@ shared_examples_for 'support be_grouped_into matcher' do |valid_file, group|
226
226
  end
227
227
  end
228
228
 
229
+ shared_examples_for 'support be_enforcing matcher' do |selinux|
230
+ describe selinux do
231
+ it { should be_enforcing }
232
+ end
233
+ end
234
+
235
+ shared_examples_for 'support be_permissive matcher' do |selinux|
236
+ describe selinux do
237
+ it { should be_permissive }
238
+ end
239
+ end
240
+
241
+ shared_examples_for 'support be_disabled matcher' do |selinux|
242
+ describe selinux do
243
+ it { should be_disabled }
244
+ end
245
+ end
246
+
229
247
  shared_examples_for 'support have_cron_entry matcher' do |title, entry|
230
248
  describe 'have_cron_entry' do
231
249
  describe title do
@@ -328,22 +346,6 @@ shared_examples_for 'support have_iptables_rule.with_table.with_chain matcher' d
328
346
  end
329
347
  end
330
348
 
331
- shared_examples_for 'support get_stdout matcher' do |command, output|
332
- before :all do
333
- RSpec.configure do |c|
334
- c.stdout = "#{output}\r\n"
335
- end
336
- end
337
-
338
- describe command do
339
- it { should get_stdout output }
340
- end
341
-
342
- describe command do
343
- it { should_not get_stdout 'invalid-output' }
344
- end
345
- end
346
-
347
349
  shared_examples_for 'support be_zfs matcher' do |zfs|
348
350
  describe 'be_zfs' do
349
351
  describe zfs do
metadata CHANGED
@@ -1,104 +1,105 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: serverspec
3
- version: !ruby/object:Gem::Version
4
- hash: 13
5
- prerelease: false
6
- segments:
7
- - 0
8
- - 2
9
- - 13
10
- version: 0.2.13
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.2.14
5
+ prerelease:
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Gosuke Miyashita
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2013-04-23 00:00:00 +09:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
12
+ date: 2013-04-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
22
15
  name: net-ssh
23
- prerelease: false
24
- requirement: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
25
17
  none: false
26
- requirements:
27
- - - ">="
28
- - !ruby/object:Gem::Version
29
- hash: 3
30
- segments:
31
- - 0
32
- version: "0"
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
33
22
  type: :runtime
34
- version_requirements: *id001
35
- - !ruby/object:Gem::Dependency
36
- name: rspec
37
23
  prerelease: false
38
- requirement: &id002 !ruby/object:Gem::Requirement
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rspec
32
+ requirement: !ruby/object:Gem::Requirement
39
33
  none: false
40
- requirements:
41
- - - ">="
42
- - !ruby/object:Gem::Version
43
- hash: 3
44
- segments:
45
- - 0
46
- version: "0"
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
47
38
  type: :runtime
48
- version_requirements: *id002
49
- - !ruby/object:Gem::Dependency
50
- name: highline
51
39
  prerelease: false
52
- requirement: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: highline
48
+ requirement: !ruby/object:Gem::Requirement
53
49
  none: false
54
- requirements:
55
- - - ">="
56
- - !ruby/object:Gem::Version
57
- hash: 3
58
- segments:
59
- - 0
60
- version: "0"
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
61
54
  type: :runtime
62
- version_requirements: *id003
63
- - !ruby/object:Gem::Dependency
64
- name: bundler
65
55
  prerelease: false
66
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
67
57
  none: false
68
- requirements:
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: bundler
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
69
67
  - - ~>
70
- - !ruby/object:Gem::Version
71
- hash: 9
72
- segments:
73
- - 1
74
- - 3
75
- version: "1.3"
68
+ - !ruby/object:Gem::Version
69
+ version: '1.3'
76
70
  type: :development
77
- version_requirements: *id004
78
- - !ruby/object:Gem::Dependency
79
- name: rake
80
71
  prerelease: false
81
- requirement: &id005 !ruby/object:Gem::Requirement
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '1.3'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rake
80
+ requirement: !ruby/object:Gem::Requirement
82
81
  none: false
83
- requirements:
84
- - - ">="
85
- - !ruby/object:Gem::Version
86
- hash: 3
87
- segments:
88
- - 0
89
- version: "0"
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
90
86
  type: :development
91
- version_requirements: *id005
92
- description: RSpec tests for your servers provisioned by Puppet, Chef or anything else
93
- email:
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ description: RSpec tests for your servers provisioned by Puppet, Chef or anything
95
+ else
96
+ email:
94
97
  - gosukenator@gmail.com
95
- executables:
98
+ executables:
96
99
  - serverspec-init
97
100
  extensions: []
98
-
99
101
  extra_rdoc_files: []
100
-
101
- files:
102
+ files:
102
103
  - .gitignore
103
104
  - .travis.yml
104
105
  - Gemfile
@@ -128,7 +129,9 @@ files:
128
129
  - lib/serverspec/helper/ssh.rb
129
130
  - lib/serverspec/matchers.rb
130
131
  - lib/serverspec/matchers/be_directory.rb
132
+ - lib/serverspec/matchers/be_disabled.rb
131
133
  - lib/serverspec/matchers/be_enabled.rb
134
+ - lib/serverspec/matchers/be_enforcing.rb
132
135
  - lib/serverspec/matchers/be_executable.rb
133
136
  - lib/serverspec/matchers/be_file.rb
134
137
  - lib/serverspec/matchers/be_group.rb
@@ -139,6 +142,7 @@ files:
139
142
  - lib/serverspec/matchers/be_listening.rb
140
143
  - lib/serverspec/matchers/be_mode.rb
141
144
  - lib/serverspec/matchers/be_owned_by.rb
145
+ - lib/serverspec/matchers/be_permissive.rb
142
146
  - lib/serverspec/matchers/be_readable.rb
143
147
  - lib/serverspec/matchers/be_running.rb
144
148
  - lib/serverspec/matchers/be_user.rb
@@ -169,41 +173,32 @@ files:
169
173
  - spec/solaris/matchers_spec.rb
170
174
  - spec/spec_helper.rb
171
175
  - spec/support/shared_matcher_examples.rb
172
- has_rdoc: true
173
176
  homepage: http://serverspec.org/
174
- licenses:
177
+ licenses:
175
178
  - MIT
176
179
  post_install_message:
177
180
  rdoc_options: []
178
-
179
- require_paths:
181
+ require_paths:
180
182
  - lib
181
- required_ruby_version: !ruby/object:Gem::Requirement
183
+ required_ruby_version: !ruby/object:Gem::Requirement
182
184
  none: false
183
- requirements:
184
- - - ">="
185
- - !ruby/object:Gem::Version
186
- hash: 3
187
- segments:
188
- - 0
189
- version: "0"
190
- required_rubygems_version: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ! '>='
187
+ - !ruby/object:Gem::Version
188
+ version: '0'
189
+ required_rubygems_version: !ruby/object:Gem::Requirement
191
190
  none: false
192
- requirements:
193
- - - ">="
194
- - !ruby/object:Gem::Version
195
- hash: 3
196
- segments:
197
- - 0
198
- version: "0"
191
+ requirements:
192
+ - - ! '>='
193
+ - !ruby/object:Gem::Version
194
+ version: '0'
199
195
  requirements: []
200
-
201
196
  rubyforge_project:
202
- rubygems_version: 1.3.7
197
+ rubygems_version: 1.8.25
203
198
  signing_key:
204
199
  specification_version: 3
205
200
  summary: RSpec tests for your servers provisioned by Puppet, Chef or anything else
206
- test_files:
201
+ test_files:
207
202
  - spec/debian/commands_spec.rb
208
203
  - spec/debian/matchers_spec.rb
209
204
  - spec/gentoo/commands_spec.rb