shopify-junos-ez-stdlib 1.0.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.
- checksums.yaml +7 -0
- data/CHANGELOG.md +91 -0
- data/LICENSE +26 -0
- data/README.md +199 -0
- data/docs/Facts.md +192 -0
- data/docs/Providers/Group.md +61 -0
- data/docs/Providers/IPports.md +61 -0
- data/docs/Providers/L1ports.md +29 -0
- data/docs/Providers/L2ports.md +43 -0
- data/docs/Providers/LAGports.md +57 -0
- data/docs/Providers/StaticHosts.md +26 -0
- data/docs/Providers/StaticRoutes.md +37 -0
- data/docs/Providers/UserAuths.md +32 -0
- data/docs/Providers/Users.md +122 -0
- data/docs/Providers/Vlans.md +43 -0
- data/docs/Providers_Resources.md +353 -0
- data/docs/README_FIRST.md +27 -0
- data/docs/Utils/Config.md +160 -0
- data/docs/Utils/Filesystem.md +360 -0
- data/docs/Utils/Routing-Engine.md +379 -0
- data/docs/Utils/SCP.md +24 -0
- data/examples/config/config_file.rb +72 -0
- data/examples/config/config_template_object.rb +81 -0
- data/examples/config/config_template_simple.rb +76 -0
- data/examples/config/multi_config.rb +60 -0
- data/examples/fs_utils.rb +31 -0
- data/examples/lag_port.rb +27 -0
- data/examples/re_upgrade.rb +99 -0
- data/examples/re_utils.rb +33 -0
- data/examples/simple.rb +46 -0
- data/examples/st_hosts.rb +33 -0
- data/examples/user.rb +32 -0
- data/examples/vlans.rb +31 -0
- data/junos-ez-stdlib.gemspec +15 -0
- data/lib/junos-ez/exceptions.rb +3 -0
- data/lib/junos-ez/facts.rb +83 -0
- data/lib/junos-ez/facts/chassis.rb +51 -0
- data/lib/junos-ez/facts/ifd_style.rb +17 -0
- data/lib/junos-ez/facts/personality.rb +25 -0
- data/lib/junos-ez/facts/switch_style.rb +31 -0
- data/lib/junos-ez/facts/version.rb +58 -0
- data/lib/junos-ez/group.rb +206 -0
- data/lib/junos-ez/ip_ports.rb +30 -0
- data/lib/junos-ez/ip_ports/classic.rb +188 -0
- data/lib/junos-ez/l1_ports.rb +121 -0
- data/lib/junos-ez/l1_ports/classic.rb +87 -0
- data/lib/junos-ez/l1_ports/switch.rb +134 -0
- data/lib/junos-ez/l2_ports.rb +66 -0
- data/lib/junos-ez/l2_ports/bridge_domain.rb +499 -0
- data/lib/junos-ez/l2_ports/vlan.rb +433 -0
- data/lib/junos-ez/l2_ports/vlan_l2ng.rb +502 -0
- data/lib/junos-ez/lag_ports.rb +268 -0
- data/lib/junos-ez/provider.rb +619 -0
- data/lib/junos-ez/stdlib.rb +18 -0
- data/lib/junos-ez/system.rb +48 -0
- data/lib/junos-ez/system/st_hosts.rb +92 -0
- data/lib/junos-ez/system/st_routes.rb +159 -0
- data/lib/junos-ez/system/syscfg.rb +103 -0
- data/lib/junos-ez/system/userauths.rb +84 -0
- data/lib/junos-ez/system/users.rb +217 -0
- data/lib/junos-ez/utils/config.rb +236 -0
- data/lib/junos-ez/utils/fs.rb +385 -0
- data/lib/junos-ez/utils/re.rb +558 -0
- data/lib/junos-ez/version.rb +6 -0
- data/lib/junos-ez/vlans.rb +38 -0
- data/lib/junos-ez/vlans/bridge_domain.rb +89 -0
- data/lib/junos-ez/vlans/vlan.rb +119 -0
- data/lib/junos-ez/vlans/vlan_l2ng.rb +126 -0
- data/shipit.yml +4 -0
- data/tmp +7 -0
- metadata +129 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
require "junos-ez/provider"
|
2
|
+
|
3
|
+
module Junos::Ez::Vlans
|
4
|
+
|
5
|
+
PROPERTIES = [
|
6
|
+
:vlan_id, # Fixnum, [ 1 .. 4094 ]
|
7
|
+
:description, # String, description
|
8
|
+
:no_mac_learning, # [ true | nil ] - used to disable MAC-address learning
|
9
|
+
:interfaces, # READ-ONLY, array of bound interface names
|
10
|
+
]
|
11
|
+
|
12
|
+
def self.Provider( ndev, varsym )
|
13
|
+
newbie = case ndev.fact :switch_style
|
14
|
+
when :VLAN
|
15
|
+
Junos::Ez::Vlans::Provider::VLAN.new( ndev )
|
16
|
+
when :VLAN_L2NG
|
17
|
+
Junos::Ez::Vlans::Provider::VLAN_L2NG.new( ndev )
|
18
|
+
when :BRIDGE_DOMAIN
|
19
|
+
Junos::Ez::Vlans::Provider::BRIDGE_DOMAIN.new( ndev )
|
20
|
+
else
|
21
|
+
raise Junos::Ez::NoProviderError, "target does not support vlan bridges"
|
22
|
+
end
|
23
|
+
newbie.properties = Junos::Ez::Provider::PROPERTIES + PROPERTIES
|
24
|
+
Junos::Ez::Provider.attach_instance_variable( ndev, varsym, newbie )
|
25
|
+
end
|
26
|
+
|
27
|
+
class Provider < Junos::Ez::Provider::Parent
|
28
|
+
# common parenting goes here ...
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
require 'junos-ez/vlans/vlan'
|
35
|
+
require 'junos-ez/vlans/vlan_l2ng'
|
36
|
+
require 'junos-ez/vlans/bridge_domain'
|
37
|
+
|
38
|
+
|
@@ -0,0 +1,89 @@
|
|
1
|
+
class Junos::Ez::Vlans::Provider::BRIDGE_DOMAIN < Junos::Ez::Vlans::Provider
|
2
|
+
|
3
|
+
### ---------------------------------------------------------------
|
4
|
+
### XML top placement
|
5
|
+
### ---------------------------------------------------------------
|
6
|
+
|
7
|
+
def xml_at_top
|
8
|
+
Nokogiri::XML::Builder.new{|x| x.configuration{
|
9
|
+
x.send( :'bridge-domains' ) { x.domain { x.name @name
|
10
|
+
return x
|
11
|
+
}}
|
12
|
+
}}
|
13
|
+
end
|
14
|
+
|
15
|
+
### ---------------------------------------------------------------
|
16
|
+
### XML readers
|
17
|
+
### ---------------------------------------------------------------
|
18
|
+
|
19
|
+
def xml_read!
|
20
|
+
cfg_xml = @ndev.rpc.get_configuration( xml_at_top )
|
21
|
+
return nil unless (@has_xml = cfg_xml.xpath('//domain')[0])
|
22
|
+
xml_read_parser( @has_xml, @has )
|
23
|
+
end
|
24
|
+
|
25
|
+
def xml_get_has_xml( xml )
|
26
|
+
xml.xpath('//domain')[0]
|
27
|
+
end
|
28
|
+
|
29
|
+
def xml_read_parser( as_xml, as_hash )
|
30
|
+
set_has_status( as_xml, as_hash )
|
31
|
+
as_hash[:vlan_id] = as_xml.xpath('vlan-id').text.to_i
|
32
|
+
as_hash[:description] = as_xml.xpath('description').text
|
33
|
+
as_hash[:no_mac_learning] = as_xml.xpath('bridge-options/no-mac-learning').empty? ? :disable : :enable
|
34
|
+
return true
|
35
|
+
end
|
36
|
+
|
37
|
+
### ---------------------------------------------------------------
|
38
|
+
### XML writers
|
39
|
+
### ---------------------------------------------------------------
|
40
|
+
|
41
|
+
def xml_on_create( xml )
|
42
|
+
xml.send( :'domain-type', 'bridge' )
|
43
|
+
end
|
44
|
+
|
45
|
+
def xml_change_no_mac_learning( xml )
|
46
|
+
no_ml = @should[:no_mac_learning]
|
47
|
+
return unless ( exists? and no_ml )
|
48
|
+
xml.send(:'bridge-options') {
|
49
|
+
xml.send(:'no-mac-learning', (no_ml == :enable) ? nil : Netconf::JunosConfig::DELETE )
|
50
|
+
}
|
51
|
+
end
|
52
|
+
|
53
|
+
def xml_change_vlan_id( xml )
|
54
|
+
xml.send( :'vlan-id', @should[:vlan_id] )
|
55
|
+
end
|
56
|
+
|
57
|
+
def xml_change_description( xml )
|
58
|
+
xml.description @should[:description]
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
|
64
|
+
##### ---------------------------------------------------------------
|
65
|
+
##### Provider collection methods
|
66
|
+
##### ---------------------------------------------------------------
|
67
|
+
|
68
|
+
class Junos::Ez::Vlans::Provider::BRIDGE_DOMAIN
|
69
|
+
|
70
|
+
def build_list
|
71
|
+
bd_cfgs = @ndev.rpc.get_configuration{ |x| x.send :'bridge-domains' }
|
72
|
+
bd_cfgs.xpath('bridge-domains/domain').collect do |domain|
|
73
|
+
domain.xpath('name').text
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def build_catalog
|
78
|
+
@catalog = {}
|
79
|
+
bd_cfgs = @ndev.rpc.get_configuration{ |x| x.send :'bridge-domains' }
|
80
|
+
bd_cfgs.xpath('bridge-domains/domain').collect do |domain|
|
81
|
+
name = domain.xpath('name').text
|
82
|
+
@catalog[name] = {}
|
83
|
+
xml_read_parser( domain, @catalog[name] )
|
84
|
+
end
|
85
|
+
return @catalog
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
@@ -0,0 +1,119 @@
|
|
1
|
+
class Junos::Ez::Vlans::Provider::VLAN < Junos::Ez::Vlans::Provider
|
2
|
+
|
3
|
+
### ---------------------------------------------------------------
|
4
|
+
### XML top placement
|
5
|
+
### ---------------------------------------------------------------
|
6
|
+
|
7
|
+
def xml_at_top
|
8
|
+
Nokogiri::XML::Builder.new{|x| x.configuration{
|
9
|
+
x.vlans { x.vlan { x.name @name
|
10
|
+
return x
|
11
|
+
}}
|
12
|
+
}}
|
13
|
+
end
|
14
|
+
|
15
|
+
### ---------------------------------------------------------------
|
16
|
+
### XML readers
|
17
|
+
### ---------------------------------------------------------------
|
18
|
+
|
19
|
+
def xml_get_has_xml( xml )
|
20
|
+
xml.xpath('//vlan')[0]
|
21
|
+
end
|
22
|
+
|
23
|
+
def xml_read_parser( as_xml, as_hash )
|
24
|
+
set_has_status( as_xml, as_hash )
|
25
|
+
|
26
|
+
as_hash[:vlan_id] = as_xml.xpath('vlan-id').text.to_i
|
27
|
+
xml_when_item(as_xml.xpath('description')){ |i| as_hash[:description] = i.text }
|
28
|
+
xml_when_item(as_xml.xpath('no-mac-learning')){ as_hash[:no_mac_learning] = :enable }
|
29
|
+
|
30
|
+
# get a brief list of the interfaces on this vlan
|
31
|
+
got = @ndev.rpc.get_vlan_information( :vlan_name => @name || as_xml.xpath('name').text )
|
32
|
+
as_hash[:interfaces] = got.xpath('//vlan-member-interface').collect{|ifs| ifs.text.strip }
|
33
|
+
as_hash[:interfaces] = nil if as_hash[:interfaces][0] == "None"
|
34
|
+
|
35
|
+
return true
|
36
|
+
end
|
37
|
+
|
38
|
+
### ---------------------------------------------------------------
|
39
|
+
### XML writers
|
40
|
+
### ---------------------------------------------------------------
|
41
|
+
|
42
|
+
def xml_change_no_mac_learning( xml )
|
43
|
+
no_ml = @should[:no_mac_learning]
|
44
|
+
return unless exists? and no_ml
|
45
|
+
xml.send(:'no-mac-learning', no_ml ? nil : Netconf::JunosConfig::DELETE )
|
46
|
+
end
|
47
|
+
|
48
|
+
def xml_change_vlan_id( xml )
|
49
|
+
xml.send(:'vlan-id', @should[:vlan_id] )
|
50
|
+
end
|
51
|
+
|
52
|
+
def xml_change_description( xml )
|
53
|
+
value = @should[:description]
|
54
|
+
xml.description value ? value : Netconf::JunosConfig::DELETE
|
55
|
+
end
|
56
|
+
|
57
|
+
end
|
58
|
+
|
59
|
+
##### ---------------------------------------------------------------
|
60
|
+
##### Provider collection methods
|
61
|
+
##### ---------------------------------------------------------------
|
62
|
+
|
63
|
+
class Junos::Ez::Vlans::Provider::VLAN
|
64
|
+
|
65
|
+
def build_list
|
66
|
+
xml_cfgs = @ndev.rpc.get_configuration{ |x| x.send :'vlans' }
|
67
|
+
xml_cfgs.xpath('vlans/vlan').collect do |vlan|
|
68
|
+
vlan.xpath('name').text
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def build_catalog
|
73
|
+
@catalog = {}
|
74
|
+
xml_cfgs = @ndev.rpc.get_configuration{ |x| x.send :'vlans' }
|
75
|
+
xml_cfgs.xpath('vlans/vlan').collect do |vlan|
|
76
|
+
name = vlan.xpath('name').text
|
77
|
+
@catalog[name] = {}
|
78
|
+
xml_read_parser( vlan, @catalog[name] )
|
79
|
+
end
|
80
|
+
return @catalog
|
81
|
+
end
|
82
|
+
|
83
|
+
end
|
84
|
+
|
85
|
+
##### ---------------------------------------------------------------
|
86
|
+
##### Provider operational methods
|
87
|
+
##### ---------------------------------------------------------------
|
88
|
+
|
89
|
+
class Junos::Ez::Vlans::Provider::VLAN
|
90
|
+
|
91
|
+
### ---------------------------------------------------------------
|
92
|
+
### interfaces - returns a Hash of each interface in the VLAN
|
93
|
+
### each interface (key) will identify:
|
94
|
+
### :mode = [ :access | :trunk ]
|
95
|
+
### :native = true if (:mode == :trunk) and this VLAN is the
|
96
|
+
### native vlan-id (untagged packets)
|
97
|
+
### ---------------------------------------------------------------
|
98
|
+
|
99
|
+
def interfaces( opts = {} )
|
100
|
+
raise ArgumentError, "not a resource" if is_provider?
|
101
|
+
|
102
|
+
args = {}
|
103
|
+
args[:vlan_name] = @name
|
104
|
+
args[:extensive] = true
|
105
|
+
got = @ndev.rpc.get_vlan_information( args )
|
106
|
+
|
107
|
+
members = got.xpath('vlan/vlan-detail/vlan-member-list/vlan-member')
|
108
|
+
ifs_h = {}
|
109
|
+
members.each do |port|
|
110
|
+
port_name = port.xpath('vlan-member-interface').text.split('.')[0]
|
111
|
+
port_h = {}
|
112
|
+
port_h[:mode] = port.xpath('vlan-member-port-mode').text.to_sym
|
113
|
+
native = (port.xpath('vlan-member-tagness').text == 'untagged')
|
114
|
+
port_h[:native] = true if( native and port_h[:mode] == :trunk)
|
115
|
+
ifs_h[port_name] = port_h
|
116
|
+
end
|
117
|
+
ifs_h
|
118
|
+
end
|
119
|
+
end
|
@@ -0,0 +1,126 @@
|
|
1
|
+
class Junos::Ez::Vlans::Provider::VLAN_L2NG < Junos::Ez::Vlans::Provider
|
2
|
+
|
3
|
+
### ---------------------------------------------------------------
|
4
|
+
### XML top placement
|
5
|
+
### ---------------------------------------------------------------
|
6
|
+
|
7
|
+
def xml_at_top
|
8
|
+
Nokogiri::XML::Builder.new{|x| x.configuration{
|
9
|
+
x.vlans { x.vlan { x.name @name
|
10
|
+
return x
|
11
|
+
}}
|
12
|
+
}}
|
13
|
+
end
|
14
|
+
|
15
|
+
### ---------------------------------------------------------------
|
16
|
+
### XML readers
|
17
|
+
### ---------------------------------------------------------------
|
18
|
+
|
19
|
+
def xml_get_has_xml( xml )
|
20
|
+
xml.xpath('//vlan')[0]
|
21
|
+
end
|
22
|
+
|
23
|
+
def xml_read_parser( as_xml, as_hash )
|
24
|
+
set_has_status( as_xml, as_hash )
|
25
|
+
|
26
|
+
as_hash[:vlan_id] = as_xml.xpath('vlan-id').text.to_i
|
27
|
+
xml_when_item(as_xml.xpath('description')){ |i| as_hash[:description] = i.text }
|
28
|
+
|
29
|
+
xml_when_item(as_xml.xpath('switch-options/no-mac-learning')) {
|
30
|
+
as_hash[:no_mac_learning] = :enable
|
31
|
+
}
|
32
|
+
|
33
|
+
# get a brief list of the interfaces on this vlan
|
34
|
+
got = @ndev.rpc.get_vlan_information( :vlan_name => @name || as_xml.xpath('name').text )
|
35
|
+
as_hash[:interfaces] = got.xpath('//l2ng-l2rtb-vlan-member-interface').collect{|ifs| ifs.text.strip }
|
36
|
+
as_hash[:interfaces] = nil if as_hash[:interfaces][0] == "None"
|
37
|
+
|
38
|
+
return true
|
39
|
+
end
|
40
|
+
|
41
|
+
### ---------------------------------------------------------------
|
42
|
+
### XML writers
|
43
|
+
### ---------------------------------------------------------------
|
44
|
+
|
45
|
+
def xml_change_no_mac_learning( xml )
|
46
|
+
no_ml = @should[:no_mac_learning]
|
47
|
+
return unless exists? and no_ml
|
48
|
+
xml.send(:'switch-options') {
|
49
|
+
xml.send(:'no-mac-learning', no_ml == :enable ? nil : Netconf::JunosConfig::DELETE )
|
50
|
+
}
|
51
|
+
end
|
52
|
+
|
53
|
+
def xml_change_vlan_id( xml )
|
54
|
+
xml.send(:'vlan-id', @should[:vlan_id] )
|
55
|
+
end
|
56
|
+
|
57
|
+
def xml_change_description( xml )
|
58
|
+
value = @should[:description]
|
59
|
+
xml.description value ? value : Netconf::JunosConfig::DELETE
|
60
|
+
end
|
61
|
+
|
62
|
+
end
|
63
|
+
|
64
|
+
##### ---------------------------------------------------------------
|
65
|
+
##### Provider collection methods
|
66
|
+
##### ---------------------------------------------------------------
|
67
|
+
|
68
|
+
class Junos::Ez::Vlans::Provider::VLAN_L2NG
|
69
|
+
|
70
|
+
def build_list
|
71
|
+
xml_cfgs = @ndev.rpc.get_configuration{ |x| x.send :'vlans' }
|
72
|
+
xml_cfgs.xpath('vlans/vlan').collect do |vlan|
|
73
|
+
vlan.xpath('name').text
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def build_catalog
|
78
|
+
@catalog = {}
|
79
|
+
xml_cfgs = @ndev.rpc.get_configuration{ |x| x.send :'vlans' }
|
80
|
+
xml_cfgs.xpath('vlans/vlan').collect do |vlan|
|
81
|
+
name = vlan.xpath('name').text
|
82
|
+
@catalog[name] = {}
|
83
|
+
xml_read_parser( vlan, @catalog[name] )
|
84
|
+
end
|
85
|
+
return @catalog
|
86
|
+
end
|
87
|
+
|
88
|
+
end
|
89
|
+
|
90
|
+
##### ---------------------------------------------------------------
|
91
|
+
##### Provider operational methods
|
92
|
+
##### ---------------------------------------------------------------
|
93
|
+
|
94
|
+
class Junos::Ez::Vlans::Provider::VLAN_L2NG
|
95
|
+
|
96
|
+
### ---------------------------------------------------------------
|
97
|
+
### interfaces - returns a Hash of each interface in the VLAN
|
98
|
+
### each interface (key) will identify:
|
99
|
+
### :mode = [ :access | :trunk ]
|
100
|
+
### :native = true if (:mode == :trunk) and this VLAN is the
|
101
|
+
### native vlan-id (untagged packets)
|
102
|
+
### ---------------------------------------------------------------
|
103
|
+
|
104
|
+
def interfaces( opts = {} )
|
105
|
+
raise ArgumentError, "not a resource" if is_provider?
|
106
|
+
|
107
|
+
args = {}
|
108
|
+
args[:vlan_name] = @name
|
109
|
+
args[:extensive] = true
|
110
|
+
got = @ndev.rpc.get_vlan_information( args )
|
111
|
+
|
112
|
+
member_pfx = 'l2ng-l2rtb-vlan-member'
|
113
|
+
members = got.xpath("//#{member_pfx}-interface")
|
114
|
+
ifs_h = {}
|
115
|
+
members.each do |port|
|
116
|
+
port_name = port.text.split('.')[0]
|
117
|
+
port_h = {}
|
118
|
+
port_h[:mode] = port.xpath("following-sibling::#{member_pfx}-interface-mode[1]").text.to_sym
|
119
|
+
tgd = port.xpath("following-sibling::#{member_pfx}-tagness[1]").text
|
120
|
+
native = (tgd == 'untagged')
|
121
|
+
port_h[:native] = true if( native and port_h[:mode] == :trunk)
|
122
|
+
ifs_h[port_name] = port_h
|
123
|
+
end
|
124
|
+
ifs_h
|
125
|
+
end
|
126
|
+
end
|
data/shipit.yml
ADDED
data/tmp
ADDED
metadata
ADDED
@@ -0,0 +1,129 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: shopify-junos-ez-stdlib
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 1.0.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jeremy Schulman
|
8
|
+
- John Deatherage
|
9
|
+
- Nitin Kumar
|
10
|
+
- Priyal Jain
|
11
|
+
- Ganesh Nalawade
|
12
|
+
autorequire:
|
13
|
+
bindir: bin
|
14
|
+
cert_chain: []
|
15
|
+
date: 2016-05-03 00:00:00.000000000 Z
|
16
|
+
dependencies:
|
17
|
+
- !ruby/object:Gem::Dependency
|
18
|
+
name: netconf
|
19
|
+
requirement: !ruby/object:Gem::Requirement
|
20
|
+
requirements:
|
21
|
+
- - ">="
|
22
|
+
- !ruby/object:Gem::Version
|
23
|
+
version: 0.2.5
|
24
|
+
type: :runtime
|
25
|
+
prerelease: false
|
26
|
+
version_requirements: !ruby/object:Gem::Requirement
|
27
|
+
requirements:
|
28
|
+
- - ">="
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 0.2.5
|
31
|
+
description: 'Automation Framework for Junos/NETCONF: Facts, Providers, and Utils'
|
32
|
+
email: jnpr-community-netdev@juniper.net
|
33
|
+
executables: []
|
34
|
+
extensions: []
|
35
|
+
extra_rdoc_files: []
|
36
|
+
files:
|
37
|
+
- CHANGELOG.md
|
38
|
+
- LICENSE
|
39
|
+
- README.md
|
40
|
+
- docs/Facts.md
|
41
|
+
- docs/Providers/Group.md
|
42
|
+
- docs/Providers/IPports.md
|
43
|
+
- docs/Providers/L1ports.md
|
44
|
+
- docs/Providers/L2ports.md
|
45
|
+
- docs/Providers/LAGports.md
|
46
|
+
- docs/Providers/StaticHosts.md
|
47
|
+
- docs/Providers/StaticRoutes.md
|
48
|
+
- docs/Providers/UserAuths.md
|
49
|
+
- docs/Providers/Users.md
|
50
|
+
- docs/Providers/Vlans.md
|
51
|
+
- docs/Providers_Resources.md
|
52
|
+
- docs/README_FIRST.md
|
53
|
+
- docs/Utils/Config.md
|
54
|
+
- docs/Utils/Filesystem.md
|
55
|
+
- docs/Utils/Routing-Engine.md
|
56
|
+
- docs/Utils/SCP.md
|
57
|
+
- examples/config/config_file.rb
|
58
|
+
- examples/config/config_template_object.rb
|
59
|
+
- examples/config/config_template_simple.rb
|
60
|
+
- examples/config/multi_config.rb
|
61
|
+
- examples/fs_utils.rb
|
62
|
+
- examples/lag_port.rb
|
63
|
+
- examples/re_upgrade.rb
|
64
|
+
- examples/re_utils.rb
|
65
|
+
- examples/simple.rb
|
66
|
+
- examples/st_hosts.rb
|
67
|
+
- examples/user.rb
|
68
|
+
- examples/vlans.rb
|
69
|
+
- junos-ez-stdlib.gemspec
|
70
|
+
- lib/junos-ez/exceptions.rb
|
71
|
+
- lib/junos-ez/facts.rb
|
72
|
+
- lib/junos-ez/facts/chassis.rb
|
73
|
+
- lib/junos-ez/facts/ifd_style.rb
|
74
|
+
- lib/junos-ez/facts/personality.rb
|
75
|
+
- lib/junos-ez/facts/switch_style.rb
|
76
|
+
- lib/junos-ez/facts/version.rb
|
77
|
+
- lib/junos-ez/group.rb
|
78
|
+
- lib/junos-ez/ip_ports.rb
|
79
|
+
- lib/junos-ez/ip_ports/classic.rb
|
80
|
+
- lib/junos-ez/l1_ports.rb
|
81
|
+
- lib/junos-ez/l1_ports/classic.rb
|
82
|
+
- lib/junos-ez/l1_ports/switch.rb
|
83
|
+
- lib/junos-ez/l2_ports.rb
|
84
|
+
- lib/junos-ez/l2_ports/bridge_domain.rb
|
85
|
+
- lib/junos-ez/l2_ports/vlan.rb
|
86
|
+
- lib/junos-ez/l2_ports/vlan_l2ng.rb
|
87
|
+
- lib/junos-ez/lag_ports.rb
|
88
|
+
- lib/junos-ez/provider.rb
|
89
|
+
- lib/junos-ez/stdlib.rb
|
90
|
+
- lib/junos-ez/system.rb
|
91
|
+
- lib/junos-ez/system/st_hosts.rb
|
92
|
+
- lib/junos-ez/system/st_routes.rb
|
93
|
+
- lib/junos-ez/system/syscfg.rb
|
94
|
+
- lib/junos-ez/system/userauths.rb
|
95
|
+
- lib/junos-ez/system/users.rb
|
96
|
+
- lib/junos-ez/utils/config.rb
|
97
|
+
- lib/junos-ez/utils/fs.rb
|
98
|
+
- lib/junos-ez/utils/re.rb
|
99
|
+
- lib/junos-ez/version.rb
|
100
|
+
- lib/junos-ez/vlans.rb
|
101
|
+
- lib/junos-ez/vlans/bridge_domain.rb
|
102
|
+
- lib/junos-ez/vlans/vlan.rb
|
103
|
+
- lib/junos-ez/vlans/vlan_l2ng.rb
|
104
|
+
- shipit.yml
|
105
|
+
- tmp
|
106
|
+
homepage: https://github.com/Juniper/ruby-junos-ez-stdlib
|
107
|
+
licenses: []
|
108
|
+
metadata: {}
|
109
|
+
post_install_message:
|
110
|
+
rdoc_options: []
|
111
|
+
require_paths:
|
112
|
+
- lib
|
113
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
119
|
+
requirements:
|
120
|
+
- - ">="
|
121
|
+
- !ruby/object:Gem::Version
|
122
|
+
version: '0'
|
123
|
+
requirements: []
|
124
|
+
rubyforge_project:
|
125
|
+
rubygems_version: 2.4.5.1
|
126
|
+
signing_key:
|
127
|
+
specification_version: 4
|
128
|
+
summary: Junos EZ Framework - Standard Libraries
|
129
|
+
test_files: []
|