Projet

Général

Profil

Paste
Télécharger au format
Statistiques
| Branche: | Révision:

root / spec / classes / ip_nat_spec.rb @ b171ac7f

Historique | Voir | Annoter | Télécharger (3,3 ko)

1
require 'spec_helper'
2

    
3
describe 'nftables' do
4
  let(:pre_condition) { 'Exec{path => "/bin"}' }
5

    
6
  on_supported_os.each do |os, os_facts|
7
    context "on #{os}" do
8
      let(:facts) { os_facts }
9

    
10
      it { is_expected.to compile }
11

    
12
      it {
13
        is_expected.to contain_file('/etc/nftables/puppet/ip-nat.nft').with(
14
          ensure: 'file',
15
          owner:  'root',
16
          group:  'root',
17
          mode:   '0640',
18
        )
19
      }
20

    
21
      context 'chain prerouting' do
22
        it {
23
          is_expected.to contain_concat('nftables-ip-nat-chain-PREROUTING').with(
24
            path:           '/etc/nftables/puppet/ip-nat-chain-PREROUTING.nft',
25
            owner:          'root',
26
            group:          'root',
27
            mode:           '0640',
28
            ensure_newline: true,
29
          )
30
        }
31
        it {
32
          is_expected.to contain_concat__fragment('nftables-ip-nat-chain-PREROUTING-header').with(
33
            target:  'nftables-ip-nat-chain-PREROUTING',
34
            content: %r{^chain PREROUTING \{$},
35
            order:   '00',
36
          )
37
        }
38
        it {
39
          is_expected.to contain_concat__fragment('nftables-ip-nat-chain-PREROUTING-rule-type').with(
40
            target:  'nftables-ip-nat-chain-PREROUTING',
41
            content: %r{^  type nat hook prerouting priority -100$},
42
            order:   '01',
43
          )
44
        }
45
        it {
46
          is_expected.to contain_concat__fragment('nftables-ip-nat-chain-PREROUTING-rule-policy').with(
47
            target:  'nftables-ip-nat-chain-PREROUTING',
48
            content: %r{^  policy accept$},
49
            order:   '02',
50
          )
51
        }
52
        it {
53
          is_expected.to contain_concat__fragment('nftables-ip-nat-chain-PREROUTING-footer').with(
54
            target:  'nftables-ip-nat-chain-PREROUTING',
55
            content: %r{^\}$},
56
            order:   '99',
57
          )
58
        }
59
      end
60

    
61
      context 'chain output' do
62
        it {
63
          is_expected.to contain_concat('nftables-ip-nat-chain-POSTROUTING').with(
64
            path:           '/etc/nftables/puppet/ip-nat-chain-POSTROUTING.nft',
65
            owner:          'root',
66
            group:          'root',
67
            mode:           '0640',
68
            ensure_newline: true,
69
          )
70
        }
71
        it {
72
          is_expected.to contain_concat__fragment('nftables-ip-nat-chain-POSTROUTING-header').with(
73
            target:  'nftables-ip-nat-chain-POSTROUTING',
74
            content: %r{^chain POSTROUTING \{$},
75
            order:   '00',
76
          )
77
        }
78
        it {
79
          is_expected.to contain_concat__fragment('nftables-ip-nat-chain-POSTROUTING-rule-type').with(
80
            target:  'nftables-ip-nat-chain-POSTROUTING',
81
            content: %r{^  type nat hook postrouting priority 100$},
82
            order:   '01',
83
          )
84
        }
85
        it {
86
          is_expected.to contain_concat__fragment('nftables-ip-nat-chain-POSTROUTING-rule-policy').with(
87
            target:  'nftables-ip-nat-chain-POSTROUTING',
88
            content: %r{^  policy accept$},
89
            order:   '02',
90
          )
91
        }
92
        it {
93
          is_expected.to contain_concat__fragment('nftables-ip-nat-chain-POSTROUTING-footer').with(
94
            target:  'nftables-ip-nat-chain-POSTROUTING',
95
            content: %r{^\}$},
96
            order:   '99',
97
          )
98
        }
99
      end
100
    end
101
  end
102
end