Skip to content

Commit a4279eb

Browse files
committed
Add stricter types for onboot/hotplug/bonding parameters
1 parent 9ec41a3 commit a4279eb

File tree

10 files changed

+85
-79
lines changed

10 files changed

+85
-79
lines changed

README.md

+26-24
Original file line numberDiff line numberDiff line change
@@ -20,16 +20,16 @@ network_config { 'eth0':
2020
ensure => 'present',
2121
family => 'inet',
2222
method => 'dhcp',
23-
onboot => 'true',
24-
hotplug => 'true',
23+
onboot => true,
24+
hotplug => true,
2525
options => {'pre-up' => 'sleep 2'},
2626
}
2727
2828
network_config { 'lo':
2929
ensure => 'present',
3030
family => 'inet',
3131
method => 'loopback',
32-
onboot => 'true',
32+
onboot => true,
3333
}
3434
3535
network_config { 'eth1':
@@ -38,7 +38,7 @@ network_config { 'eth1':
3838
ipaddress => '169.254.0.1',
3939
method => 'static',
4040
netmask => '255.255.0.0',
41-
onboot => 'true',
41+
onboot => true,
4242
}
4343
```
4444

@@ -82,26 +82,28 @@ network_route { 'default':
8282

8383
Create resources on the fly with the `puppet resource` command:
8484

85-
root@debian-6:~# puppet resource network_config eth1 ensure=present family=inet method=static ipaddress=169.254.0.1 netmask=255.255.0.0
86-
notice: /Network_config[eth1]/ensure: created
87-
network_config { 'eth1':
88-
ensure => 'present',
89-
family => 'inet',
90-
ipaddress => '169.254.0.1',
91-
method => 'static',
92-
netmask => '255.255.0.0',
93-
onboot => 'true',
94-
}
95-
96-
# puppet resource network_route 23.23.42.0 ensure=present netmask=255.255.255.0 interface=eth0 gateway=192.168.1.1
97-
notice: /Network_route[23.23.42.0]/ensure: created
98-
network_route { '23.23.42.0':
99-
ensure => 'present',
100-
gateway => '192.168.1.1',
101-
interface => 'eth0',
102-
netmask => '255.255.255.0',
103-
options => 'table 200',
104-
}
85+
```
86+
root@debian-6:~# puppet resource network_config eth1 ensure=present family=inet method=static ipaddress=169.254.0.1 netmask=255.255.0.0
87+
notice: /Network_config[eth1]/ensure: created
88+
network_config { 'eth1':
89+
ensure => 'present',
90+
family => 'inet',
91+
ipaddress => '169.254.0.1',
92+
method => 'static',
93+
netmask => '255.255.0.0',
94+
onboot => true,
95+
}
96+
97+
# puppet resource network_route 23.23.42.0 ensure=present netmask=255.255.255.0 interface=eth0 gateway=192.168.1.1
98+
notice: /Network_route[23.23.42.0]/ensure: created
99+
network_route { '23.23.42.0':
100+
ensure => 'present',
101+
gateway => '192.168.1.1',
102+
interface => 'eth0',
103+
netmask => '255.255.255.0',
104+
options => 'table 200',
105+
}
106+
```
105107

106108
## Dependencies
107109

manifests/bond.pp

+18-18
Original file line numberDiff line numberDiff line change
@@ -139,25 +139,25 @@
139139
#
140140
define network::bond(
141141
$slaves,
142-
$ensure = present,
143-
$ipaddress = undef,
144-
$netmask = undef,
145-
$method = undef,
146-
$family = undef,
147-
$onboot = undef,
148-
$hotplug = undef,
149-
$lacp_rate = undef,
150-
$mtu = undef,
151-
$options = undef,
152-
$slave_options = undef,
142+
$ensure = present,
143+
$ipaddress = undef,
144+
$netmask = undef,
145+
$method = undef,
146+
$family = undef,
147+
Optional[Boolean] $onboot = undef,
148+
Optional[Boolean] $hotplug = undef,
149+
$lacp_rate = undef,
150+
Network::MTU $mtu = undef,
151+
$options = undef,
152+
$slave_options = undef,
153153

154-
$mode = 'active-backup',
155-
$miimon = '100',
156-
$downdelay = '200',
157-
$updelay = '200',
158-
$primary = $slaves[0],
159-
$primary_reselect = 'always',
160-
$xmit_hash_policy = 'layer2',
154+
$mode = 'active-backup',
155+
Network::PositiveInteger $miimon = 100,
156+
Network::PositiveInteger $downdelay = 200,
157+
Network::PositiveInteger $updelay = 200,
158+
$primary = $slaves[0],
159+
$primary_reselect = 'always',
160+
$xmit_hash_policy = 'layer2',
161161
) {
162162

163163
require network::bond::setup

spec/defines/bond/debian_spec.rb

+13-13
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
'slaves' => %w[eth0 eth1],
1414

1515
'mode' => 'active-backup',
16-
'miimon' => '100',
17-
'downdelay' => '200',
18-
'updelay' => '200',
16+
'miimon' => 100,
17+
'downdelay' => 200,
18+
'updelay' => 200,
1919
'lacp_rate' => 'slow',
2020
'primary' => 'eth0',
2121
'primary_reselect' => 'always',
@@ -37,9 +37,9 @@
3737
'options' => {
3838
'bond-slaves' => 'eth0 eth1',
3939
'bond-mode' => 'active-backup',
40-
'bond-miimon' => '100',
41-
'bond-downdelay' => '200',
42-
'bond-updelay' => '200',
40+
'bond-miimon' => 100,
41+
'bond-downdelay' => 200,
42+
'bond-updelay' => 200,
4343
'bond-lacp-rate' => 'slow',
4444
'bond-primary' => 'eth0',
4545
'bond-primary-reselect' => 'always',
@@ -59,12 +59,12 @@
5959
'mtu' => 1550,
6060
'options' => { 'bond-future-option' => 'yes' },
6161
'slave_options' => { 'slave-future-option' => 'no' },
62-
'hotplug' => 'false',
62+
'hotplug' => false,
6363

6464
'mode' => 'balance-rr',
65-
'miimon' => '50',
66-
'downdelay' => '100',
67-
'updelay' => '100',
65+
'miimon' => 50,
66+
'downdelay' => 100,
67+
'updelay' => 100,
6868
'lacp_rate' => 'fast',
6969
'xmit_hash_policy' => 'layer3+4'
7070
}
@@ -85,9 +85,9 @@
8585
'options' => {
8686
'bond-slaves' => 'eth0 eth1 eth2',
8787
'bond-mode' => 'balance-rr',
88-
'bond-miimon' => '50',
89-
'bond-downdelay' => '100',
90-
'bond-updelay' => '100',
88+
'bond-miimon' => 50,
89+
'bond-downdelay' => 100,
90+
'bond-updelay' => 100,
9191
'bond-lacp-rate' => 'fast',
9292
'bond-xmit-hash-policy' => 'layer3+4',
9393
'bond-future-option' => 'yes',

spec/defines/bond/redhat_spec.rb

+8-8
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@
1313
'slaves' => %w[eth0 eth1],
1414

1515
'mode' => 'active-backup',
16-
'miimon' => '100',
17-
'downdelay' => '200',
18-
'updelay' => '200',
16+
'miimon' => 100,
17+
'downdelay' => 200,
18+
'updelay' => 200,
1919
'lacp_rate' => 'slow',
2020
'primary' => 'eth0',
2121
'primary_reselect' => 'always',
@@ -58,12 +58,12 @@
5858
'mtu' => '1550',
5959
'options' => { 'NM_CONTROLLED' => 'yes' },
6060
'slave_options' => { 'NM_CONTROLLED' => 'no' },
61-
'hotplug' => 'false',
61+
'hotplug' => false,
6262

6363
'mode' => 'balance-rr',
64-
'miimon' => '50',
65-
'downdelay' => '100',
66-
'updelay' => '100',
64+
'miimon' => 50,
65+
'downdelay' => 100,
66+
'updelay' => 100,
6767
'lacp_rate' => 'fast',
6868
'xmit_hash_policy' => 'layer3+4'
6969
}
@@ -89,7 +89,7 @@
8989
'ipaddress' => '10.20.2.1',
9090
'netmask' => '255.255.255.192',
9191
'hotplug' => false,
92-
'mtu' => '1550',
92+
'mtu' => 1550,
9393
'options' => {
9494
'BONDING_OPTS' => 'mode=balance-rr miimon=50 downdelay=100 updelay=100 lacp_rate=fast xmit_hash_policy=layer3+4',
9595
'NM_CONTROLLED' => 'yes'

spec/defines/bond_spec.rb

+3-3
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
'slave_options' => { 'NM_CONTROLLED' => 'no' },
1616

1717
'mode' => 'active-backup',
18-
'miimon' => '100',
19-
'downdelay' => '200',
20-
'updelay' => '200',
18+
'miimon' => 100,
19+
'downdelay' => 200,
20+
'updelay' => 200,
2121
'lacp_rate' => 'slow',
2222
'primary' => 'eth0',
2323
'primary_reselect' => 'always',

spec/unit/provider/network_config/interfaces_spec.rb

+7-7
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def fixture_data(file)
8181
ipaddress: '192.168.0.2',
8282
netmask: '255.255.255.0',
8383
onboot: true,
84-
mtu: '1500',
84+
mtu: 1500,
8585
options: {
8686
'broadcast' => '192.168.0.255',
8787
'gateway' => '192.168.0.1'
@@ -118,7 +118,7 @@ def fixture_data(file)
118118
ipaddress: '192.168.0.2',
119119
netmask: '255.255.255.0',
120120
onboot: true,
121-
mtu: '1500',
121+
mtu: 1500,
122122
options: {
123123
'broadcast' => '192.168.0.255',
124124
'gateway' => '192.168.0.1'
@@ -129,7 +129,7 @@ def fixture_data(file)
129129
ipaddress: '172.16.0.2',
130130
netmask: '255.255.255.0',
131131
onboot: true,
132-
mtu: '1500',
132+
mtu: 1500,
133133
mode: :vlan,
134134
options: {
135135
'broadcast' => '172.16.0.255',
@@ -164,7 +164,7 @@ def fixture_data(file)
164164
method: 'static',
165165
ipaddress: '169.254.0.1',
166166
netmask: '255.255.0.0',
167-
mtu: '1500',
167+
mtu: 1500,
168168
mode: nil,
169169
options: nil)
170170
end
@@ -179,7 +179,7 @@ def fixture_data(file)
179179
method: 'static',
180180
ipaddress: '169.254.0.1',
181181
netmask: '255.255.0.0',
182-
mtu: '1500',
182+
mtu: 1500,
183183
mode: :vlan,
184184
options: {
185185
'vlan-raw-device' => 'eth1'
@@ -226,7 +226,7 @@ def fixture_data(file)
226226
method: 'static',
227227
ipaddress: '169.254.0.1',
228228
netmask: '255.255.0.0',
229-
mtu: '576',
229+
mtu: 576,
230230
mode: nil,
231231
options: {
232232
'pre-up' => '/bin/touch /tmp/eth1-up',
@@ -246,7 +246,7 @@ def fixture_data(file)
246246
method: 'loopback',
247247
ipaddress: nil,
248248
netmask: nil,
249-
mtu: '65536',
249+
mtu: 65536,
250250
mode: nil,
251251
options: nil)
252252
end

spec/unit/provider/network_config/redhat_spec.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,7 @@ def fixture_data(file)
419419
method: 'none',
420420
ipaddress: '169.254.0.1',
421421
netmask: '255.255.255.0',
422-
mtu: '1500',
422+
mtu: 1500,
423423
mode: :vlan,
424424
options: { 'NM_CONTROLLED' => 'no', 'USERCTL' => 'no' })
425425
end
@@ -460,7 +460,7 @@ def fixture_data(file)
460460
ipaddress: '172.20.1.9',
461461
netmask: '255.255.255.0',
462462
method: 'static',
463-
mtu: '1500',
463+
mtu: 1500,
464464
mode: nil,
465465
options: {
466466
'BONDING_OPTS' => %(mode=4 miimon=100 xmit_hash_policy=layer3+4)

templates/bond/opts-redhat.erb

+6-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
<%= %w[mode miimon downdelay updelay lacp_rate primary primary_reselect xmit_hash_policy].reject {
2-
|option| scope.lookupvar(option).nil? || scope.lookupvar(option) == :undef || scope.lookupvar(option) == :absent || scope.lookupvar(option).empty? }.map {
3-
|key| "#{key}=#{scope.lookupvar(key)}"
4-
}.join(' ') -%>
1+
<%= %w[mode miimon downdelay updelay lacp_rate primary primary_reselect xmit_hash_policy].reject { |option|
2+
v = scope.lookupvar(option)
3+
v.nil? || v == :undef || v == :absent || ( (v === Enumerable || v.is_a?(String) ) && v.empty?)
4+
}.map { |key|
5+
"#{key}=#{scope.lookupvar(key)}"
6+
}.join(' ') -%>

types/mtu.pp

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
type Network::MTU = Network::PositiveInteger

types/positiveinteger.pp

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
type Network::PositiveInteger = Integer[1,default]

0 commit comments

Comments
 (0)