serverspec 2.0.0.beta2 → 2.0.0.beta3
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/README.md +7 -6
- data/Rakefile +2 -27
- data/lib/serverspec/helper.rb +0 -1
- data/lib/serverspec/helper/os.rb +2 -0
- data/lib/serverspec/helper/type.rb +1 -1
- data/lib/serverspec/setup.rb +11 -12
- data/lib/serverspec/type/base.rb +2 -1
- data/lib/serverspec/type/cgroup.rb +1 -1
- data/lib/serverspec/type/command.rb +1 -1
- data/lib/serverspec/type/cron.rb +1 -1
- data/lib/serverspec/type/default_gateway.rb +2 -2
- data/lib/serverspec/type/file.rb +22 -22
- data/lib/serverspec/type/group.rb +2 -2
- data/lib/serverspec/type/host.rb +3 -3
- data/lib/serverspec/type/iis_app_pool.rb +2 -2
- data/lib/serverspec/type/iis_website.rb +5 -5
- data/lib/serverspec/type/interface.rb +2 -2
- data/lib/serverspec/type/ipfilter.rb +1 -1
- data/lib/serverspec/type/ipnat.rb +1 -1
- data/lib/serverspec/type/iptables.rb +1 -1
- data/lib/serverspec/type/kernel_module.rb +1 -1
- data/lib/serverspec/type/linux_kernel_parameter.rb +1 -1
- data/lib/serverspec/type/lxc.rb +2 -2
- data/lib/serverspec/type/mail_alias.rb +1 -1
- data/lib/serverspec/type/package.rb +4 -4
- data/lib/serverspec/type/php_config.rb +1 -1
- data/lib/serverspec/type/port.rb +2 -2
- data/lib/serverspec/type/process.rb +2 -2
- data/lib/serverspec/type/routing_table.rb +1 -1
- data/lib/serverspec/type/selinux.rb +3 -3
- data/lib/serverspec/type/service.rb +7 -8
- data/lib/serverspec/type/user.rb +6 -6
- data/lib/serverspec/type/windows_feature.rb +1 -1
- data/lib/serverspec/type/windows_hot_fix.rb +1 -1
- data/lib/serverspec/type/windows_registry_key.rb +4 -4
- data/lib/serverspec/type/windows_scheduled_task.rb +9 -0
- data/lib/serverspec/type/yumrepo.rb +2 -2
- data/lib/serverspec/type/zfs.rb +2 -2
- data/lib/serverspec/version.rb +1 -1
- data/spec/spec_helper.rb +2 -33
- data/spec/type/cgroup_spec.rb +13 -0
- data/spec/type/command_spec.rb +64 -0
- data/spec/type/cron_spec.rb +19 -0
- data/spec/type/default_gateway_spec.rb +14 -0
- data/spec/type/file_spec.rb +392 -0
- data/spec/type/group_spec.rb +19 -0
- data/spec/type/host_spec.rb +56 -0
- data/spec/type/interface_spec.rb +21 -0
- data/spec/type/iptables_spec.rb +19 -0
- data/spec/type/kernel_module_spec.rb +11 -0
- data/spec/type/linux_kernel_parameter_spec.rb +33 -0
- data/spec/type/lxc_spec.rb +20 -0
- data/spec/type/mail_alias_spec.rb +11 -0
- data/spec/type/package_spec.rb +104 -0
- data/spec/type/php_config_spec.rb +33 -0
- data/spec/type/port_spec.rb +27 -0
- data/spec/type/process_spec.rb +35 -0
- data/spec/type/routing_table_spec.rb +118 -0
- data/spec/type/selinux_spec.rb +15 -0
- data/spec/type/service_spec.rb +94 -0
- data/spec/type/user_spec.rb +51 -0
- data/spec/type/yumrepo_spec.rb +25 -0
- data/spec/type/zfs_spec.rb +15 -0
- metadata +49 -3
- data/lib/serverspec/helper/backend.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9498cdcc8009438a0e2ea00b06d9b02cf295eb0c
|
4
|
+
data.tar.gz: a41a66337d3929e1f940a1b7be962a375d3de319
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5304cf1b1c87ed692e75976840c85ee83df258d31293ab73dbee915b8cde0f539497c5b2fd8f2af3d2710194e7cd4b309b818c2d713c314007ff9ecf03675b0c
|
7
|
+
data.tar.gz: 142748c3e19538fee987c0c1ba6c2afd1cc4640ac1732cf7a60d13f49f5df9c3ee1fc91169fc867277cb7147e2e6588e7a3ef7f2762017f578b88dd372729765
|
data/README.md
CHANGED
@@ -130,12 +130,13 @@ end
|
|
130
130
|
|
131
131
|
You can select from:
|
132
132
|
|
133
|
-
*
|
134
|
-
*
|
135
|
-
*
|
136
|
-
*
|
137
|
-
*
|
138
|
-
*
|
133
|
+
* SpecInfra::Helper::RedHat
|
134
|
+
* SpecInfra::Helper::Debian
|
135
|
+
* SpecInfra::Helper::Fedora
|
136
|
+
* SpecInfra::Helper::Gentoo
|
137
|
+
* SpecInfra::Helper::Solaris
|
138
|
+
* SpecInfra::Helper::Darwin
|
139
|
+
* SpecInfra::Helper::Arch
|
139
140
|
|
140
141
|
## Vagrant support
|
141
142
|
|
data/Rakefile
CHANGED
@@ -2,31 +2,6 @@ require "bundler/gem_tasks"
|
|
2
2
|
require "rspec/core/rake_task"
|
3
3
|
require "octorelease"
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
namespace :spec do
|
8
|
-
oses = %w( darwin debian gentoo plamo redhat aix solaris solaris10 solaris11 smartos windows freebsd freebsd10 arch)
|
9
|
-
backends = %w( exec ssh cmd winrm powershell )
|
10
|
-
|
11
|
-
task :all => [ oses.map {|os| "spec:#{os}" }, backends, :helper, :unit ].flatten
|
12
|
-
|
13
|
-
oses.each do |os|
|
14
|
-
RSpec::Core::RakeTask.new(os.to_sym) do |t|
|
15
|
-
t.pattern = "spec/#{os}/*_spec.rb"
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
backends.each do |backend|
|
20
|
-
RSpec::Core::RakeTask.new(backend) do |t|
|
21
|
-
t.pattern = "spec/backend/#{backend.to_s}/*_spec.rb"
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
RSpec::Core::RakeTask.new(:helper) do |t|
|
26
|
-
t.pattern = "spec/helper/*_spec.rb"
|
27
|
-
end
|
28
|
-
|
29
|
-
RSpec::Core::RakeTask.new(:unit) do |t|
|
30
|
-
t.pattern = "spec/unit/*_spec.rb"
|
31
|
-
end
|
5
|
+
RSpec::Core::RakeTask.new('spec') do |t|
|
6
|
+
t.pattern = 'spec/*/*_spec.rb'
|
32
7
|
end
|
data/lib/serverspec/helper.rb
CHANGED
data/lib/serverspec/helper/os.rb
CHANGED
@@ -5,7 +5,7 @@ module Serverspec
|
|
5
5
|
base cgroup command cron default_gateway file group host iis_website iis_app_pool interface
|
6
6
|
ipfilter ipnat iptables kernel_module linux_kernel_parameter lxc mail_alias
|
7
7
|
package php_config port process routing_table selinux service user yumrepo
|
8
|
-
windows_feature windows_hot_fix windows_registry_key zfs
|
8
|
+
windows_feature windows_hot_fix windows_registry_key windows_scheduled_task zfs
|
9
9
|
)
|
10
10
|
|
11
11
|
types.each {|type| require "serverspec/type/#{type}" }
|
data/lib/serverspec/setup.rb
CHANGED
@@ -14,11 +14,11 @@ module Serverspec
|
|
14
14
|
end
|
15
15
|
|
16
16
|
if @backend_type == 'Ssh'
|
17
|
-
print
|
17
|
+
print 'Vagrant instance y/n: '
|
18
18
|
@vagrant = $stdin.gets.chomp
|
19
19
|
if @vagrant =~ (/(true|t|yes|y|1)$/i)
|
20
20
|
@vagrant = true
|
21
|
-
print
|
21
|
+
print 'Auto-configure Vagrant from Vagrantfile? y/n: '
|
22
22
|
auto_config = $stdin.gets.chomp
|
23
23
|
if auto_config =~ (/(true|t|yes|y|1)$/i)
|
24
24
|
auto_vagrant_configuration
|
@@ -35,7 +35,7 @@ module Serverspec
|
|
35
35
|
@hostname = 'localhost'
|
36
36
|
end
|
37
37
|
|
38
|
-
[
|
38
|
+
['spec', "spec/#{@hostname}"].each { |dir| safe_mkdir(dir) }
|
39
39
|
safe_create_spec
|
40
40
|
safe_create_spec_helper
|
41
41
|
safe_create_rakefile
|
@@ -55,7 +55,7 @@ EOF
|
|
55
55
|
num = $stdin.gets.to_i - 1
|
56
56
|
puts
|
57
57
|
|
58
|
-
@os_type = [
|
58
|
+
@os_type = ['UN*X', 'Windows'][num] || 'UN*X'
|
59
59
|
end
|
60
60
|
|
61
61
|
def self.ask_unix_backend
|
@@ -71,7 +71,7 @@ EOF
|
|
71
71
|
num = $stdin.gets.to_i - 1
|
72
72
|
puts
|
73
73
|
|
74
|
-
@backend_type = [
|
74
|
+
@backend_type = ['Ssh', 'Exec'][num] || 'Exec'
|
75
75
|
end
|
76
76
|
|
77
77
|
def self.ask_windows_backend
|
@@ -87,7 +87,7 @@ EOF
|
|
87
87
|
num = $stdin.gets.to_i - 1
|
88
88
|
puts
|
89
89
|
|
90
|
-
@backend_type = [
|
90
|
+
@backend_type = ['WinRM', 'Cmd'][num] || 'Exec'
|
91
91
|
end
|
92
92
|
|
93
93
|
def self.safe_create_spec
|
@@ -138,7 +138,6 @@ EOF
|
|
138
138
|
end
|
139
139
|
|
140
140
|
def self.safe_create_spec_helper
|
141
|
-
requirements = []
|
142
141
|
content = ERB.new(spec_helper_template, nil, '-').result(binding)
|
143
142
|
if File.exists? 'spec/spec_helper.rb'
|
144
143
|
old_content = File.read('spec/spec_helper.rb')
|
@@ -167,7 +166,7 @@ task :default => :spec
|
|
167
166
|
if File.exists? 'Rakefile'
|
168
167
|
old_content = File.read('Rakefile')
|
169
168
|
if old_content != content
|
170
|
-
$stderr.puts
|
169
|
+
$stderr.puts '!! Rakefile already exists and differs from template'
|
171
170
|
end
|
172
171
|
else
|
173
172
|
File.open('Rakefile', 'w') do |f|
|
@@ -179,7 +178,7 @@ task :default => :spec
|
|
179
178
|
|
180
179
|
def self.find_vagrantfile
|
181
180
|
Pathname.new(Dir.pwd).ascend do |dir|
|
182
|
-
path = File.expand_path(
|
181
|
+
path = File.expand_path('Vagrantfile', dir)
|
183
182
|
return path if File.exists?(path)
|
184
183
|
end
|
185
184
|
nil
|
@@ -199,16 +198,16 @@ task :default => :spec
|
|
199
198
|
@hostname = list_of_vms[0]
|
200
199
|
else
|
201
200
|
list_of_vms.each_with_index { |vm, index | puts "#{index}) #{vm}\n" }
|
202
|
-
print
|
201
|
+
print 'Choose a VM from the Vagrantfile: '
|
203
202
|
chosen_vm = $stdin.gets.chomp
|
204
203
|
@hostname = list_of_vms[chosen_vm.to_i]
|
205
204
|
end
|
206
205
|
else
|
207
|
-
$stderr.puts
|
206
|
+
$stderr.puts 'Vagrant status error - Check your Vagrantfile or .vagrant'
|
208
207
|
exit 1
|
209
208
|
end
|
210
209
|
else
|
211
|
-
$stderr.puts
|
210
|
+
$stderr.puts 'Vagrantfile not found in directory!'
|
212
211
|
exit 1
|
213
212
|
end
|
214
213
|
end
|
data/lib/serverspec/type/base.rb
CHANGED
@@ -8,7 +8,7 @@ module Serverspec
|
|
8
8
|
self
|
9
9
|
else
|
10
10
|
param = "#{@subsystem}.#{meth.to_s}"
|
11
|
-
ret =
|
11
|
+
ret = @runner.run_command("cgget -n -r #{param} #{@name} | awk '{print $2}'")
|
12
12
|
val = ret.stdout.strip
|
13
13
|
val = val.to_i if val.match(/^\d+$/)
|
14
14
|
val
|
data/lib/serverspec/type/cron.rb
CHANGED
@@ -2,13 +2,13 @@ module Serverspec
|
|
2
2
|
module Type
|
3
3
|
class DefaultGateway < Base
|
4
4
|
def ipaddress
|
5
|
-
ret =
|
5
|
+
ret = @runner.run_command(commands.check_routing_table('default'))
|
6
6
|
ret.stdout =~ /^(\S+)(?: via (\S+))? dev (\S+).+(?:\r)?\n(?:default via (\S+))?/
|
7
7
|
$2 ? $2 : $4
|
8
8
|
end
|
9
9
|
|
10
10
|
def interface
|
11
|
-
ret =
|
11
|
+
ret = @runner.run_command(commands.check_routing_table('default'))
|
12
12
|
ret.stdout =~ /^(\S+)(?: via (\S+))? dev (\S+).+(?:\r)?\n(?:default via (\S+))?/
|
13
13
|
$3
|
14
14
|
end
|
data/lib/serverspec/type/file.rb
CHANGED
@@ -4,94 +4,94 @@ module Serverspec
|
|
4
4
|
attr_accessor :content
|
5
5
|
|
6
6
|
def file?
|
7
|
-
|
7
|
+
@runner.check_file(@name)
|
8
8
|
end
|
9
9
|
|
10
10
|
def socket?
|
11
|
-
|
11
|
+
@runner.check_socket(@name)
|
12
12
|
end
|
13
13
|
|
14
14
|
def directory?
|
15
|
-
|
15
|
+
@runner.check_directory(@name)
|
16
16
|
end
|
17
17
|
|
18
18
|
def contain(pattern, from, to)
|
19
19
|
if pattern.is_a?(Array)
|
20
|
-
|
20
|
+
@runner.check_file_contain_lines(@name, pattern, from, to)
|
21
21
|
else
|
22
22
|
if (from || to).nil?
|
23
|
-
|
23
|
+
@runner.check_file_contain(@name, pattern)
|
24
24
|
else
|
25
|
-
|
25
|
+
@runner.check_file_contain_within(@name, pattern, from, to)
|
26
26
|
end
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
30
|
def mode?(mode)
|
31
|
-
|
31
|
+
@runner.check_mode(@name, mode)
|
32
32
|
end
|
33
33
|
|
34
34
|
def owned_by?(owner)
|
35
|
-
|
35
|
+
@runner.check_owner(@name, owner)
|
36
36
|
end
|
37
37
|
|
38
38
|
def grouped_into?(group)
|
39
|
-
|
39
|
+
@runner.check_grouped(@name, group)
|
40
40
|
end
|
41
41
|
|
42
42
|
def linked_to?(target)
|
43
|
-
|
43
|
+
@runner.check_link(@name, target)
|
44
44
|
end
|
45
45
|
|
46
46
|
def readable?(by_whom, by_user)
|
47
47
|
if by_user != nil
|
48
|
-
|
48
|
+
@runner.check_access_by_user(@name, by_user, 'r')
|
49
49
|
else
|
50
|
-
|
50
|
+
@runner.check_readable(@name, by_whom)
|
51
51
|
end
|
52
52
|
end
|
53
53
|
|
54
54
|
def writable?(by_whom, by_user)
|
55
55
|
if by_user != nil
|
56
|
-
|
56
|
+
@runner.check_access_by_user(@name, by_user, 'w')
|
57
57
|
else
|
58
|
-
|
58
|
+
@runner.check_writable(@name, by_whom)
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
62
|
def executable?(by_whom, by_user)
|
63
63
|
if by_user != nil
|
64
|
-
|
64
|
+
@runner.check_access_by_user(@name, by_user, 'x')
|
65
65
|
else
|
66
|
-
|
66
|
+
@runner.check_executable(@name, by_whom)
|
67
67
|
end
|
68
68
|
end
|
69
69
|
|
70
70
|
def mounted?(attr, only_with)
|
71
|
-
|
71
|
+
@runner.check_mounted(@name, attr, only_with)
|
72
72
|
end
|
73
73
|
|
74
74
|
def match_checksum(checksum)
|
75
|
-
|
75
|
+
@runner.check_file_checksum(@name, checksum)
|
76
76
|
end
|
77
77
|
|
78
78
|
def match_md5checksum(md5sum)
|
79
|
-
|
79
|
+
@runner.check_file_md5checksum(@name, md5sum)
|
80
80
|
end
|
81
81
|
|
82
82
|
def match_sha256checksum(sha256sum)
|
83
|
-
|
83
|
+
@runner.check_file_sha256checksum(@name, sha256sum)
|
84
84
|
end
|
85
85
|
|
86
86
|
def content
|
87
87
|
if @content.nil?
|
88
|
-
@content =
|
88
|
+
@content = @runner.run_command(commands.get_file_content(@name)).stdout
|
89
89
|
end
|
90
90
|
@content
|
91
91
|
end
|
92
92
|
|
93
93
|
def version?(version)
|
94
|
-
|
94
|
+
@runner.check_file_version(@name, version)
|
95
95
|
end
|
96
96
|
end
|
97
97
|
end
|
data/lib/serverspec/type/host.rb
CHANGED
@@ -2,15 +2,15 @@ module Serverspec
|
|
2
2
|
module Type
|
3
3
|
class Host < Base
|
4
4
|
def resolvable?(type)
|
5
|
-
|
5
|
+
@runner.check_resolvable(@name, type)
|
6
6
|
end
|
7
7
|
|
8
8
|
def reachable?(port, proto, timeout)
|
9
|
-
|
9
|
+
@runner.check_reachable(@name, port, proto, timeout)
|
10
10
|
end
|
11
11
|
|
12
12
|
def ipaddress
|
13
|
-
|
13
|
+
@runner.get_ipaddress_of_host(@name).stdout.strip
|
14
14
|
end
|
15
15
|
end
|
16
16
|
end
|
@@ -2,11 +2,11 @@ module Serverspec
|
|
2
2
|
module Type
|
3
3
|
class IisAppPool < Base
|
4
4
|
def exists?()
|
5
|
-
|
5
|
+
@runner.check_iis_app_pool(@name)
|
6
6
|
end
|
7
7
|
|
8
8
|
def has_dotnet_version?(dotnet)
|
9
|
-
|
9
|
+
@runner.check_iis_app_pool_dotnet(@name, dotnet)
|
10
10
|
end
|
11
11
|
|
12
12
|
def to_s
|
@@ -3,23 +3,23 @@ module Serverspec
|
|
3
3
|
class IisWebsite < Base
|
4
4
|
|
5
5
|
def exists?()
|
6
|
-
|
6
|
+
@runner.check_iis_website_installed(@name)
|
7
7
|
end
|
8
8
|
|
9
9
|
def enabled?()
|
10
|
-
|
10
|
+
@runner.check_iis_website_enabled(@name)
|
11
11
|
end
|
12
12
|
|
13
13
|
def running?()
|
14
|
-
|
14
|
+
@runner.check_iis_website_running(@name)
|
15
15
|
end
|
16
16
|
|
17
17
|
def in_app_pool?(app_pool)
|
18
|
-
|
18
|
+
@runner.check_iis_website_app_pool(@name, app_pool)
|
19
19
|
end
|
20
20
|
|
21
21
|
def has_physical_path?(path)
|
22
|
-
|
22
|
+
@runner.check_iis_website_path(@name, path)
|
23
23
|
end
|
24
24
|
|
25
25
|
def to_s
|