serverspec 0.4.2 → 0.4.3
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/lib/serverspec/helper/type.rb +7 -8
- data/lib/serverspec/matchers.rb +2 -0
- data/lib/serverspec/matchers/be_reachable.rb +6 -1
- data/lib/serverspec/matchers/be_resolvable.rb +6 -1
- data/lib/serverspec/matchers/have_entry.rb +2 -0
- data/lib/serverspec/matchers/have_rule.rb +11 -0
- data/lib/serverspec/type/default_gateway.rb +21 -0
- data/lib/serverspec/type/host.rb +13 -0
- data/lib/serverspec/type/iptables.rb +12 -0
- data/lib/serverspec/type/linux_kernel_parameter.rb +12 -0
- data/lib/serverspec/type/routing_table.rb +13 -0
- data/lib/serverspec/version.rb +1 -1
- data/spec/darwin/default_gateway_spec.rb +7 -0
- data/spec/darwin/host_spec.rb +12 -0
- data/spec/darwin/routing_table_spec.rb +7 -0
- data/spec/debian/default_gateway_spec.rb +7 -0
- data/spec/debian/host_spec.rb +12 -0
- data/spec/debian/iptables_spec.rb +8 -0
- data/spec/debian/linux_kernel_parameter_spec.rb +9 -0
- data/spec/debian/routing_table_spec.rb +7 -0
- data/spec/gentoo/default_gateway_spec.rb +7 -0
- data/spec/gentoo/host_spec.rb +12 -0
- data/spec/gentoo/iptables_spec.rb +8 -0
- data/spec/gentoo/linux_kernel_parameter_spec.rb +9 -0
- data/spec/redhat/default_gateway_spec.rb +7 -0
- data/spec/redhat/host_spec.rb +12 -0
- data/spec/redhat/iptables_spec.rb +8 -0
- data/spec/redhat/linux_kernel_parameter_spec.rb +9 -0
- data/spec/redhat/routing_table_spec.rb +7 -0
- data/spec/solaris/default_gateway_spec.rb +7 -0
- data/spec/solaris/host_spec.rb +12 -0
- data/spec/solaris/routing_table_spec.rb +7 -0
- data/spec/support/shared_default_gateway_examples.rb +17 -0
- data/spec/support/shared_host_examples.rb +53 -0
- data/spec/support/shared_iptables_examples.rb +23 -0
- data/spec/support/shared_linux_kernel_parameter_examples.rb +53 -0
- data/spec/support/shared_routing_table_examples.rb +130 -0
- metadata +57 -1
@@ -2,13 +2,8 @@ module Serverspec
|
|
2
2
|
module Helper
|
3
3
|
module Type
|
4
4
|
types = %w(
|
5
|
-
base
|
6
|
-
|
7
|
-
package
|
8
|
-
port
|
9
|
-
file
|
10
|
-
cron
|
11
|
-
command
|
5
|
+
base service package port file cron command linux_kernel_parameter iptables host
|
6
|
+
routing_table default_gateway
|
12
7
|
)
|
13
8
|
|
14
9
|
types.each {|type| require "serverspec/type/#{type}" }
|
@@ -16,9 +11,13 @@ module Serverspec
|
|
16
11
|
types.each do |type|
|
17
12
|
define_method type do |*args|
|
18
13
|
name = args.first
|
19
|
-
self.class.const_get('Serverspec').const_get('Type').const_get(type
|
14
|
+
self.class.const_get('Serverspec').const_get('Type').const_get(camelize(type)).new(name)
|
20
15
|
end
|
21
16
|
end
|
17
|
+
|
18
|
+
def camelize(string)
|
19
|
+
string.split("_").each {|s| s.capitalize! }.join("")
|
20
|
+
end
|
22
21
|
end
|
23
22
|
end
|
24
23
|
end
|
data/lib/serverspec/matchers.rb
CHANGED
@@ -8,10 +8,15 @@ RSpec::Matchers.define :be_reachable do
|
|
8
8
|
timeout = @attr[:timeout] if @attr[:timeout]
|
9
9
|
end
|
10
10
|
|
11
|
-
|
11
|
+
if host.respond_to?(:reachable?)
|
12
|
+
host.reachable?(port, proto, timeout)
|
13
|
+
else
|
14
|
+
backend.check_reachable(example, host, port, proto, timeout)
|
15
|
+
end
|
12
16
|
end
|
13
17
|
|
14
18
|
chain :with do |attr|
|
15
19
|
@attr = attr
|
16
20
|
end
|
17
21
|
end
|
22
|
+
|
@@ -1,8 +1,13 @@
|
|
1
1
|
RSpec::Matchers.define :be_resolvable do
|
2
2
|
match do |name|
|
3
|
-
|
3
|
+
if name.respond_to?(:resolvable?)
|
4
|
+
name.resolvable?(@type)
|
5
|
+
else
|
6
|
+
backend.check_resolvable(example, name, @type)
|
7
|
+
end
|
4
8
|
end
|
5
9
|
chain :by do |type|
|
6
10
|
@type = type
|
7
11
|
end
|
8
12
|
end
|
13
|
+
|
@@ -2,6 +2,8 @@ RSpec::Matchers.define :have_entry do |entry|
|
|
2
2
|
match do |subject|
|
3
3
|
if subject.class.name == 'Serverspec::Type::Cron'
|
4
4
|
subject.has_entry?(@user, entry)
|
5
|
+
elsif subject.respond_to?(:has_entry?)
|
6
|
+
subject.has_entry?(entry)
|
5
7
|
else
|
6
8
|
backend.check_routing_table(example, entry)
|
7
9
|
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Serverspec
|
2
|
+
module Type
|
3
|
+
class DefaultGateway < Base
|
4
|
+
def ipaddress
|
5
|
+
ret = backend.run_command(commands.check_routing_table('default'))
|
6
|
+
ret[:stdout] =~ /^(\S+)(?: via (\S+))? dev (\S+).+\r\n(?:default via (\S+))?/
|
7
|
+
$2 ? $2 : $4
|
8
|
+
end
|
9
|
+
|
10
|
+
def interface
|
11
|
+
ret = backend.run_command(commands.check_routing_table('default'))
|
12
|
+
ret[:stdout] =~ /^(\S+)(?: via (\S+))? dev (\S+).+\r\n(?:default via (\S+))?/
|
13
|
+
$3
|
14
|
+
end
|
15
|
+
|
16
|
+
def to_s
|
17
|
+
'Default Gateway'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
module Serverspec
|
2
|
+
module Type
|
3
|
+
class Host < Base
|
4
|
+
def resolvable?(type)
|
5
|
+
backend.check_resolvable(nil, @name, type)
|
6
|
+
end
|
7
|
+
|
8
|
+
def reachable?(port, proto, timeout)
|
9
|
+
backend.check_reachable(nil, @name, port, proto, timeout)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
13
|
+
end
|
data/lib/serverspec/version.rb
CHANGED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Serverspec::Helper::Darwin
|
4
|
+
|
5
|
+
describe 'Serverspec host matchers of Darwin family' do
|
6
|
+
it_behaves_like 'support host be_reachable matcher', '127.0.0.1'
|
7
|
+
it_behaves_like 'support host be_reachable with matcher', '127.0.0.1'
|
8
|
+
|
9
|
+
it_behaves_like 'support host be_resolvable matcher', 'localhost'
|
10
|
+
it_behaves_like 'support host be_resolvable by matcher', 'localhost', 'hosts'
|
11
|
+
it_behaves_like 'support host be_resolvable by matcher', 'localhost', 'dns'
|
12
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Serverspec::Helper::Debian
|
4
|
+
|
5
|
+
describe 'Serverspec host matchers of Debian family' do
|
6
|
+
it_behaves_like 'support host be_reachable matcher', '127.0.0.1'
|
7
|
+
it_behaves_like 'support host be_reachable with matcher', '127.0.0.1'
|
8
|
+
|
9
|
+
it_behaves_like 'support host be_resolvable matcher', 'localhost'
|
10
|
+
it_behaves_like 'support host be_resolvable by matcher', 'localhost', 'hosts'
|
11
|
+
it_behaves_like 'support host be_resolvable by matcher', 'localhost', 'dns'
|
12
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Serverspec::Helper::Debian
|
4
|
+
|
5
|
+
describe 'Serverspec iptables matchers of Debian family' do
|
6
|
+
it_behaves_like 'support iptables have_rule matcher', '-P INPUT ACCEPT'
|
7
|
+
it_behaves_like 'support iptables have_rule with_table and with_chain matcher', '-P INPUT ACCEPT', 'mangle', 'INPUT'
|
8
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Serverspec::Helper::Debian
|
4
|
+
|
5
|
+
describe 'Serverspec linux kernel parameter matchers of Debian family' do
|
6
|
+
it_behaves_like 'support explicit linux kernel parameter checking with integer', 'net.ipv4.tcp_syncookies', 1
|
7
|
+
it_behaves_like 'support explicit linux kernel parameter checking with string', 'kernel.osrelease', '2.6.32-131.0.15.el6.x86_64'
|
8
|
+
it_behaves_like 'support explicit linux kernel parameter checking with regexp', 'net.ipv4.tcp_wmem', /4096\t16384\t4194304/
|
9
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Serverspec::Helper::Gentoo
|
4
|
+
|
5
|
+
describe 'Serverspec host matchers of Gentoo family' do
|
6
|
+
it_behaves_like 'support host be_reachable matcher', '127.0.0.1'
|
7
|
+
it_behaves_like 'support host be_reachable with matcher', '127.0.0.1'
|
8
|
+
|
9
|
+
it_behaves_like 'support host be_resolvable matcher', 'localhost'
|
10
|
+
it_behaves_like 'support host be_resolvable by matcher', 'localhost', 'hosts'
|
11
|
+
it_behaves_like 'support host be_resolvable by matcher', 'localhost', 'dns'
|
12
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Serverspec::Helper::Gentoo
|
4
|
+
|
5
|
+
describe 'Serverspec iptables matchers of Gentoo family' do
|
6
|
+
it_behaves_like 'support iptables have_rule matcher', '-P INPUT ACCEPT'
|
7
|
+
it_behaves_like 'support iptables have_rule with_table and with_chain matcher', '-P INPUT ACCEPT', 'mangle', 'INPUT'
|
8
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Serverspec::Helper::Gentoo
|
4
|
+
|
5
|
+
describe 'Serverspec linux kernel parameter matchers of Gentoo family' do
|
6
|
+
it_behaves_like 'support explicit linux kernel parameter checking with integer', 'net.ipv4.tcp_syncookies', 1
|
7
|
+
it_behaves_like 'support explicit linux kernel parameter checking with string', 'kernel.osrelease', '2.6.32-131.0.15.el6.x86_64'
|
8
|
+
it_behaves_like 'support explicit linux kernel parameter checking with regexp', 'net.ipv4.tcp_wmem', /4096\t16384\t4194304/
|
9
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Serverspec::Helper::RedHat
|
4
|
+
|
5
|
+
describe 'Serverspec host matchers of Red Hat family' do
|
6
|
+
it_behaves_like 'support host be_reachable matcher', '127.0.0.1'
|
7
|
+
it_behaves_like 'support host be_reachable with matcher', '127.0.0.1'
|
8
|
+
|
9
|
+
it_behaves_like 'support host be_resolvable matcher', 'localhost'
|
10
|
+
it_behaves_like 'support host be_resolvable by matcher', 'localhost', 'hosts'
|
11
|
+
it_behaves_like 'support host be_resolvable by matcher', 'localhost', 'dns'
|
12
|
+
end
|
@@ -0,0 +1,8 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Serverspec::Helper::RedHat
|
4
|
+
|
5
|
+
describe 'Serverspec iptables matchers of Red Hat family' do
|
6
|
+
it_behaves_like 'support iptables have_rule matcher', '-P INPUT ACCEPT'
|
7
|
+
it_behaves_like 'support iptables have_rule with_table and with_chain matcher', '-P INPUT ACCEPT', 'mangle', 'INPUT'
|
8
|
+
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Serverspec::Helper::RedHat
|
4
|
+
|
5
|
+
describe 'Serverspec linux kernel parameter matchers of Red Hat family' do
|
6
|
+
it_behaves_like 'support explicit linux kernel parameter checking with integer', 'net.ipv4.tcp_syncookies', 1
|
7
|
+
it_behaves_like 'support explicit linux kernel parameter checking with string', 'kernel.osrelease', '2.6.32-131.0.15.el6.x86_64'
|
8
|
+
it_behaves_like 'support explicit linux kernel parameter checking with regexp', 'net.ipv4.tcp_wmem', /4096\t16384\t4194304/
|
9
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
include Serverspec::Helper::Solaris
|
4
|
+
|
5
|
+
describe 'Serverspec host matchers of Solaris family' do
|
6
|
+
it_behaves_like 'support host be_reachable matcher', '127.0.0.1'
|
7
|
+
it_behaves_like 'support host be_reachable with matcher', '127.0.0.1'
|
8
|
+
|
9
|
+
it_behaves_like 'support host be_resolvable matcher', 'localhost'
|
10
|
+
it_behaves_like 'support host be_resolvable by matcher', 'localhost', 'hosts'
|
11
|
+
it_behaves_like 'support host be_resolvable by matcher', 'localhost', 'dns'
|
12
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
shared_examples_for 'support default gateway matcher' do
|
2
|
+
describe 'default_gateway' do
|
3
|
+
before :all do
|
4
|
+
RSpec.configure do |c|
|
5
|
+
c.stdout = "default via 192.168.1.1 dev eth1 \r\n"
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
describe default_gateway do
|
10
|
+
its(:ipaddress) { should eq '192.168.1.1' }
|
11
|
+
its(:interface) { should eq 'eth1' }
|
12
|
+
|
13
|
+
its(:ipaddress) { should_not eq '192.168.1.2' }
|
14
|
+
its(:interface) { should_not eq 'eth0' }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
shared_examples_for 'support host be_resolvable matcher' do |name|
|
2
|
+
describe 'be_resolvable' do
|
3
|
+
describe host(name) do
|
4
|
+
it { should be_resolvable }
|
5
|
+
end
|
6
|
+
|
7
|
+
describe host('invalid-name') do
|
8
|
+
it { should_not be_resolvable }
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
|
14
|
+
shared_examples_for 'support host be_resolvable by matcher' do |name, type|
|
15
|
+
describe 'be_resolvable.by' do
|
16
|
+
describe host(name) do
|
17
|
+
it { should be_resolvable.by(type) }
|
18
|
+
end
|
19
|
+
|
20
|
+
describe host('invalid-name') do
|
21
|
+
it { should_not be_resolvable.by(type) }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
shared_examples_for 'support host be_reachable matcher' do |name|
|
27
|
+
describe 'be_reachable' do
|
28
|
+
context host(name) do
|
29
|
+
it { should be_reachable }
|
30
|
+
end
|
31
|
+
|
32
|
+
describe host('invalid-host') do
|
33
|
+
it { should_not be_reachable }
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
shared_examples_for 'support host be_reachable with matcher' do |name|
|
39
|
+
describe 'be_reachable.with' do
|
40
|
+
context host(name) do
|
41
|
+
it { should be_reachable.with(:proto => "icmp", :timeout=> 1) }
|
42
|
+
end
|
43
|
+
context host(name) do
|
44
|
+
it { should be_reachable.with(:proto => "tcp", :port => 22, :timeout=> 1) }
|
45
|
+
end
|
46
|
+
context host(name) do
|
47
|
+
it { should be_reachable.with(:proto => "udp", :port => 53, :timeout=> 1) }
|
48
|
+
end
|
49
|
+
context host('invalid-host') do
|
50
|
+
it { should_not be_reachable.with(:proto => "udp", :port => 53, :timeout=> 1) }
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
shared_examples_for 'support iptables have_rule matcher' do |rule|
|
2
|
+
describe 'have_rule' do
|
3
|
+
describe iptables do
|
4
|
+
it { should have_rule rule }
|
5
|
+
end
|
6
|
+
|
7
|
+
describe iptables do
|
8
|
+
it { should_not have_rule 'invalid-rule' }
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
shared_examples_for 'support iptables have_rule with_table and with_chain matcher' do |rule, table, chain|
|
14
|
+
describe 'have_rule with_table and with_chain' do
|
15
|
+
describe iptables do
|
16
|
+
it { should have_iptables_rule(rule).with_table(table).with_chain(chain) }
|
17
|
+
end
|
18
|
+
|
19
|
+
describe iptables do
|
20
|
+
it { should_not have_iptables_rule('invalid-rule').with_table(table).with_chain(chain) }
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
shared_examples_for 'support explicit linux kernel parameter checking with integer' do |param, value|
|
2
|
+
describe 'linux kernel parameter' do
|
3
|
+
before :all do
|
4
|
+
RSpec.configure do |c|
|
5
|
+
c.stdout = "#{value}\n"
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
context linux_kernel_parameter(param) do
|
10
|
+
its(:value) { should eq value }
|
11
|
+
end
|
12
|
+
|
13
|
+
context linux_kernel_parameter(param) do
|
14
|
+
its(:value) { should_not eq value + 1 }
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
shared_examples_for 'support explicit linux kernel parameter checking with string' do |param, value|
|
20
|
+
describe 'linux kernel parameter' do
|
21
|
+
before :all do
|
22
|
+
RSpec.configure do |c|
|
23
|
+
c.stdout = "#{value}\n"
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
context linux_kernel_parameter(param) do
|
28
|
+
its(:value) { should eq value }
|
29
|
+
end
|
30
|
+
|
31
|
+
context linux_kernel_parameter(param) do
|
32
|
+
its(:value) { should_not eq value + '_suffix' }
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
shared_examples_for 'support explicit linux kernel parameter checking with regexp' do |param, regexp|
|
38
|
+
describe 'linux kernel parameter' do
|
39
|
+
before :all do
|
40
|
+
RSpec.configure do |c|
|
41
|
+
c.stdout = "4096 16384 4194304\n"
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
context linux_kernel_parameter(param) do
|
46
|
+
its(:value) { should match regexp }
|
47
|
+
end
|
48
|
+
|
49
|
+
context linux_kernel_parameter(param) do
|
50
|
+
its(:value) { should_not match /invalid-string/ }
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,130 @@
|
|
1
|
+
shared_examples_for 'support routing table have_entry matcher' do
|
2
|
+
describe 'routing table have_entry pattern #1' do
|
3
|
+
before :all do
|
4
|
+
RSpec.configure do |c|
|
5
|
+
c.stdout = "192.168.100.0/24 dev eth1 proto kernel scope link src 192.168.100.10 \r\ndefault via 192.168.100.1 dev eth0 \r\n"
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
context routing_table do
|
10
|
+
it { should have_entry( :destination => '192.168.100.0/24' ) }
|
11
|
+
it { should_not have_entry( :destination => '192.168.100.100/24' ) }
|
12
|
+
|
13
|
+
it do
|
14
|
+
should have_entry(
|
15
|
+
:destination => '192.168.100.0/24',
|
16
|
+
:gateway => '192.168.100.1'
|
17
|
+
)
|
18
|
+
end
|
19
|
+
|
20
|
+
it do
|
21
|
+
should have_entry(
|
22
|
+
:destination => '192.168.100.0/24',
|
23
|
+
:gateway => '192.168.100.1',
|
24
|
+
:interface => 'eth1'
|
25
|
+
)
|
26
|
+
end
|
27
|
+
|
28
|
+
it do
|
29
|
+
should_not have_entry(
|
30
|
+
:gateway => '192.168.100.1',
|
31
|
+
:interface => 'eth1'
|
32
|
+
)
|
33
|
+
end
|
34
|
+
|
35
|
+
it do
|
36
|
+
should_not have_entry(
|
37
|
+
:destination => '192.168.100.0/32',
|
38
|
+
:gateway => '192.168.100.1',
|
39
|
+
:interface => 'eth1'
|
40
|
+
)
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
|
45
|
+
describe 'routing table have_entry pattern #2' do
|
46
|
+
before :all do
|
47
|
+
RSpec.configure do |c|
|
48
|
+
c.stdout = "192.168.200.0/24 via 192.168.200.1 dev eth0 \r\ndefault via 192.168.100.1 dev eth0 \r\n"
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
context routing_table do
|
53
|
+
it { should have_entry( :destination => '192.168.200.0/24' ) }
|
54
|
+
it { should_not have_entry( :destination => '192.168.200.200/24' ) }
|
55
|
+
|
56
|
+
it do
|
57
|
+
should have_entry(
|
58
|
+
:destination => '192.168.200.0/24',
|
59
|
+
:gateway => '192.168.200.1'
|
60
|
+
)
|
61
|
+
end
|
62
|
+
|
63
|
+
it do
|
64
|
+
should have_entry(
|
65
|
+
:destination => '192.168.200.0/24',
|
66
|
+
:gateway => '192.168.200.1',
|
67
|
+
:interface => 'eth0'
|
68
|
+
)
|
69
|
+
end
|
70
|
+
|
71
|
+
it do
|
72
|
+
should_not have_entry(
|
73
|
+
:gateway => '192.168.200.1',
|
74
|
+
:interface => 'eth0'
|
75
|
+
)
|
76
|
+
end
|
77
|
+
|
78
|
+
it do
|
79
|
+
should_not have_entry(
|
80
|
+
:destination => '192.168.200.0/32',
|
81
|
+
:gateway => '192.168.200.1',
|
82
|
+
:interface => 'eth0'
|
83
|
+
)
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
describe 'routing table have_entry #3' do
|
89
|
+
before :all do
|
90
|
+
RSpec.configure do |c|
|
91
|
+
c.stdout = "default via 10.0.2.2 dev eth0 \r\n"
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
context routing_table do
|
96
|
+
it { should have_entry( :destination => 'default' ) }
|
97
|
+
it { should_not have_entry( :destination => 'defaulth' ) }
|
98
|
+
|
99
|
+
it do
|
100
|
+
should have_entry(
|
101
|
+
:destination => 'default',
|
102
|
+
:gateway => '10.0.2.2'
|
103
|
+
)
|
104
|
+
end
|
105
|
+
|
106
|
+
it do
|
107
|
+
should have_entry(
|
108
|
+
:destination => 'default',
|
109
|
+
:gateway => '10.0.2.2',
|
110
|
+
:interface => 'eth0'
|
111
|
+
)
|
112
|
+
end
|
113
|
+
|
114
|
+
it do
|
115
|
+
should_not have_entry(
|
116
|
+
:gateway => '10.0.2.2',
|
117
|
+
:interface => 'eth0'
|
118
|
+
)
|
119
|
+
end
|
120
|
+
|
121
|
+
it do
|
122
|
+
should_not have_entry(
|
123
|
+
:destination => 'default',
|
124
|
+
:gateway => '10.0.2.1',
|
125
|
+
:interface => 'eth0'
|
126
|
+
)
|
127
|
+
end
|
128
|
+
end
|
129
|
+
end
|
130
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: serverspec
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -203,6 +203,7 @@ files:
|
|
203
203
|
- lib/serverspec/matchers/have_ipnat_rule.rb
|
204
204
|
- lib/serverspec/matchers/have_iptables_rule.rb
|
205
205
|
- lib/serverspec/matchers/have_login_shell.rb
|
206
|
+
- lib/serverspec/matchers/have_rule.rb
|
206
207
|
- lib/serverspec/matchers/have_svcprop.rb
|
207
208
|
- lib/serverspec/matchers/have_svcprops.rb
|
208
209
|
- lib/serverspec/matchers/have_uid.rb
|
@@ -215,32 +216,49 @@ files:
|
|
215
216
|
- lib/serverspec/type/base.rb
|
216
217
|
- lib/serverspec/type/command.rb
|
217
218
|
- lib/serverspec/type/cron.rb
|
219
|
+
- lib/serverspec/type/default_gateway.rb
|
218
220
|
- lib/serverspec/type/file.rb
|
221
|
+
- lib/serverspec/type/host.rb
|
222
|
+
- lib/serverspec/type/iptables.rb
|
223
|
+
- lib/serverspec/type/linux_kernel_parameter.rb
|
219
224
|
- lib/serverspec/type/package.rb
|
220
225
|
- lib/serverspec/type/port.rb
|
226
|
+
- lib/serverspec/type/routing_table.rb
|
221
227
|
- lib/serverspec/type/service.rb
|
222
228
|
- lib/serverspec/version.rb
|
223
229
|
- serverspec.gemspec
|
224
230
|
- spec/darwin/command_spec.rb
|
225
231
|
- spec/darwin/commands_spec.rb
|
226
232
|
- spec/darwin/cron_spec.rb
|
233
|
+
- spec/darwin/default_gateway_spec.rb
|
227
234
|
- spec/darwin/file_spec.rb
|
235
|
+
- spec/darwin/host_spec.rb
|
228
236
|
- spec/darwin/matchers_spec.rb
|
229
237
|
- spec/darwin/package_spec.rb
|
230
238
|
- spec/darwin/port_spec.rb
|
239
|
+
- spec/darwin/routing_table_spec.rb
|
231
240
|
- spec/darwin/service_spec.rb
|
232
241
|
- spec/debian/command_spec.rb
|
233
242
|
- spec/debian/commands_spec.rb
|
234
243
|
- spec/debian/cron_spec.rb
|
244
|
+
- spec/debian/default_gateway_spec.rb
|
235
245
|
- spec/debian/file_spec.rb
|
246
|
+
- spec/debian/host_spec.rb
|
247
|
+
- spec/debian/iptables_spec.rb
|
248
|
+
- spec/debian/linux_kernel_parameter_spec.rb
|
236
249
|
- spec/debian/matchers_spec.rb
|
237
250
|
- spec/debian/package_spec.rb
|
238
251
|
- spec/debian/port_spec.rb
|
252
|
+
- spec/debian/routing_table_spec.rb
|
239
253
|
- spec/debian/service_spec.rb
|
240
254
|
- spec/gentoo/command_spec.rb
|
241
255
|
- spec/gentoo/commands_spec.rb
|
242
256
|
- spec/gentoo/cron_spec.rb
|
257
|
+
- spec/gentoo/default_gateway_spec.rb
|
243
258
|
- spec/gentoo/file_spec.rb
|
259
|
+
- spec/gentoo/host_spec.rb
|
260
|
+
- spec/gentoo/iptables_spec.rb
|
261
|
+
- spec/gentoo/linux_kernel_parameter_spec.rb
|
244
262
|
- spec/gentoo/matchers_spec.rb
|
245
263
|
- spec/gentoo/package_spec.rb
|
246
264
|
- spec/gentoo/port_spec.rb
|
@@ -249,26 +267,39 @@ files:
|
|
249
267
|
- spec/redhat/command_spec.rb
|
250
268
|
- spec/redhat/commands_spec.rb
|
251
269
|
- spec/redhat/cron_spec.rb
|
270
|
+
- spec/redhat/default_gateway_spec.rb
|
252
271
|
- spec/redhat/file_spec.rb
|
272
|
+
- spec/redhat/host_spec.rb
|
273
|
+
- spec/redhat/iptables_spec.rb
|
274
|
+
- spec/redhat/linux_kernel_parameter_spec.rb
|
253
275
|
- spec/redhat/matchers_spec.rb
|
254
276
|
- spec/redhat/package_spec.rb
|
255
277
|
- spec/redhat/port_spec.rb
|
278
|
+
- spec/redhat/routing_table_spec.rb
|
256
279
|
- spec/redhat/service_spec.rb
|
257
280
|
- spec/solaris/command_spec.rb
|
258
281
|
- spec/solaris/commands_spec.rb
|
259
282
|
- spec/solaris/cron_spec.rb
|
283
|
+
- spec/solaris/default_gateway_spec.rb
|
260
284
|
- spec/solaris/file_spec.rb
|
285
|
+
- spec/solaris/host_spec.rb
|
261
286
|
- spec/solaris/matchers_spec.rb
|
262
287
|
- spec/solaris/package_spec.rb
|
263
288
|
- spec/solaris/port_spec.rb
|
289
|
+
- spec/solaris/routing_table_spec.rb
|
264
290
|
- spec/solaris/service_spec.rb
|
265
291
|
- spec/spec_helper.rb
|
266
292
|
- spec/support/shared_command_examples.rb
|
267
293
|
- spec/support/shared_cron_examples.rb
|
294
|
+
- spec/support/shared_default_gateway_examples.rb
|
268
295
|
- spec/support/shared_file_examples.rb
|
296
|
+
- spec/support/shared_host_examples.rb
|
297
|
+
- spec/support/shared_iptables_examples.rb
|
298
|
+
- spec/support/shared_linux_kernel_parameter_examples.rb
|
269
299
|
- spec/support/shared_matcher_examples.rb
|
270
300
|
- spec/support/shared_package_examples.rb
|
271
301
|
- spec/support/shared_port_examples.rb
|
302
|
+
- spec/support/shared_routing_table_examples.rb
|
272
303
|
- spec/support/shared_service_examples.rb
|
273
304
|
homepage: http://serverspec.org/
|
274
305
|
licenses:
|
@@ -299,23 +330,35 @@ test_files:
|
|
299
330
|
- spec/darwin/command_spec.rb
|
300
331
|
- spec/darwin/commands_spec.rb
|
301
332
|
- spec/darwin/cron_spec.rb
|
333
|
+
- spec/darwin/default_gateway_spec.rb
|
302
334
|
- spec/darwin/file_spec.rb
|
335
|
+
- spec/darwin/host_spec.rb
|
303
336
|
- spec/darwin/matchers_spec.rb
|
304
337
|
- spec/darwin/package_spec.rb
|
305
338
|
- spec/darwin/port_spec.rb
|
339
|
+
- spec/darwin/routing_table_spec.rb
|
306
340
|
- spec/darwin/service_spec.rb
|
307
341
|
- spec/debian/command_spec.rb
|
308
342
|
- spec/debian/commands_spec.rb
|
309
343
|
- spec/debian/cron_spec.rb
|
344
|
+
- spec/debian/default_gateway_spec.rb
|
310
345
|
- spec/debian/file_spec.rb
|
346
|
+
- spec/debian/host_spec.rb
|
347
|
+
- spec/debian/iptables_spec.rb
|
348
|
+
- spec/debian/linux_kernel_parameter_spec.rb
|
311
349
|
- spec/debian/matchers_spec.rb
|
312
350
|
- spec/debian/package_spec.rb
|
313
351
|
- spec/debian/port_spec.rb
|
352
|
+
- spec/debian/routing_table_spec.rb
|
314
353
|
- spec/debian/service_spec.rb
|
315
354
|
- spec/gentoo/command_spec.rb
|
316
355
|
- spec/gentoo/commands_spec.rb
|
317
356
|
- spec/gentoo/cron_spec.rb
|
357
|
+
- spec/gentoo/default_gateway_spec.rb
|
318
358
|
- spec/gentoo/file_spec.rb
|
359
|
+
- spec/gentoo/host_spec.rb
|
360
|
+
- spec/gentoo/iptables_spec.rb
|
361
|
+
- spec/gentoo/linux_kernel_parameter_spec.rb
|
319
362
|
- spec/gentoo/matchers_spec.rb
|
320
363
|
- spec/gentoo/package_spec.rb
|
321
364
|
- spec/gentoo/port_spec.rb
|
@@ -324,24 +367,37 @@ test_files:
|
|
324
367
|
- spec/redhat/command_spec.rb
|
325
368
|
- spec/redhat/commands_spec.rb
|
326
369
|
- spec/redhat/cron_spec.rb
|
370
|
+
- spec/redhat/default_gateway_spec.rb
|
327
371
|
- spec/redhat/file_spec.rb
|
372
|
+
- spec/redhat/host_spec.rb
|
373
|
+
- spec/redhat/iptables_spec.rb
|
374
|
+
- spec/redhat/linux_kernel_parameter_spec.rb
|
328
375
|
- spec/redhat/matchers_spec.rb
|
329
376
|
- spec/redhat/package_spec.rb
|
330
377
|
- spec/redhat/port_spec.rb
|
378
|
+
- spec/redhat/routing_table_spec.rb
|
331
379
|
- spec/redhat/service_spec.rb
|
332
380
|
- spec/solaris/command_spec.rb
|
333
381
|
- spec/solaris/commands_spec.rb
|
334
382
|
- spec/solaris/cron_spec.rb
|
383
|
+
- spec/solaris/default_gateway_spec.rb
|
335
384
|
- spec/solaris/file_spec.rb
|
385
|
+
- spec/solaris/host_spec.rb
|
336
386
|
- spec/solaris/matchers_spec.rb
|
337
387
|
- spec/solaris/package_spec.rb
|
338
388
|
- spec/solaris/port_spec.rb
|
389
|
+
- spec/solaris/routing_table_spec.rb
|
339
390
|
- spec/solaris/service_spec.rb
|
340
391
|
- spec/spec_helper.rb
|
341
392
|
- spec/support/shared_command_examples.rb
|
342
393
|
- spec/support/shared_cron_examples.rb
|
394
|
+
- spec/support/shared_default_gateway_examples.rb
|
343
395
|
- spec/support/shared_file_examples.rb
|
396
|
+
- spec/support/shared_host_examples.rb
|
397
|
+
- spec/support/shared_iptables_examples.rb
|
398
|
+
- spec/support/shared_linux_kernel_parameter_examples.rb
|
344
399
|
- spec/support/shared_matcher_examples.rb
|
345
400
|
- spec/support/shared_package_examples.rb
|
346
401
|
- spec/support/shared_port_examples.rb
|
402
|
+
- spec/support/shared_routing_table_examples.rb
|
347
403
|
- spec/support/shared_service_examples.rb
|