rouster 0.7 → 0.41
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +0 -3
- data/README.md +7 -241
- data/Rakefile +18 -55
- data/Vagrantfile +8 -26
- data/lib/rouster.rb +183 -404
- data/lib/rouster/deltas.rb +118 -577
- data/lib/rouster/puppet.rb +34 -209
- data/lib/rouster/testing.rb +59 -366
- data/lib/rouster/tests.rb +19 -70
- data/path_helper.rb +7 -5
- data/rouster.gemspec +1 -3
- data/test/basic.rb +1 -4
- data/test/functional/deltas/test_get_groups.rb +2 -74
- data/test/functional/deltas/test_get_packages.rb +4 -86
- data/test/functional/deltas/test_get_ports.rb +1 -26
- data/test/functional/deltas/test_get_services.rb +4 -43
- data/test/functional/deltas/test_get_users.rb +2 -35
- data/test/functional/puppet/test_facter.rb +1 -41
- data/test/functional/puppet/test_get_puppet_star.rb +68 -0
- data/test/functional/test_caching.rb +1 -5
- data/test/functional/test_dirs.rb +0 -25
- data/test/functional/test_get.rb +6 -10
- data/test/functional/test_inspect.rb +1 -1
- data/test/functional/test_is_file.rb +1 -17
- data/test/functional/test_new.rb +22 -233
- data/test/functional/test_put.rb +11 -9
- data/test/functional/test_restart.rb +4 -1
- data/test/functional/test_run.rb +3 -2
- data/test/puppet/test_apply.rb +11 -13
- data/test/puppet/test_roles.rb +173 -0
- data/test/unit/test_new.rb +0 -88
- data/test/unit/test_parse_ls_string.rb +0 -67
- data/test/unit/testing/test_validate_file.rb +47 -39
- data/test/unit/testing/test_validate_package.rb +10 -36
- metadata +6 -46
- data/.reek +0 -63
- data/.travis.yml +0 -11
- data/Gemfile +0 -17
- data/Gemfile.lock +0 -102
- data/LICENSE +0 -9
- data/examples/aws.rb +0 -85
- data/examples/openstack.rb +0 -61
- data/examples/passthrough.rb +0 -71
- data/lib/rouster/vagrant.rb +0 -311
- data/plugins/aws.rb +0 -347
- data/plugins/openstack.rb +0 -136
- data/test/functional/deltas/test_get_crontab.rb +0 -161
- data/test/functional/deltas/test_get_os.rb +0 -68
- data/test/functional/test_is_in_file.rb +0 -40
- data/test/functional/test_passthroughs.rb +0 -94
- data/test/functional/test_validate_file.rb +0 -131
- data/test/unit/puppet/resources/puppet_run_with_failed_exec +0 -59
- data/test/unit/puppet/resources/puppet_run_with_successful_exec +0 -61
- data/test/unit/puppet/test_get_puppet_star.rb +0 -91
- data/test/unit/puppet/test_puppet_parsing.rb +0 -44
- data/test/unit/testing/resources/osx-launchd +0 -285
- data/test/unit/testing/resources/rhel-systemd +0 -46
- data/test/unit/testing/resources/rhel-systemv +0 -41
- data/test/unit/testing/resources/rhel-upstart +0 -20
- data/test/unit/testing/test_get_services.rb +0 -178
- data/test/unit/testing/test_validate_cron.rb +0 -78
- data/test/unit/testing/test_validate_port.rb +0 -103
@@ -1,46 +0,0 @@
|
|
1
|
-
UNIT LOAD ACTIVE SUB DESCRIPTION
|
2
|
-
crond.service loaded active running Command Scheduler
|
3
|
-
dbus.service loaded active running D-Bus System Message Bus
|
4
|
-
getty@tty1.service loaded active running Getty on tty1
|
5
|
-
gssproxy.service loaded active running GSSAPI Proxy Daemon
|
6
|
-
● kdump.service loaded failed failed Crash recovery kernel arming
|
7
|
-
kmod-static-nodes.service loaded active exited Create list of required static device nodes for the current kernel
|
8
|
-
lldpad.service loaded active running Link Layer Discovery Protocol Agent Daemon.
|
9
|
-
mdmonitor.service loaded active running Software RAID monitoring and management
|
10
|
-
network.service loaded active running LSB: Bring up/down networking
|
11
|
-
nfs-config.service loaded active exited Preprocess NFS configuration
|
12
|
-
ntpd.service loaded active running Network Time Service
|
13
|
-
postfix.service loaded active running Postfix Mail Transport Agent
|
14
|
-
rhel-dmesg.service loaded active exited Dump dmesg to /var/log/dmesg
|
15
|
-
rhel-import-state.service loaded active exited Import network configuration from initramfs
|
16
|
-
rhel-readonly.service loaded active exited Configure read-only root support
|
17
|
-
rsyslog.service loaded active running System Logging Service
|
18
|
-
sshd.service loaded active running OpenSSH server daemon
|
19
|
-
systemd-fsck-root.service loaded active exited File System Check on Root Device
|
20
|
-
systemd-fsck@dev-disk-by\x2dlabel-boot.service loaded active exited File System Check on /dev/disk/by-label/boot
|
21
|
-
systemd-journal-flush.service loaded active exited Flush Journal to Persistent Storage
|
22
|
-
systemd-journald.service loaded active running Journal Service
|
23
|
-
systemd-logind.service loaded active running Login Service
|
24
|
-
systemd-random-seed.service loaded active exited Load/Save Random Seed
|
25
|
-
systemd-remount-fs.service loaded active exited Remount Root and Kernel File Systems
|
26
|
-
systemd-sysctl.service loaded active exited Apply Kernel Variables
|
27
|
-
systemd-tmpfiles-setup-dev.service loaded active exited Create Static Device Nodes in /dev
|
28
|
-
systemd-tmpfiles-setup.service loaded active exited Create Volatile Files and Directories
|
29
|
-
systemd-udev-trigger.service loaded active exited udev Coldplug all Devices
|
30
|
-
systemd-udevd.service loaded active running udev Kernel Device Manager
|
31
|
-
systemd-update-utmp.service loaded active exited Update UTMP about System Boot/Shutdown
|
32
|
-
systemd-user-sessions.service loaded active exited Permit User Sessions
|
33
|
-
systemd-vconsole-setup.service loaded active exited Setup Virtual Console
|
34
|
-
tuned.service loaded active running Dynamic System Tuning Daemon
|
35
|
-
vboxadd-service.service loaded active running LSB: VirtualBox Additions service
|
36
|
-
vboxadd-x11.service loaded active exited LSB: VirtualBox Linux Additions kernel modules
|
37
|
-
vboxadd.service loaded active exited LSB: VirtualBox Linux Additions kernel modules
|
38
|
-
|
39
|
-
LOAD = Reflects whether the unit definition was properly loaded.
|
40
|
-
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
|
41
|
-
SUB = The low-level unit activation state, values depend on unit type.
|
42
|
-
|
43
|
-
36 loaded units listed. Pass --all to see loaded but inactive units, too.
|
44
|
-
To show all installed unit files use 'systemctl list-unit-files'.
|
45
|
-
|
46
|
-
|
@@ -1,41 +0,0 @@
|
|
1
|
-
acpid (pid 945) is running...
|
2
|
-
atd (pid 1010) is running...
|
3
|
-
auditd (pid 853) is running...
|
4
|
-
Stopped
|
5
|
-
cgred is stopped
|
6
|
-
crond (pid 999) is running...
|
7
|
-
ip6tables: Firewall is not running.
|
8
|
-
iptables: Firewall is not running.
|
9
|
-
Kdump is not operational
|
10
|
-
mdmonitor is stopped
|
11
|
-
netconsole module not loaded
|
12
|
-
Configured devices:
|
13
|
-
lo eth0
|
14
|
-
Currently active devices:
|
15
|
-
lo eth0
|
16
|
-
rpc.svcgssd is stopped
|
17
|
-
rpc.mountd is stopped
|
18
|
-
nfsd is stopped
|
19
|
-
rpc.statd (pid 905) is running...
|
20
|
-
ntpd (pid 1587) is running...
|
21
|
-
portreserve is stopped
|
22
|
-
master is stopped
|
23
|
-
puppet is stopped
|
24
|
-
rdisc is stopped
|
25
|
-
redis-server (pid 7295) is running...
|
26
|
-
restorecond is stopped
|
27
|
-
rhsmcertd (pid 1023) is running...
|
28
|
-
rpcbind (pid 887) is running...
|
29
|
-
rpc.gssd is stopped
|
30
|
-
rpc.idmapd is stopped
|
31
|
-
rpc.svcgssd is stopped
|
32
|
-
rsyslogd (pid 869) is running...
|
33
|
-
sandbox is stopped
|
34
|
-
saslauthd is stopped
|
35
|
-
sendmail (pid 981) is running...
|
36
|
-
sm-client (pid 990) is running...
|
37
|
-
snmpd (pid 1569) is running...
|
38
|
-
snmptrapd is stopped
|
39
|
-
openssh-daemon (pid 965) is running...
|
40
|
-
svnserve is stopped
|
41
|
-
tgtd is stopped
|
@@ -1,20 +0,0 @@
|
|
1
|
-
rc stop/waiting
|
2
|
-
tty (/dev/tty3) start/running, process 1601
|
3
|
-
tty (/dev/tty2) start/running, process 1597
|
4
|
-
tty (/dev/tty1) start/running, process 1595
|
5
|
-
tty (/dev/tty6) start/running, process 1609
|
6
|
-
tty (/dev/tty5) start/running, process 1607
|
7
|
-
tty (/dev/tty4) start/running, process 1603
|
8
|
-
plymouth-shutdown stop/waiting
|
9
|
-
control-alt-delete stop/waiting
|
10
|
-
rcS-emergency stop/waiting
|
11
|
-
kexec-disable stop/waiting
|
12
|
-
quit-plymouth stop/waiting
|
13
|
-
rcS stop/waiting
|
14
|
-
prefdm stop/waiting
|
15
|
-
named start/running, process 8959
|
16
|
-
init-system-dbus stop/waiting
|
17
|
-
splash-manager stop/waiting
|
18
|
-
start-ttys stop/waiting
|
19
|
-
rcS-sulogin stop/waiting
|
20
|
-
serial stop/waiting
|
@@ -1,178 +0,0 @@
|
|
1
|
-
require sprintf('%s/../../../path_helper', File.dirname(File.expand_path(__FILE__)))
|
2
|
-
|
3
|
-
require 'rouster'
|
4
|
-
require 'rouster/puppet'
|
5
|
-
require 'rouster/testing'
|
6
|
-
require 'test/unit'
|
7
|
-
|
8
|
-
class TestUnitGetPackages < Test::Unit::TestCase
|
9
|
-
|
10
|
-
def setup
|
11
|
-
# expose private methods
|
12
|
-
Rouster.send(:public, *Rouster.private_instance_methods)
|
13
|
-
Rouster.send(:public, *Rouster.protected_instance_methods)
|
14
|
-
|
15
|
-
@app = Rouster.new(:name => 'app', :unittest => true, :verbosity => 4)
|
16
|
-
|
17
|
-
end
|
18
|
-
|
19
|
-
def test_rhel_systemv
|
20
|
-
@app.instance_variable_set(:@ostype, :rhel)
|
21
|
-
services = {}
|
22
|
-
|
23
|
-
raw = File.read(sprintf('%s/../../../test/unit/testing/resources/rhel-systemv', File.dirname(File.expand_path(__FILE__))))
|
24
|
-
|
25
|
-
assert_nothing_raised do
|
26
|
-
services = @app.get_services(false, true, :systemv, raw)
|
27
|
-
end
|
28
|
-
|
29
|
-
expected = {
|
30
|
-
'acpid' => 'running', # acpid (pid 945) is running...
|
31
|
-
'ip6tables' => 'stopped', # ip6tables: Firewall is not running.
|
32
|
-
'Kdump' => 'stopped', # Kdump is not operational
|
33
|
-
'mdmonitor' => 'stopped', # mdmonitor is stopped
|
34
|
-
'netconsole' => 'stopped', # netconsole module not loaded
|
35
|
-
'redis-server' => 'running' # redis-server (pid 11285) is running...
|
36
|
-
}
|
37
|
-
|
38
|
-
expected.each_pair do |service,state|
|
39
|
-
assert(services.has_key?(service), "service[#{service}]")
|
40
|
-
assert_equal(services[service], state, "service[#{service}] state[#{state}]")
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
|
45
|
-
def test_rhel_systemd
|
46
|
-
@app.instance_variable_set(:@ostype, :rhel)
|
47
|
-
@app.instance_variable_set(:@osversion, '7')
|
48
|
-
services = {}
|
49
|
-
|
50
|
-
raw = File.read(sprintf('%s/../../../test/unit/testing/resources/rhel-systemd', File.dirname(File.expand_path(__FILE__))))
|
51
|
-
|
52
|
-
assert_nothing_raised do
|
53
|
-
services = @app.get_services(false, true, :systemd, raw)
|
54
|
-
end
|
55
|
-
|
56
|
-
expected = {
|
57
|
-
'kdump' => 'stopped', # ● kdump.service loaded failed failed Crash recovery kernel arming
|
58
|
-
'rhel-dmesg' => 'stopped', # rhel-dmesg.service loaded active exited Dump dmesg to /var/log/dmesg
|
59
|
-
'sshd' => 'running', # sshd.service loaded active running OpenSSH server daemon
|
60
|
-
'systemd-journal-flush'=> 'stopped', # this is a test for output without leading spaces
|
61
|
-
}
|
62
|
-
|
63
|
-
expected.each_pair do |service,state|
|
64
|
-
assert(services.has_key?(service), "service[#{service}]")
|
65
|
-
assert_equal(services[service], state, "service[#{service}] state[#{state}]")
|
66
|
-
end
|
67
|
-
|
68
|
-
end
|
69
|
-
|
70
|
-
def test_rhel_upstart
|
71
|
-
@app.instance_variable_set(:@ostype, :rhel)
|
72
|
-
services = {}
|
73
|
-
|
74
|
-
raw = File.read(sprintf('%s/../../../test/unit/testing/resources/rhel-upstart', File.dirname(File.expand_path(__FILE__))))
|
75
|
-
|
76
|
-
assert_nothing_raised do
|
77
|
-
services = @app.get_services(false, true, :upstart, raw)
|
78
|
-
end
|
79
|
-
|
80
|
-
expected = {
|
81
|
-
'rc' => 'stopped', # rc stop/waiting
|
82
|
-
'named' => 'running', # named start/running, process 8959
|
83
|
-
'tty' => 'running', # tty (/dev/tty3) start/running, process 1601
|
84
|
-
}
|
85
|
-
|
86
|
-
expected.each_pair do |service,state|
|
87
|
-
assert(services.has_key?(service), "service[#{service}]")
|
88
|
-
assert_equal(services[service], state, "service[#{service}] state[#{state}]")
|
89
|
-
end
|
90
|
-
|
91
|
-
end
|
92
|
-
|
93
|
-
def test_rhel_both
|
94
|
-
@app.instance_variable_set(:@ostype, :rhel)
|
95
|
-
services = {}
|
96
|
-
|
97
|
-
systemv_contents = File.read(sprintf('%s/../../../test/unit/testing/resources/rhel-systemv', File.dirname(File.expand_path(__FILE__))))
|
98
|
-
upstart_contents = File.read(sprintf('%s/../../../test/unit/testing/resources/rhel-upstart', File.dirname(File.expand_path(__FILE__))))
|
99
|
-
|
100
|
-
# TODO this isn't a great test, because the implementation will never have both outputs in the same control loop
|
101
|
-
raw = systemv_contents
|
102
|
-
raw << upstart_contents
|
103
|
-
|
104
|
-
assert_nothing_raised do
|
105
|
-
services = @app.get_services(false, true, :all, raw)
|
106
|
-
end
|
107
|
-
|
108
|
-
expected = {
|
109
|
-
'acpid' => 'running', # initd
|
110
|
-
'cgred' => 'stopped', # initd
|
111
|
-
'named' => 'running', # upstart
|
112
|
-
# 'rc' => 'stopped', # upstart -- this is getting mishandled, see comment on line #74 and test_rhel_both_real for reasons this doesn't matter
|
113
|
-
}
|
114
|
-
|
115
|
-
expected.each_pair do |service,state|
|
116
|
-
assert(services.has_key?(service), "service[#{service}]")
|
117
|
-
assert_equal(services[service], state, "service[#{service}] state[#{state}]}")
|
118
|
-
end
|
119
|
-
|
120
|
-
end
|
121
|
-
|
122
|
-
def test_rhel_both_real
|
123
|
-
@app.instance_variable_set(:@ostype, :rhel)
|
124
|
-
services = {}
|
125
|
-
|
126
|
-
systemv_contents = File.read(sprintf('%s/../../../test/unit/testing/resources/rhel-systemv', File.dirname(File.expand_path(__FILE__))))
|
127
|
-
upstart_contents = File.read(sprintf('%s/../../../test/unit/testing/resources/rhel-upstart', File.dirname(File.expand_path(__FILE__))))
|
128
|
-
|
129
|
-
expected = {
|
130
|
-
'acpid' => 'running', # initd
|
131
|
-
'cgred' => 'stopped', # initd
|
132
|
-
'named' => 'running', # upstart
|
133
|
-
'rc' => 'stopped', # upstart
|
134
|
-
}
|
135
|
-
|
136
|
-
assert_nothing_raised do
|
137
|
-
systemv = @app.get_services(false, true, :systemv, systemv_contents)
|
138
|
-
upstart = @app.get_services(false, true, :upstart, upstart_contents)
|
139
|
-
|
140
|
-
services = systemv.merge(upstart) # TODO how do we ensure merge order doesn't mislead us?
|
141
|
-
end
|
142
|
-
|
143
|
-
expected.each_pair do |service,state|
|
144
|
-
assert(services.has_key?(service), "service[#{service}]")
|
145
|
-
assert_equal(services[service], state, "service[#{service}] state[#{state}]}")
|
146
|
-
end
|
147
|
-
|
148
|
-
|
149
|
-
end
|
150
|
-
|
151
|
-
def test_osx_launchd
|
152
|
-
@app.instance_variable_set(:@ostype, :osx)
|
153
|
-
services = {}
|
154
|
-
|
155
|
-
raw = File.read(sprintf('%s/../../../test/unit/testing/resources/osx-launchd', File.dirname(File.expand_path(__FILE__))))
|
156
|
-
|
157
|
-
assert_nothing_raised do
|
158
|
-
services = @app.get_services(false, true, :launchd, raw)
|
159
|
-
end
|
160
|
-
|
161
|
-
expected = {
|
162
|
-
'com.bigfix.BESAgent' => 'running', # 100 - com.bigfix.BESAgent
|
163
|
-
'com.trendmicro.mpm.icore.agent' => 'stopped', # - 0 com.trendmicro.mpm.icore.agent
|
164
|
-
}
|
165
|
-
|
166
|
-
expected.each_pair do |service,state|
|
167
|
-
assert(services.has_key?(service), "service[#{service}]")
|
168
|
-
assert_equal(services[service], state, "service[#{service}] state[#{state}]")
|
169
|
-
end
|
170
|
-
|
171
|
-
end
|
172
|
-
|
173
|
-
def teardown
|
174
|
-
# noop
|
175
|
-
end
|
176
|
-
|
177
|
-
end
|
178
|
-
|
@@ -1,78 +0,0 @@
|
|
1
|
-
require sprintf('%s/../../../path_helper', File.dirname(File.expand_path(__FILE__)))
|
2
|
-
|
3
|
-
require 'rouster'
|
4
|
-
require 'rouster/puppet'
|
5
|
-
require 'rouster/testing'
|
6
|
-
require 'test/unit'
|
7
|
-
|
8
|
-
class TestValidateCron < Test::Unit::TestCase
|
9
|
-
|
10
|
-
def setup
|
11
|
-
# expose private methods
|
12
|
-
Rouster.send(:public, *Rouster.private_instance_methods)
|
13
|
-
Rouster.send(:public, *Rouster.protected_instance_methods)
|
14
|
-
|
15
|
-
fake_facts = { 'is_virtual' => 'true', 'timezone' => 'PDT', 'uptime_days' => 42 }
|
16
|
-
|
17
|
-
fake_crons = {
|
18
|
-
'root' => {
|
19
|
-
'printf > /var/log/apache/error_log' => {
|
20
|
-
:minute => 10,
|
21
|
-
:hour => 2,
|
22
|
-
:dom => '*',
|
23
|
-
:mon => '*',
|
24
|
-
:dow => '*'
|
25
|
-
}
|
26
|
-
},
|
27
|
-
'a_user' => {
|
28
|
-
'/home/a_user/test.pl' => {
|
29
|
-
:minute => '0',
|
30
|
-
:hour => ['0', '6', '12', '18'],
|
31
|
-
:dom => '*',
|
32
|
-
:mon => '*',
|
33
|
-
:dow => '*'
|
34
|
-
}
|
35
|
-
}, 'cronless_user' => {}
|
36
|
-
}
|
37
|
-
|
38
|
-
@app = Rouster.new(:name => 'app', :unittest => true)
|
39
|
-
@app.deltas[:crontab] = fake_crons
|
40
|
-
@app.facts = fake_facts
|
41
|
-
end
|
42
|
-
|
43
|
-
def test_positive_basic
|
44
|
-
|
45
|
-
assert(@app.validate_cron('root', 'printf > /var/log/apache/error_log', { :minute => 10, :hour => 2, :dom => '*', :mon => '*', :dow => '*'}))
|
46
|
-
assert(@app.validate_cron('a_user', '/home/a_user/test.pl', { :minute => '0', :hour => ['0', '6', '12', '18'], :dom => '*', :mon => '*', :dow => '*' }))
|
47
|
-
assert(@app.validate_cron('root', 'chmod 1777 /tmp', { :ensure => 'absent' }))
|
48
|
-
assert(@app.validate_cron('cronless_user', 'rm -f /tmp/foo', { :ensure => 'absent' }))
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
def test_positive_constrained
|
53
|
-
|
54
|
-
assert(@app.validate_cron('root', 'printf > /var/log/apache/error_log', { :minute => 10 , :constrain => 'is_virtual true'} ))
|
55
|
-
|
56
|
-
end
|
57
|
-
|
58
|
-
def test_negative_basic
|
59
|
-
|
60
|
-
assert_equal(false, @app.validate_cron('root', 'printf > /var/log/apache/error_log', { :minute => 1 }))
|
61
|
-
assert_equal(false, @app.validate_cron('root', 'rm -rf /', { :minute => '*', :hour => '*', :dom => '*', :mon => '*', :dow => '*'}))
|
62
|
-
assert_equal(false, @app.validate_cron('a_user', '/home/a_user/test.pl', { :ensure => 'absent' }))
|
63
|
-
assert_equal(false, @app.validate_cron('root', '/home/a_user/test.pl', { :minute => '0', :hour => ['0', '6', '12', '18'], :dom => '*', :mon => '*', :dow => '*' }))
|
64
|
-
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_negative_constrained
|
68
|
-
|
69
|
-
assert(@app.validate_cron('root', 'printf > /var/log/apache/error_log', { :minute => 10, :constrain => 'is_virtual false' } ))
|
70
|
-
assert(@app.validate_cron('root', 'printf > /var/log/apache/error_log', { :gid => 55, :constrain => 'is_virtual false' } ))
|
71
|
-
|
72
|
-
end
|
73
|
-
|
74
|
-
def teardown
|
75
|
-
# noop
|
76
|
-
end
|
77
|
-
|
78
|
-
end
|
@@ -1,103 +0,0 @@
|
|
1
|
-
require sprintf('%s/../../../path_helper', File.dirname(File.expand_path(__FILE__)))
|
2
|
-
|
3
|
-
require 'rouster'
|
4
|
-
require 'rouster/puppet'
|
5
|
-
require 'rouster/testing'
|
6
|
-
require 'test/unit'
|
7
|
-
|
8
|
-
class TestValidatePort < Test::Unit::TestCase
|
9
|
-
|
10
|
-
def setup
|
11
|
-
# expose private methods
|
12
|
-
Rouster.send(:public, *Rouster.private_instance_methods)
|
13
|
-
Rouster.send(:public, *Rouster.protected_instance_methods)
|
14
|
-
|
15
|
-
fake_facts = { 'is_virtual' => 'true', 'timezone' => 'PDT', 'uptime_days' => 42 }
|
16
|
-
|
17
|
-
fake_ports = {
|
18
|
-
'tcp' => {
|
19
|
-
'22' => {
|
20
|
-
:address => {
|
21
|
-
'0.0.0.0' => 'LISTEN',
|
22
|
-
'::' => 'LISTEN'
|
23
|
-
}
|
24
|
-
},
|
25
|
-
'25' => {
|
26
|
-
:address => {
|
27
|
-
'127.0.0.1' => 'LISTEN',
|
28
|
-
'::1' => 'LISTEN'
|
29
|
-
}
|
30
|
-
},
|
31
|
-
},
|
32
|
-
'udp' => {
|
33
|
-
'161' => {
|
34
|
-
:address => {
|
35
|
-
'0.0.0.0' => 'you_might_not_get_it'
|
36
|
-
}
|
37
|
-
},
|
38
|
-
}
|
39
|
-
}
|
40
|
-
|
41
|
-
@app = Rouster.new(:name => 'app', :unittest => true)
|
42
|
-
@app.deltas[:ports] = fake_ports
|
43
|
-
@app.facts = fake_facts
|
44
|
-
end
|
45
|
-
|
46
|
-
def test_positive_basic
|
47
|
-
|
48
|
-
assert(@app.validate_port(22, { :state => 'active', :protocol => 'tcp', :address => '0.0.0.0' } ))
|
49
|
-
assert(@app.validate_port(22, { :ensure => true } ))
|
50
|
-
assert(@app.validate_port(22, { :proto => 'tcp' } ))
|
51
|
-
assert(@app.validate_port(22, { :address => '0.0.0.0' } ))
|
52
|
-
|
53
|
-
assert(@app.validate_port('22', { :ensure => true } ))
|
54
|
-
|
55
|
-
assert(@app.validate_port(161, { :state => 'absent' } ))
|
56
|
-
assert(@app.validate_port(161, { :protocol => 'udp', :address => '0.0.0.0' } ))
|
57
|
-
assert(@app.validate_port(161, { :proto => 'udp', :state => 'this_will_always_return_true' } ))
|
58
|
-
|
59
|
-
assert(@app.validate_port(1234, { :exists => false } ))
|
60
|
-
assert(@app.validate_port(1234, { :exists => 'false' } ))
|
61
|
-
assert(@app.validate_port(1234, { :ensure => false } ))
|
62
|
-
assert(@app.validate_port(1234, { :ensure => 'absent' } ))
|
63
|
-
assert(@app.validate_port(1234, { :state => 'open' } ))
|
64
|
-
|
65
|
-
end
|
66
|
-
|
67
|
-
def test_positive_constrained
|
68
|
-
|
69
|
-
assert(@app.validate_port(22, { :state => 'connected', :constrain => 'is_virtual true' } ))
|
70
|
-
|
71
|
-
end
|
72
|
-
|
73
|
-
def test_negative_basic
|
74
|
-
|
75
|
-
assert_equal(false, @app.validate_port(22, { :ensure => true, :address => '127.0.0.1' } ))
|
76
|
-
|
77
|
-
assert_equal(false, @app.validate_port(22, { :ensure => true, :proto => 'udp' } ))
|
78
|
-
assert_equal(false, @app.validate_port(22, { :ensure => true, :protocol => 'udp' } ))
|
79
|
-
|
80
|
-
assert_equal(false, @app.validate_port(22, { :ensure => 'absent' } ))
|
81
|
-
assert_equal(false, @app.validate_port(22, { :ensure => false } ))
|
82
|
-
assert_equal(false, @app.validate_port(22, { :exists => 'absent' } ))
|
83
|
-
assert_equal(false, @app.validate_port(22, { :exists => false } ))
|
84
|
-
|
85
|
-
end
|
86
|
-
|
87
|
-
def test_negative_constrained
|
88
|
-
|
89
|
-
assert(@app.validate_port(22, { :ensure => false, :constrain => 'is_virtual false' } ))
|
90
|
-
assert(@app.validate_port(22, { :ensure => true, :constrain => 'is_virtual false' } ))
|
91
|
-
|
92
|
-
end
|
93
|
-
|
94
|
-
def test_negative_port_dne
|
95
|
-
assert_equal(false, @app.validate_port(4567, { :ensure => true, :address => '*' }))
|
96
|
-
assert_equal(false, @app.validate_port(4567, { :ensure => true, :address => '127.0.0.1' }))
|
97
|
-
end
|
98
|
-
|
99
|
-
def teardown
|
100
|
-
# noop
|
101
|
-
end
|
102
|
-
|
103
|
-
end
|