-
Notifications
You must be signed in to change notification settings - Fork 7
/
infiniband_interface_spec.rb
122 lines (98 loc) · 3.99 KB
/
infiniband_interface_spec.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
require 'spec_helper'
describe 'infiniband::interface' do
on_supported_os.each do |os, facts|
context "on #{os}" do
let :facts do
facts.merge(has_infiniband: true,
memorysize_mb: '64399.75')
end
let :title do
'ib0'
end
let :default_params do
{
ipaddr: '192.168.1.1',
netmask: '255.255.255.0',
}
end
let :params do
default_params
end
let :fixture_suffix do
if facts[:os]['family'] == 'RedHat' && facts[:os]['release']['major'].to_i >= 8
'-no_nm_controlled'
else
''
end
end
it { is_expected.to contain_class('network') }
it do
is_expected.to contain_file('/etc/sysconfig/network-scripts/ifcfg-ib0').with('ensure' => 'present',
'owner' => 'root',
'group' => 'root',
'mode' => '0644')
end
it do
is_expected.to contain_file('/etc/sysconfig/network-scripts/ifcfg-ib0') \
.with_content(my_fixture_read("ifcfg-ib0_with_connected_mode#{fixture_suffix}"))
end
context 'ensure => absent' do
let :params do
default_params.merge(ensure: 'absent')
end
it { is_expected.to contain_file('/etc/sysconfig/network-scripts/ifcfg-ib0').with_ensure('absent') }
end
context 'enable => false' do
let :params do
default_params.merge(enable: false)
end
it { is_expected.to contain_file('/etc/sysconfig/network-scripts/ifcfg-ib0').with_content(my_fixture_read("ifcfg-ib0_with_onboot_no#{fixture_suffix}")) }
end
context 'connected_mode => no' do
let :params do
default_params.merge(connected_mode: 'no')
end
it { is_expected.to contain_file('/etc/sysconfig/network-scripts/ifcfg-ib0').with_content(my_fixture_read("ifcfg-ib0_without_connected_mode#{fixture_suffix}")) }
end
context 'mtu => 65520' do
let :params do
default_params.merge(mtu: 65_520)
end
it { is_expected.to contain_file('/etc/sysconfig/network-scripts/ifcfg-ib0'). with_content(my_fixture_read("ifcfg-ib0_with_mtu#{fixture_suffix}")) }
end
context 'gateway => 192.168.1.254' do
let :params do
default_params.merge(gateway: '192.168.1.254')
end
it { is_expected.to contain_file('/etc/sysconfig/network-scripts/ifcfg-ib0').with_content(my_fixture_read("ifcfg-ib0_with_gateway#{fixture_suffix}")) }
end
context 'bonding => true' do
let :facts do
facts.merge(has_infiniband: true,
memorysize_mb: '64399.75',
infiniband_netdevs: {
ib0: { hca: 'mlx5_0' },
ib1: { hca: 'mlx5_1' },
})
end
let :title do
'ibbond0'
end
let :params do
default_params.merge(bonding: true, bonding_slaves: ['ib0', 'ib1'], mtu: 65_520)
end
it {
is_expected.to contain_file('/etc/sysconfig/network-scripts/ifcfg-ib0').with_content(my_fixture_read("ifcfg-bond-slave-ib0#{fixture_suffix}"))
is_expected.to contain_file('/etc/sysconfig/network-scripts/ifcfg-ib1').with_content(my_fixture_read("ifcfg-bond-slave-ib1#{fixture_suffix}"))
is_expected.to contain_file('/etc/sysconfig/network-scripts/ifcfg-ibbond0').with_content(my_fixture_read("ifcfg-bond-master-ibbond0#{fixture_suffix}"))
}
end
context 'bonding => true, no slave interfaces' do
let :params do
default_params.merge(bonding: true)
end
it { is_expected.to compile.and_raise_error(%r{No slave interfaces given for bonding interface}) }
end
end
end
end