rouster 0.7 → 0.41
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/.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
|