puppetmodule-netdev_stdlib 0.10.0
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.
- data/.gitignore +27 -0
- data/.travis.yml +9 -0
- data/Gemfile +4 -0
- data/Guardfile +15 -0
- data/LICENSE +202 -0
- data/Modulefile +9 -0
- data/README.md +330 -0
- data/Rakefile +1 -0
- data/lib/netdev_stdlib.rb +4 -0
- data/lib/netdev_stdlib/version.rb +3 -0
- data/lib/puppet/type/domain_name.rb +17 -0
- data/lib/puppet/type/name_server.rb +17 -0
- data/lib/puppet/type/network_interface.rb +60 -0
- data/lib/puppet/type/network_trunk.rb +83 -0
- data/lib/puppet/type/network_vlan.rb +53 -0
- data/lib/puppet/type/ntp_config.rb +25 -0
- data/lib/puppet/type/ntp_server.rb +20 -0
- data/lib/puppet/type/port_channel.rb +82 -0
- data/lib/puppet/type/radius.rb +20 -0
- data/lib/puppet/type/radius_global.rb +40 -0
- data/lib/puppet/type/radius_server.rb +95 -0
- data/lib/puppet/type/radius_server_group.rb +25 -0
- data/lib/puppet/type/search_domain.rb +17 -0
- data/lib/puppet/type/snmp_community.rb +29 -0
- data/lib/puppet/type/snmp_contact.rb +17 -0
- data/lib/puppet/type/snmp_location.rb +17 -0
- data/lib/puppet/type/snmp_notification.rb +20 -0
- data/lib/puppet/type/snmp_notification_receiver.rb +77 -0
- data/lib/puppet/type/snmp_protocol.rb +20 -0
- data/lib/puppet/type/snmp_user.rb +77 -0
- data/lib/puppet/type/syslog_server.rb +42 -0
- data/lib/puppet/type/syslog_settings.rb +25 -0
- data/lib/puppet/type/tacacs.rb +20 -0
- data/lib/puppet/type/tacacs_global.rb +40 -0
- data/lib/puppet/type/tacacs_server.rb +50 -0
- data/lib/puppet/type/tacacs_server_group.rb +25 -0
- data/netdev_stdlib.gemspec +36 -0
- data/spec/spec_helper.rb +15 -0
- data/spec/support/shared_examples_for_types.rb +412 -0
- data/spec/unit/puppet/type/domain_name_spec.rb +8 -0
- data/spec/unit/puppet/type/name_server_spec.rb +8 -0
- data/spec/unit/puppet/type/network_interface_spec.rb +44 -0
- data/spec/unit/puppet/type/network_trunk_spec.rb +55 -0
- data/spec/unit/puppet/type/network_vlan_spec.rb +57 -0
- data/spec/unit/puppet/type/ntp_config_spec.rb +8 -0
- data/spec/unit/puppet/type/ntp_server_spec.rb +8 -0
- data/spec/unit/puppet/type/port_channel_spec.rb +87 -0
- data/spec/unit/puppet/type/radius_global_spec.rb +27 -0
- data/spec/unit/puppet/type/radius_server_group_spec.rb +12 -0
- data/spec/unit/puppet/type/radius_server_spec.rb +51 -0
- data/spec/unit/puppet/type/radius_spec.rb +8 -0
- data/spec/unit/puppet/type/search_domain_spec.rb +8 -0
- data/spec/unit/puppet/type/snmp_community_spec.rb +27 -0
- data/spec/unit/puppet/type/snmp_contact_spec.rb +8 -0
- data/spec/unit/puppet/type/snmp_location_spec.rb +8 -0
- data/spec/unit/puppet/type/snmp_notification_receiver_spec.rb +50 -0
- data/spec/unit/puppet/type/snmp_notification_spec.rb +8 -0
- data/spec/unit/puppet/type/snmp_protocol_spec.rb +8 -0
- data/spec/unit/puppet/type/snmp_user_spec.rb +63 -0
- data/spec/unit/puppet/type/syslog_server_spec.rb +20 -0
- data/spec/unit/puppet/type/syslog_settings_spec.rb +19 -0
- data/spec/unit/puppet/type/tacacs_global_spec.rb +27 -0
- data/spec/unit/puppet/type/tacacs_server_group_spec.rb +12 -0
- data/spec/unit/puppet/type/tacacs_server_spec.rb +25 -0
- data/spec/unit/puppet/type/tacacs_spec.rb +8 -0
- metadata +338 -0
@@ -0,0 +1,44 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Puppet::Type.type(:network_interface) do
|
6
|
+
let(:catalog) { Puppet::Resource::Catalog.new }
|
7
|
+
let(:type) do
|
8
|
+
described_class.new(name: 'Ethernet1', catalog: catalog)
|
9
|
+
end
|
10
|
+
|
11
|
+
subject { described_class.attrclass(attribute) }
|
12
|
+
|
13
|
+
it_behaves_like 'name is the namevar'
|
14
|
+
it_behaves_like 'enabled type'
|
15
|
+
|
16
|
+
describe 'description' do
|
17
|
+
let(:attribute) { :description }
|
18
|
+
|
19
|
+
include_examples 'description property'
|
20
|
+
end
|
21
|
+
|
22
|
+
describe 'mtu (e.g. 1500 | 9000)' do
|
23
|
+
let(:attribute) { :mtu }
|
24
|
+
|
25
|
+
include_examples 'property'
|
26
|
+
include_examples '#doc Documentation'
|
27
|
+
include_examples 'numeric parameter', min: 1, max: 65_536
|
28
|
+
include_examples 'rejected parameter values'
|
29
|
+
end
|
30
|
+
|
31
|
+
describe 'speed (auto*|10m|100m|1g|10g|40g|56g|100g)' do
|
32
|
+
let(:attribute) { :speed }
|
33
|
+
|
34
|
+
include_examples '#doc Documentation'
|
35
|
+
include_examples 'speed property'
|
36
|
+
end
|
37
|
+
|
38
|
+
describe 'duplex (auto | full | half)' do
|
39
|
+
let(:attribute) { :duplex }
|
40
|
+
|
41
|
+
include_examples '#doc Documentation'
|
42
|
+
include_examples 'duplex property'
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Puppet::Type.type(:network_trunk) do
|
6
|
+
it_behaves_like 'an ensurable type'
|
7
|
+
it_behaves_like 'name is the namevar'
|
8
|
+
|
9
|
+
let(:catalog) { Puppet::Resource::Catalog.new }
|
10
|
+
let(:type) { described_class.new(name: 'emanon', catalog: catalog) }
|
11
|
+
|
12
|
+
describe 'encapsulation' do
|
13
|
+
let(:attribute) { :encapsulation }
|
14
|
+
subject { described_class.attrclass(attribute) }
|
15
|
+
|
16
|
+
include_examples '#doc Documentation'
|
17
|
+
include_examples 'rejected parameter values'
|
18
|
+
include_examples 'accepts values', %w(dot1q isl negotiate none)
|
19
|
+
include_examples 'rejected parameter values'
|
20
|
+
end
|
21
|
+
|
22
|
+
describe 'mode' do
|
23
|
+
let(:attribute) { :mode }
|
24
|
+
subject { described_class.attrclass(attribute) }
|
25
|
+
|
26
|
+
include_examples '#doc Documentation'
|
27
|
+
values = %w(access trunk dynamic_auto dynamic_desirable)
|
28
|
+
include_examples 'accepts values', values
|
29
|
+
include_examples 'rejected parameter values'
|
30
|
+
end
|
31
|
+
|
32
|
+
describe 'untagged_vlan' do
|
33
|
+
let(:attribute) { :untagged_vlan }
|
34
|
+
subject { described_class.attrclass(attribute) }
|
35
|
+
|
36
|
+
include_examples '#doc Documentation'
|
37
|
+
include_examples 'vlan id value'
|
38
|
+
end
|
39
|
+
|
40
|
+
describe 'tagged_vlans' do
|
41
|
+
let(:attribute) { :tagged_vlans }
|
42
|
+
subject { described_class.attrclass(attribute) }
|
43
|
+
|
44
|
+
include_examples '#doc Documentation'
|
45
|
+
include_examples 'vlan range value'
|
46
|
+
end
|
47
|
+
|
48
|
+
describe 'pruned_vlans' do
|
49
|
+
let(:attribute) { :pruned_vlans }
|
50
|
+
subject { described_class.attrclass(attribute) }
|
51
|
+
|
52
|
+
include_examples '#doc Documentation'
|
53
|
+
include_examples 'vlan range value'
|
54
|
+
end
|
55
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Puppet::Type.type(:network_vlan) do
|
6
|
+
let(:catalog) { Puppet::Resource::Catalog.new }
|
7
|
+
let(:type) { described_class.new(name: '100', catalog: catalog) }
|
8
|
+
|
9
|
+
it_behaves_like 'an ensurable type', name: '100'
|
10
|
+
|
11
|
+
describe 'vlan_name' do
|
12
|
+
let(:attribute) { :vlan_name }
|
13
|
+
subject { described_class.attrclass(attribute) }
|
14
|
+
|
15
|
+
include_examples 'property'
|
16
|
+
include_examples '#doc Documentation'
|
17
|
+
include_examples 'accepts values without munging', %w(Engineering)
|
18
|
+
include_examples 'rejects values', [[1], { two: :three }]
|
19
|
+
end
|
20
|
+
|
21
|
+
describe 'description' do
|
22
|
+
let(:attribute) { :description }
|
23
|
+
subject { described_class.attrclass(attribute) }
|
24
|
+
|
25
|
+
include_examples 'property'
|
26
|
+
include_examples '#doc Documentation'
|
27
|
+
include_examples 'description property'
|
28
|
+
include_examples 'accepts values without munging', 'Engineering VLAN'
|
29
|
+
include_examples 'rejects values', [0, [1], { two: :three }]
|
30
|
+
end
|
31
|
+
|
32
|
+
describe 'id' do
|
33
|
+
let(:attribute) { :id }
|
34
|
+
subject { described_class.attrclass(attribute) }
|
35
|
+
|
36
|
+
include_examples 'parameter'
|
37
|
+
include_examples '#doc Documentation'
|
38
|
+
include_examples 'rejects values', [{ two: :three }, 'abc']
|
39
|
+
|
40
|
+
[100, '100'].each do |val|
|
41
|
+
it "validates #{val.inspect} as isomorphic to '100'" do
|
42
|
+
type[attribute] = val
|
43
|
+
expect(type[attribute]).to eq(val.to_s)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
describe 'shutdown' do
|
49
|
+
let(:attribute) { :shutdown }
|
50
|
+
subject { described_class.attrclass(attribute) }
|
51
|
+
|
52
|
+
include_examples 'property'
|
53
|
+
include_examples '#doc Documentation'
|
54
|
+
include_examples 'boolean value'
|
55
|
+
include_examples 'rejects values', [0, [1], { two: :three }]
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,87 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Puppet::Type.type(:port_channel) do
|
6
|
+
it_behaves_like 'an ensurable type'
|
7
|
+
it_behaves_like 'name is the namevar'
|
8
|
+
|
9
|
+
let(:catalog) { Puppet::Resource::Catalog.new }
|
10
|
+
let(:type) { described_class.new(name: 'emanon', catalog: catalog) }
|
11
|
+
|
12
|
+
subject { described_class.attrclass(attribute) }
|
13
|
+
|
14
|
+
describe 'force' do
|
15
|
+
let(:attribute) { :force }
|
16
|
+
|
17
|
+
include_examples '#doc Documentation'
|
18
|
+
include_examples 'boolean parameter'
|
19
|
+
end
|
20
|
+
|
21
|
+
describe 'id' do
|
22
|
+
let(:attribute) { :id }
|
23
|
+
|
24
|
+
include_examples '#doc Documentation'
|
25
|
+
include_examples 'rejected parameter values'
|
26
|
+
include_examples 'numeric parameter', min: 0, max: 4095
|
27
|
+
end
|
28
|
+
|
29
|
+
describe 'description' do
|
30
|
+
let(:attribute) { :description }
|
31
|
+
|
32
|
+
include_examples '#doc Documentation'
|
33
|
+
include_examples 'description property'
|
34
|
+
end
|
35
|
+
|
36
|
+
describe 'mode' do
|
37
|
+
let(:attribute) { :mode }
|
38
|
+
|
39
|
+
include_examples '#doc Documentation'
|
40
|
+
include_examples 'rejected parameter values'
|
41
|
+
include_examples 'accepts values', %w(active passive disabled)
|
42
|
+
include_examples 'rejects values', %w(foo bar baz)
|
43
|
+
end
|
44
|
+
|
45
|
+
describe 'minimum_links' do
|
46
|
+
let(:attribute) { :minimum_links }
|
47
|
+
|
48
|
+
include_examples '#doc Documentation'
|
49
|
+
include_examples 'rejected parameter values'
|
50
|
+
include_examples 'numeric parameter', min: 0, max: 4095
|
51
|
+
end
|
52
|
+
|
53
|
+
describe 'interfaces' do
|
54
|
+
let(:attribute) { :interfaces }
|
55
|
+
|
56
|
+
include_examples '#doc Documentation'
|
57
|
+
include_examples 'interface list value'
|
58
|
+
end
|
59
|
+
|
60
|
+
describe 'speed' do
|
61
|
+
let(:attribute) { :speed }
|
62
|
+
|
63
|
+
include_examples '#doc Documentation'
|
64
|
+
include_examples 'speed property'
|
65
|
+
end
|
66
|
+
|
67
|
+
describe 'duplex' do
|
68
|
+
let(:attribute) { :duplex }
|
69
|
+
|
70
|
+
include_examples '#doc Documentation'
|
71
|
+
include_examples 'duplex property'
|
72
|
+
end
|
73
|
+
|
74
|
+
describe 'flowcontrol_send' do
|
75
|
+
let(:attribute) { :flowcontrol_send }
|
76
|
+
|
77
|
+
include_examples '#doc Documentation'
|
78
|
+
include_examples 'flowcontrol property'
|
79
|
+
end
|
80
|
+
|
81
|
+
describe 'flowcontrol_receive' do
|
82
|
+
let(:attribute) { :flowcontrol_receive }
|
83
|
+
|
84
|
+
include_examples '#doc Documentation'
|
85
|
+
include_examples 'flowcontrol property'
|
86
|
+
end
|
87
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Puppet::Type.type(:radius_global) do
|
6
|
+
let(:catalog) { Puppet::Resource::Catalog.new }
|
7
|
+
let(:type) { described_class.new(name: 'emanon', catalog: catalog) }
|
8
|
+
subject { described_class.attrclass(attribute) }
|
9
|
+
|
10
|
+
it_behaves_like 'name is the namevar'
|
11
|
+
it_behaves_like 'it has a string property', :key
|
12
|
+
|
13
|
+
describe 'key_format' do
|
14
|
+
let(:attribute) { :key_format }
|
15
|
+
include_examples 'numeric parameter', min: 0, max: 7
|
16
|
+
end
|
17
|
+
|
18
|
+
describe 'timeout' do
|
19
|
+
let(:attribute) { :timeout }
|
20
|
+
include_examples 'numeric parameter', min: 0, max: 604_800
|
21
|
+
end
|
22
|
+
|
23
|
+
describe 'retransmit_count' do
|
24
|
+
let(:attribute) { :retransmit_count }
|
25
|
+
include_examples 'numeric parameter', min: 0, max: 2048
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Puppet::Type.type(:radius_server_group) do
|
6
|
+
let(:catalog) { Puppet::Resource::Catalog.new }
|
7
|
+
let(:type) { described_class.new(name: 'emanon', catalog: catalog) }
|
8
|
+
subject { described_class.attrclass(attribute) }
|
9
|
+
|
10
|
+
it_behaves_like 'name is the namevar'
|
11
|
+
it_behaves_like 'array of strings property', attribute: :servers
|
12
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Puppet::Type.type(:radius_server) do
|
6
|
+
let(:catalog) { Puppet::Resource::Catalog.new }
|
7
|
+
let(:type) { described_class.new(name: 'emanon', catalog: catalog) }
|
8
|
+
subject { described_class.attrclass(attribute) }
|
9
|
+
|
10
|
+
it_behaves_like 'name is the namevar'
|
11
|
+
it_behaves_like 'it has a string property', :key
|
12
|
+
|
13
|
+
describe 'key_format' do
|
14
|
+
let(:attribute) { :key_format }
|
15
|
+
include_examples 'numeric parameter', min: 0, max: 7
|
16
|
+
end
|
17
|
+
|
18
|
+
it_behaves_like 'it has a string property', :group
|
19
|
+
|
20
|
+
describe 'deadtime' do
|
21
|
+
let(:attribute) { :deadtime }
|
22
|
+
include_examples 'numeric parameter', min: 0, max: 10_080
|
23
|
+
end
|
24
|
+
|
25
|
+
describe 'timeout' do
|
26
|
+
let(:attribute) { :timeout }
|
27
|
+
include_examples 'numeric parameter', min: 0, max: 604_800
|
28
|
+
end
|
29
|
+
|
30
|
+
it_behaves_like 'it has a string property', :vrf
|
31
|
+
it_behaves_like 'it has a string property', :source_interface
|
32
|
+
|
33
|
+
describe 'retransmit_count' do
|
34
|
+
let(:attribute) { :retransmit_count }
|
35
|
+
include_examples 'numeric parameter', min: 0, max: 2048
|
36
|
+
end
|
37
|
+
|
38
|
+
describe 'acct_port' do
|
39
|
+
let(:attribute) { :acct_port }
|
40
|
+
include_examples 'numeric parameter', min: 0, max: 65_535
|
41
|
+
end
|
42
|
+
|
43
|
+
it_behaves_like 'boolean', attribute: :accounting_only
|
44
|
+
|
45
|
+
describe 'auth_port' do
|
46
|
+
let(:attribute) { :auth_port }
|
47
|
+
include_examples 'numeric parameter', min: 0, max: 65_535
|
48
|
+
end
|
49
|
+
|
50
|
+
it_behaves_like 'boolean', attribute: :authentication_only
|
51
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
|
3
|
+
require 'spec_helper'
|
4
|
+
|
5
|
+
describe Puppet::Type.type(:snmp_community) do
|
6
|
+
let(:catalog) { Puppet::Resource::Catalog.new }
|
7
|
+
let(:type) { described_class.new(name: 'emanon', catalog: catalog) }
|
8
|
+
|
9
|
+
subject { described_class.attrclass(attribute) }
|
10
|
+
|
11
|
+
it_behaves_like 'name is the namevar'
|
12
|
+
|
13
|
+
describe 'group' do
|
14
|
+
let(:attribute) { :group }
|
15
|
+
include_examples 'property'
|
16
|
+
include_examples '#doc Documentation'
|
17
|
+
include_examples 'accepts values', %w(ro rw)
|
18
|
+
include_examples 'rejects values', %w(foo bar baz)
|
19
|
+
end
|
20
|
+
|
21
|
+
describe 'acl' do
|
22
|
+
let(:attribute) { :acl }
|
23
|
+
include_examples '#doc Documentation'
|
24
|
+
include_examples 'property'
|
25
|
+
include_examples 'string value'
|
26
|
+
end
|
27
|
+
end
|