serverspec 0.0.17 → 0.0.18
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.
- data/.travis.yml +16 -0
- data/README.md +66 -40
- data/lib/serverspec/helper.rb +1 -1
- data/lib/serverspec/setup.rb +39 -11
- data/lib/serverspec/version.rb +1 -1
- data/lib/serverspec.rb +1 -1
- data/spec/debian/matchers_spec.rb +0 -2
- data/spec/gentoo/matchers_spec.rb +0 -2
- data/spec/redhat/commands_spec.rb +7 -0
- data/spec/redhat/matchers_spec.rb +2 -4
- data/spec/solaris/matchers_spec.rb +0 -2
- data/spec/spec_helper.rb +9 -3
- data/spec/support/shared_matcher_examples.rb +19 -19
- metadata +78 -86
data/.travis.yml
ADDED
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
# Serverspec
|
1
|
+
# Serverspec [](http://travis-ci.org/mizzy/serverspec) [](https://coveralls.io/r/mizzy/serverspec)
|
2
2
|
|
3
|
-
RSpec tests for your servers provisioned by Puppet, Chef
|
3
|
+
RSpec tests for your servers provisioned by Puppet, Chef or anything else
|
4
4
|
|
5
5
|
----
|
6
6
|
|
@@ -24,36 +24,49 @@ Or install it yourself as:
|
|
24
24
|
|
25
25
|
```
|
26
26
|
$ serverspec-init
|
27
|
+
Input target host name: www.example.jp
|
28
|
+
|
29
|
+
Select OS Type of target host:
|
30
|
+
|
31
|
+
1) Red Hat
|
32
|
+
2) Debian
|
33
|
+
3) Gentoo
|
34
|
+
4) Solaris
|
35
|
+
5) None
|
36
|
+
|
37
|
+
Select container number: 1
|
38
|
+
|
27
39
|
+ spec/
|
28
40
|
+ spec/www.example.jp/
|
29
41
|
+ spec/www.example.jp/httpd_spec.rb
|
30
42
|
+ spec/spec_helper.rb
|
31
43
|
+ Rakefile
|
32
44
|
```
|
45
|
+
|
33
46
|
spec/www.example.jp/httpd_spec.rb is a sample spec file and its content is like this.
|
34
47
|
|
35
48
|
```ruby
|
36
49
|
require 'spec_helper'
|
37
50
|
|
38
|
-
describe 'httpd'
|
51
|
+
describe 'httpd' do
|
39
52
|
it { should be_installed }
|
40
53
|
it { should be_enabled }
|
41
54
|
it { should be_running }
|
42
55
|
end
|
43
56
|
|
44
|
-
describe 'port 80'
|
57
|
+
describe 'port 80' do
|
45
58
|
it { should be_listening }
|
46
59
|
end
|
47
60
|
|
48
|
-
describe '/etc/httpd/conf/httpd.conf'
|
61
|
+
describe '/etc/httpd/conf/httpd.conf' do
|
49
62
|
it { should be_file }
|
50
63
|
it { should contain "ServerName www.example.jp" }
|
51
64
|
end
|
52
65
|
```
|
53
66
|
|
54
|
-
You can write spec for testing
|
67
|
+
You can write spec for testing servers like this.
|
55
68
|
|
56
|
-
You should create ~/.ssh/config like this before running tests.
|
69
|
+
You should create ~/.ssh/config like this before running tests because serverspec tests servers through SSH access.
|
57
70
|
|
58
71
|
```
|
59
72
|
Host *.example.jp
|
@@ -79,7 +92,52 @@ Finished in 0.99715 seconds
|
|
79
92
|
|
80
93
|
Serverspec is supporting Red Hat based OS, Debian based OS, Gentoo and Solaris now.
|
81
94
|
|
82
|
-
If your target host's OS is Debian, you
|
95
|
+
If your target host's OS is Debian, you should include Serverspec::DebianHelper like this.
|
96
|
+
|
97
|
+
```ruby
|
98
|
+
require 'serverspec'
|
99
|
+
require 'pathname'
|
100
|
+
require 'net/ssh'
|
101
|
+
|
102
|
+
RSpec.configure do |c|
|
103
|
+
# Include OS helper
|
104
|
+
c.include(Serverspec::DebianHelper)
|
105
|
+
c.before do
|
106
|
+
host = File.basename(Pathname.new(example.metadata[:location]).dirname)
|
107
|
+
if c.host != host
|
108
|
+
c.ssh.close if c.ssh
|
109
|
+
c.host = host
|
110
|
+
options = Net::SSH::Config.for(c.host)
|
111
|
+
user = options[:user] || Etc.getlogin
|
112
|
+
c.ssh = Net::SSH.start(c.host, user, options)
|
113
|
+
end
|
114
|
+
end
|
115
|
+
end
|
116
|
+
```
|
117
|
+
|
118
|
+
And you can omit OS type from spec like this.
|
119
|
+
|
120
|
+
```ruby
|
121
|
+
require 'spec_helper'
|
122
|
+
|
123
|
+
describe 'httpd' do
|
124
|
+
it { should be_installed }
|
125
|
+
it { should be_enabled }
|
126
|
+
it { should be_running }
|
127
|
+
end
|
128
|
+
|
129
|
+
describe 'port 80' do
|
130
|
+
it { should be_listening }
|
131
|
+
end
|
132
|
+
|
133
|
+
describe '/etc/httpd/conf/httpd.conf' do
|
134
|
+
it { should be_file }
|
135
|
+
it { should contain "ServerName www.example.jp" }
|
136
|
+
end
|
137
|
+
```
|
138
|
+
|
139
|
+
You can change the target host's OS per spec like this.
|
140
|
+
|
83
141
|
|
84
142
|
```ruby
|
85
143
|
require 'spec_helper'
|
@@ -136,38 +194,6 @@ end
|
|
136
194
|
|
137
195
|
Or modify spec/spec_helper.rb generated by serverspec-init command like this
|
138
196
|
|
139
|
-
```ruby
|
140
|
-
require 'serverspec'
|
141
|
-
require 'pathname'
|
142
|
-
|
143
|
-
RSpec.configure do |c|
|
144
|
-
c.include(Serverspec::DebianHelper)
|
145
|
-
c.before do
|
146
|
-
c.host = File.basename(Pathname.new(example.metadata[:location]).dirname)
|
147
|
-
end
|
148
|
-
end
|
149
|
-
```
|
150
|
-
|
151
|
-
And write the spec like this.
|
152
|
-
|
153
|
-
```ruby
|
154
|
-
require 'spec_helper'
|
155
|
-
|
156
|
-
describe 'httpd' do
|
157
|
-
it { should be_installed }
|
158
|
-
it { should be_enabled }
|
159
|
-
it { should be_running }
|
160
|
-
end
|
161
|
-
|
162
|
-
describe 'port 80' do
|
163
|
-
it { should be_listening }
|
164
|
-
end
|
165
|
-
|
166
|
-
describe '/etc/httpd/conf/httpd.conf' do
|
167
|
-
it { should be_file }
|
168
|
-
it { should contain "ServerName www.example.jp" }
|
169
|
-
end
|
170
|
-
```
|
171
197
|
|
172
198
|
Choose any style you like.
|
173
199
|
|
data/lib/serverspec/helper.rb
CHANGED
data/lib/serverspec/setup.rb
CHANGED
@@ -3,42 +3,64 @@ require 'fileutils'
|
|
3
3
|
module Serverspec
|
4
4
|
class Setup
|
5
5
|
def self.run
|
6
|
-
|
6
|
+
print "Input target host name: "
|
7
|
+
@hostname = gets.chomp
|
8
|
+
|
9
|
+
prompt = <<-EOF
|
10
|
+
|
11
|
+
Select OS Type of target host:
|
12
|
+
|
13
|
+
1) Red Hat
|
14
|
+
2) Debian
|
15
|
+
3) Gentoo
|
16
|
+
4) Solaris
|
17
|
+
5) None
|
18
|
+
|
19
|
+
Select container number:
|
20
|
+
EOF
|
21
|
+
|
22
|
+
print prompt.chop
|
23
|
+
num = gets.to_i - 1
|
24
|
+
puts
|
25
|
+
|
26
|
+
@os_type = [ 'RedHat', 'Debian', 'Gentoo', 'Solaris', nil ][num]
|
27
|
+
[ 'spec', "spec/#{@hostname}" ].each { |dir| safe_mkdir(dir) }
|
7
28
|
safe_create_spec
|
8
29
|
safe_create_spec_helper
|
9
30
|
safe_create_rakefile
|
10
31
|
end
|
11
32
|
|
12
33
|
def self.safe_create_spec
|
13
|
-
|
34
|
+
|
35
|
+
content = <<-EOF
|
14
36
|
require 'spec_helper'
|
15
37
|
|
16
|
-
describe 'httpd'
|
38
|
+
describe 'httpd' do
|
17
39
|
it { should be_installed }
|
18
40
|
it { should be_enabled }
|
19
41
|
it { should be_running }
|
20
42
|
end
|
21
43
|
|
22
|
-
describe 'port 80'
|
44
|
+
describe 'port 80' do
|
23
45
|
it { should be_listening }
|
24
46
|
end
|
25
47
|
|
26
|
-
describe '/etc/httpd/conf/httpd.conf'
|
48
|
+
describe '/etc/httpd/conf/httpd.conf' do
|
27
49
|
it { should be_file }
|
28
|
-
it { should contain "ServerName
|
50
|
+
it { should contain "ServerName #{@hostname}" }
|
29
51
|
end
|
30
52
|
EOF
|
31
53
|
|
32
|
-
if File.exists?
|
33
|
-
old_content = File.read(
|
54
|
+
if File.exists? "spec/#{@hostname}/httpd_spec.rb"
|
55
|
+
old_content = File.read("spec/#{@hostname}/httpd_spec.rb")
|
34
56
|
if old_content != content
|
35
|
-
$stderr.puts "!! spec/
|
57
|
+
$stderr.puts "!! spec/#{@hostname}/httpd_spec.rb already exists and differs from template"
|
36
58
|
end
|
37
59
|
else
|
38
|
-
File.open(
|
60
|
+
File.open("spec/#{@hostname}/httpd_spec.rb", 'w') do |f|
|
39
61
|
f.puts content
|
40
62
|
end
|
41
|
-
puts
|
63
|
+
puts " + spec/#{@hostname}/httpd_spec.rb"
|
42
64
|
end
|
43
65
|
end
|
44
66
|
|
@@ -60,6 +82,7 @@ require 'pathname'
|
|
60
82
|
require 'net/ssh'
|
61
83
|
|
62
84
|
RSpec.configure do |c|
|
85
|
+
### include os helper ###
|
63
86
|
c.before do
|
64
87
|
host = File.basename(Pathname.new(example.metadata[:location]).dirname)
|
65
88
|
if c.host != host
|
@@ -72,6 +95,11 @@ RSpec.configure do |c|
|
|
72
95
|
end
|
73
96
|
end
|
74
97
|
EOF
|
98
|
+
|
99
|
+
if not @os_type.nil?
|
100
|
+
content.gsub!(/### include os helper ###/, "c.include(Serverspec::#{@os_type}Helper)")
|
101
|
+
end
|
102
|
+
|
75
103
|
if File.exists? 'spec/spec_helper.rb'
|
76
104
|
old_content = File.read('spec/spec_helper.rb')
|
77
105
|
if old_content != content
|
data/lib/serverspec/version.rb
CHANGED
data/lib/serverspec.rb
CHANGED
@@ -11,7 +11,7 @@ require 'serverspec/commands/gentoo'
|
|
11
11
|
require 'serverspec/commands/solaris'
|
12
12
|
|
13
13
|
RSpec.configure do |c|
|
14
|
-
c.include(Serverspec::
|
14
|
+
c.include(Serverspec::SshHelper)
|
15
15
|
c.include(Serverspec::RedHatHelper, :os => :redhat)
|
16
16
|
c.include(Serverspec::DebianHelper, :os => :debian)
|
17
17
|
c.include(Serverspec::GentooHelper, :os => :gentoo)
|
@@ -1,8 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'Serverspec matchers of Debian family', :os => :debian do
|
4
|
-
let(:test_server_host) { 'serverspec-debian-host' }
|
5
|
-
|
6
4
|
it_behaves_like 'support be_enabled matcher', 'rc.local'
|
7
5
|
it_behaves_like 'support be_installed matcher', 'openssh-server'
|
8
6
|
it_behaves_like 'support be_running matcher', 'ssh'
|
@@ -1,8 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'Serverspec matchers of Gentoo family', :os => :gentoo do
|
4
|
-
let(:test_server_host) { 'serverspec-gentoo-host' }
|
5
|
-
|
6
4
|
it_behaves_like 'support be_enabled matcher', 'sshd'
|
7
5
|
it_behaves_like 'support be_installed matcher', 'openssh'
|
8
6
|
it_behaves_like 'support be_running matcher', 'sshd'
|
@@ -1,8 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'Serverspec matchers of Red Hat family', :os => :redhat do
|
4
|
-
let(:test_server_host) { 'serverspec-redhat-host' }
|
5
|
-
|
6
4
|
it_behaves_like 'support be_enabled matcher', 'sshd'
|
7
5
|
it_behaves_like 'support be_installed matcher', 'openssh'
|
8
6
|
it_behaves_like 'support be_running matcher', 'sshd'
|
@@ -24,8 +22,8 @@ describe 'Serverspec matchers of Red Hat family', :os => :redhat do
|
|
24
22
|
it_behaves_like 'support have_cron_entry matcher', 'cron', '* * * * * /usr/bin/foo'
|
25
23
|
it_behaves_like 'support have_cron_entry.with_user matcher', 'cron', '* * * * * /usr/bin/foo', 'root'
|
26
24
|
|
27
|
-
|
25
|
+
it_behaves_like 'support be_linked_to matcher', '/etc/pam.d/system-auth', '/etc/pam.d/system-auth-ac'
|
28
26
|
|
29
|
-
|
27
|
+
it_behaves_like 'support belong_to_group matcher', 'root', 'root'
|
30
28
|
|
31
29
|
end
|
@@ -1,8 +1,6 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe 'Serverspec matchers of Solaris family', :os => :solaris do
|
4
|
-
let(:test_server_host) { 'serverspec-solaris-host' }
|
5
|
-
|
6
4
|
it_behaves_like 'support be_enabled matcher', 'svc:/network/ssh:default'
|
7
5
|
it_behaves_like 'support be_installed matcher', 'service/network/ssh'
|
8
6
|
it_behaves_like 'support be_running matcher', 'svc:/network/ssh:default'
|
data/spec/spec_helper.rb
CHANGED
@@ -5,8 +5,14 @@ PROJECT_ROOT = (Pathname.new(File.dirname(__FILE__)) + '..').expand_path
|
|
5
5
|
|
6
6
|
Dir[PROJECT_ROOT.join("spec/support/**/*.rb")].each { |file| require(file) }
|
7
7
|
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
module Serverspec
|
9
|
+
module SshHelper
|
10
|
+
def ssh_exec(cmd)
|
11
|
+
if cmd =~ /invalid/
|
12
|
+
{ :stdout => nil, :stderr => nil, :exit_code => 1, :exit_signal => nil }
|
13
|
+
else
|
14
|
+
{ :stdout => nil, :stderr => nil, :exit_code => 0, :exit_signal => nil }
|
15
|
+
end
|
16
|
+
end
|
11
17
|
end
|
12
18
|
end
|
@@ -5,7 +5,7 @@ shared_examples_for 'support be_enabled matcher' do |valid_service|
|
|
5
5
|
it { should be_enabled }
|
6
6
|
end
|
7
7
|
|
8
|
-
describe 'this-is-
|
8
|
+
describe 'this-is-invalid-service' do
|
9
9
|
it { should_not be_enabled }
|
10
10
|
end
|
11
11
|
end
|
@@ -17,7 +17,7 @@ shared_examples_for 'support be_installed matcher' do |valid_package|
|
|
17
17
|
it { should be_installed }
|
18
18
|
end
|
19
19
|
|
20
|
-
describe 'this-is-
|
20
|
+
describe 'this-is-invalid-package' do
|
21
21
|
it { should_not be_installed }
|
22
22
|
end
|
23
23
|
end
|
@@ -29,7 +29,7 @@ shared_examples_for 'support be_running matcher' do |valid_service|
|
|
29
29
|
it { should be_running }
|
30
30
|
end
|
31
31
|
|
32
|
-
describe 'this-is-
|
32
|
+
describe 'this-is-invalid-daemon' do
|
33
33
|
it { should_not be_running }
|
34
34
|
end
|
35
35
|
end
|
@@ -41,7 +41,7 @@ shared_examples_for 'support be_listening matcher' do |valid_port|
|
|
41
41
|
it { should be_listening }
|
42
42
|
end
|
43
43
|
|
44
|
-
describe 'port
|
44
|
+
describe 'port invalid' do
|
45
45
|
it { should_not be_listening }
|
46
46
|
end
|
47
47
|
end
|
@@ -53,7 +53,7 @@ shared_examples_for 'support be_file matcher' do |valid_file|
|
|
53
53
|
it { should be_file }
|
54
54
|
end
|
55
55
|
|
56
|
-
describe '/etc/
|
56
|
+
describe '/etc/thid_is_invalid_file' do
|
57
57
|
it { should_not be_file }
|
58
58
|
end
|
59
59
|
end
|
@@ -65,7 +65,7 @@ shared_examples_for 'support be_directory matcher' do |valid_directory|
|
|
65
65
|
it { should be_directory }
|
66
66
|
end
|
67
67
|
|
68
|
-
describe '/etc/
|
68
|
+
describe '/etc/thid_is_invalid_directory' do
|
69
69
|
it { should_not be_directory }
|
70
70
|
end
|
71
71
|
end
|
@@ -78,7 +78,7 @@ shared_examples_for 'support contain matcher' do |valid_file, pattern|
|
|
78
78
|
end
|
79
79
|
|
80
80
|
describe '/etc/ssh/sshd_config' do
|
81
|
-
it { should_not contain 'This is
|
81
|
+
it { should_not contain 'This is invalid text!!' }
|
82
82
|
end
|
83
83
|
end
|
84
84
|
end
|
@@ -89,7 +89,7 @@ shared_examples_for 'support be_user matcher' do |valid_user|
|
|
89
89
|
it { should be_user }
|
90
90
|
end
|
91
91
|
|
92
|
-
describe '
|
92
|
+
describe 'i_am_invalid_user' do
|
93
93
|
it { should_not be_user }
|
94
94
|
end
|
95
95
|
end
|
@@ -101,7 +101,7 @@ shared_examples_for 'support be_group matcher' do |valid_group|
|
|
101
101
|
it { should be_group }
|
102
102
|
end
|
103
103
|
|
104
|
-
describe '
|
104
|
+
describe 'we_are_invalid_group' do
|
105
105
|
it { should_not be_group }
|
106
106
|
end
|
107
107
|
end
|
@@ -114,7 +114,7 @@ shared_examples_for 'support be_mode matcher' do |valid_file, mode|
|
|
114
114
|
end
|
115
115
|
|
116
116
|
describe '/etc/passwd' do
|
117
|
-
it { should_not be_mode
|
117
|
+
it { should_not be_mode 'invalid' }
|
118
118
|
end
|
119
119
|
end
|
120
120
|
end
|
@@ -126,7 +126,7 @@ shared_examples_for 'support be_owned_by matcher' do |valid_file, owner|
|
|
126
126
|
end
|
127
127
|
|
128
128
|
describe '/etc/passwd' do
|
129
|
-
it { should_not be_owned_by '
|
129
|
+
it { should_not be_owned_by 'invalid-owner' }
|
130
130
|
end
|
131
131
|
end
|
132
132
|
end
|
@@ -138,7 +138,7 @@ shared_examples_for 'support be_grouped_into matcher' do |valid_file, group|
|
|
138
138
|
end
|
139
139
|
|
140
140
|
describe '/etc/passwd' do
|
141
|
-
it { should_not be_grouped_into '
|
141
|
+
it { should_not be_grouped_into 'invalid-group' }
|
142
142
|
end
|
143
143
|
end
|
144
144
|
end
|
@@ -150,7 +150,7 @@ shared_examples_for 'support have_cron_entry matcher' do |title, entry|
|
|
150
150
|
end
|
151
151
|
|
152
152
|
describe '/etc/passwd' do
|
153
|
-
it { should_not have_cron_entry '
|
153
|
+
it { should_not have_cron_entry 'invalid entry' }
|
154
154
|
end
|
155
155
|
end
|
156
156
|
end
|
@@ -162,7 +162,7 @@ shared_examples_for 'support have_cron_entry.with_user matcher' do |title, entry
|
|
162
162
|
end
|
163
163
|
|
164
164
|
describe '/etc/passwd' do
|
165
|
-
it { should_not have_cron_entry('dummy entry').with_user('
|
165
|
+
it { should_not have_cron_entry('dummy entry').with_user('invaliduser') }
|
166
166
|
end
|
167
167
|
end
|
168
168
|
end
|
@@ -174,7 +174,7 @@ shared_examples_for 'support be_linked_to matcher' do |file, target|
|
|
174
174
|
end
|
175
175
|
|
176
176
|
describe 'this-is-dummy-link' do
|
177
|
-
it { should_not be_linked_to '
|
177
|
+
it { should_not be_linked_to '/invalid/target' }
|
178
178
|
end
|
179
179
|
end
|
180
180
|
end
|
@@ -185,7 +185,7 @@ shared_examples_for 'support be_installed_by_gem matcher' do |name|
|
|
185
185
|
it { should be_installed_by_gem }
|
186
186
|
end
|
187
187
|
|
188
|
-
describe '
|
188
|
+
describe 'invalid-gem' do
|
189
189
|
it { should_not be_installed_by_gem }
|
190
190
|
end
|
191
191
|
end
|
@@ -198,19 +198,19 @@ shared_examples_for 'support be_installed_by_gem.with_version matcher' do |name,
|
|
198
198
|
end
|
199
199
|
|
200
200
|
describe name do
|
201
|
-
it { should_not be_installed_by_gem.with_version('
|
201
|
+
it { should_not be_installed_by_gem.with_version('invalid-version') }
|
202
202
|
end
|
203
203
|
end
|
204
204
|
end
|
205
205
|
|
206
|
-
shared_examples_for 'support belong_to_group matcher' do |
|
206
|
+
shared_examples_for 'support belong_to_group matcher' do |user, group|
|
207
207
|
describe 'belong_to_group' do
|
208
208
|
describe user do
|
209
209
|
it { should belong_to_group group }
|
210
210
|
end
|
211
211
|
|
212
212
|
describe 'dummyuser' do
|
213
|
-
it { should_not belong_to_group '
|
213
|
+
it { should_not belong_to_group 'invalid-group' }
|
214
214
|
end
|
215
215
|
end
|
216
216
|
end
|
metadata
CHANGED
@@ -1,91 +1,90 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: serverspec
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 0
|
9
|
-
- 17
|
10
|
-
version: 0.0.17
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.18
|
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
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2013-03-30 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: net-ssh
|
23
|
-
|
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
|
-
|
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: bundler
|
37
23
|
prerelease: false
|
38
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
39
25
|
none: false
|
40
|
-
requirements:
|
26
|
+
requirements:
|
27
|
+
- - ! '>='
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: bundler
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
41
35
|
- - ~>
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
segments:
|
45
|
-
- 1
|
46
|
-
- 3
|
47
|
-
version: "1.3"
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '1.3'
|
48
38
|
type: :development
|
49
|
-
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: rspec
|
52
39
|
prerelease: false
|
53
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ~>
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '1.3'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rspec
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
54
49
|
none: false
|
55
|
-
requirements:
|
56
|
-
- -
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
segments:
|
60
|
-
- 0
|
61
|
-
version: "0"
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
62
54
|
type: :development
|
63
|
-
version_requirements: *id003
|
64
|
-
- !ruby/object:Gem::Dependency
|
65
|
-
name: rake
|
66
55
|
prerelease: false
|
67
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
68
57
|
none: false
|
69
|
-
requirements:
|
70
|
-
- -
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rake
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
76
70
|
type: :development
|
77
|
-
|
71
|
+
prerelease: false
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
78
|
description: RSpec tests for your provisioned servers
|
79
|
-
email:
|
79
|
+
email:
|
80
80
|
- gosukenator@gmail.com
|
81
|
-
executables:
|
81
|
+
executables:
|
82
82
|
- serverspec-init
|
83
83
|
extensions: []
|
84
|
-
|
85
84
|
extra_rdoc_files: []
|
86
|
-
|
87
|
-
files:
|
85
|
+
files:
|
88
86
|
- .gitignore
|
87
|
+
- .travis.yml
|
89
88
|
- Gemfile
|
90
89
|
- LICENSE.txt
|
91
90
|
- README.md
|
@@ -120,47 +119,40 @@ files:
|
|
120
119
|
- serverspec.gemspec
|
121
120
|
- spec/debian/matchers_spec.rb
|
122
121
|
- spec/gentoo/matchers_spec.rb
|
122
|
+
- spec/redhat/commands_spec.rb
|
123
123
|
- spec/redhat/matchers_spec.rb
|
124
124
|
- spec/solaris/matchers_spec.rb
|
125
125
|
- spec/spec_helper.rb
|
126
126
|
- spec/support/shared_matcher_examples.rb
|
127
|
-
has_rdoc: true
|
128
127
|
homepage: https://github.com/mizzy/serverspec
|
129
|
-
licenses:
|
128
|
+
licenses:
|
130
129
|
- MIT
|
131
130
|
post_install_message:
|
132
131
|
rdoc_options: []
|
133
|
-
|
134
|
-
require_paths:
|
132
|
+
require_paths:
|
135
133
|
- lib
|
136
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
134
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
137
135
|
none: false
|
138
|
-
requirements:
|
139
|
-
- -
|
140
|
-
- !ruby/object:Gem::Version
|
141
|
-
|
142
|
-
|
143
|
-
- 0
|
144
|
-
version: "0"
|
145
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ! '>='
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
140
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
146
141
|
none: false
|
147
|
-
requirements:
|
148
|
-
- -
|
149
|
-
- !ruby/object:Gem::Version
|
150
|
-
|
151
|
-
segments:
|
152
|
-
- 0
|
153
|
-
version: "0"
|
142
|
+
requirements:
|
143
|
+
- - ! '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
154
146
|
requirements: []
|
155
|
-
|
156
147
|
rubyforge_project:
|
157
|
-
rubygems_version: 1.
|
148
|
+
rubygems_version: 1.8.25
|
158
149
|
signing_key:
|
159
150
|
specification_version: 3
|
160
151
|
summary: RSpec tests for your provisioned servers
|
161
|
-
test_files:
|
152
|
+
test_files:
|
162
153
|
- spec/debian/matchers_spec.rb
|
163
154
|
- spec/gentoo/matchers_spec.rb
|
155
|
+
- spec/redhat/commands_spec.rb
|
164
156
|
- spec/redhat/matchers_spec.rb
|
165
157
|
- spec/solaris/matchers_spec.rb
|
166
158
|
- spec/spec_helper.rb
|