shopify-junos-ez-stdlib 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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: []
|