Class: Cisco::Vrf
Overview
Vrf - node utility class for VRF configuration management
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Methods inherited from NodeUtil
config_get, #config_get, config_get_default, #config_get_default, #config_set, config_set, #node, node, #show
Constructor Details
#initialize(name, instantiate = true) ⇒ Vrf
Returns a new instance of Vrf.
27
28
29
30
31
|
# File 'lib/cisco_node_utils/vrf.rb', line 27
def initialize(name, instantiate=true)
fail TypeError unless name.is_a?(String)
@name = name.downcase.strip
create if instantiate
end
|
Instance Attribute Details
#name ⇒ Object
Returns the value of attribute name.
25
26
27
|
# File 'lib/cisco_node_utils/vrf.rb', line 25
def name
@name
end
|
Class Method Details
.vrfs ⇒ Object
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/cisco_node_utils/vrf.rb', line 33
def self.vrfs
hash = {}
vrf_list = config_get('vrf', 'all_vrfs')
return hash if vrf_list.nil?
vrf_list.each do |id|
id = id.downcase.strip
hash[id] = Vrf.new(id, false)
end
hash
end
|
Instance Method Details
#create ⇒ Object
45
46
47
|
# File 'lib/cisco_node_utils/vrf.rb', line 45
def create
config_set('vrf', 'create', vrf: @name)
end
|
#default_description ⇒ Object
70
71
72
|
# File 'lib/cisco_node_utils/vrf.rb', line 70
def default_description
config_get_default('vrf', 'description')
end
|
#default_route_distinguisher ⇒ Object
109
110
111
|
# File 'lib/cisco_node_utils/vrf.rb', line 109
def default_route_distinguisher
config_get_default('vrf', 'route_distinguisher')
end
|
#default_shutdown ⇒ Object
85
86
87
|
# File 'lib/cisco_node_utils/vrf.rb', line 85
def default_shutdown
config_get_default('vrf', 'shutdown')
end
|
#default_vni ⇒ Object
127
128
129
|
# File 'lib/cisco_node_utils/vrf.rb', line 127
def default_vni
config_get_default('vrf', 'vni')
end
|
#description ⇒ Object
57
58
59
|
# File 'lib/cisco_node_utils/vrf.rb', line 57
def description
config_get('vrf', 'description', vrf: @name)
end
|
#description=(desc) ⇒ Object
61
62
63
64
65
66
67
68
|
# File 'lib/cisco_node_utils/vrf.rb', line 61
def description=(desc)
fail TypeError unless desc.is_a?(String)
desc.strip!
no_cmd = desc.empty? ? 'no' : ''
config_set('vrf', 'description', vrf: @name, state: no_cmd, desc: desc)
rescue Cisco::CliError => e
raise "[#{@name}] '#{e.command}' : #{e.clierror}"
end
|
#destroy ⇒ Object
49
50
51
|
# File 'lib/cisco_node_utils/vrf.rb', line 49
def destroy
config_set('vrf', 'destroy', vrf: @name)
end
|
#route_distinguisher ⇒ Object
route_distinguisher Note that this property is supported by both bgp and vrf providers.
91
92
93
|
# File 'lib/cisco_node_utils/vrf.rb', line 91
def route_distinguisher
config_get('vrf', 'route_distinguisher', vrf: @name)
end
|
#route_distinguisher=(rd) ⇒ Object
95
96
97
98
99
100
101
102
103
104
105
106
107
|
# File 'lib/cisco_node_utils/vrf.rb', line 95
def route_distinguisher=(rd)
Feature.bgp_enable
Feature.nv_overlay_enable
Feature.nv_overlay_evpn_enable
if rd == default_route_distinguisher
state = 'no'
rd = ''
else
state = ''
end
config_set('vrf', 'route_distinguisher', state: state, vrf: @name, rd: rd)
end
|
#shutdown ⇒ Object
74
75
76
|
# File 'lib/cisco_node_utils/vrf.rb', line 74
def shutdown
config_get('vrf', 'shutdown', vrf: @name)
end
|
#shutdown=(val) ⇒ Object
78
79
80
81
82
83
|
# File 'lib/cisco_node_utils/vrf.rb', line 78
def shutdown=(val)
no_cmd = (val) ? '' : 'no'
config_set('vrf', 'shutdown', vrf: @name, state: no_cmd)
rescue Cisco::CliError => e
raise "[vrf #{@name}] '#{e.command}' : #{e.clierror}"
end
|
#vni ⇒ Object
Vni (Getter/Setter/Default)
114
115
116
|
# File 'lib/cisco_node_utils/vrf.rb', line 114
def vni
config_get('vrf', 'vni', vrf: @name)
end
|
#vni=(id) ⇒ Object
118
119
120
121
122
123
124
125
|
# File 'lib/cisco_node_utils/vrf.rb', line 118
def vni=(id)
Feature.vn_segment_vlan_based_enable
no_cmd = (id) ? '' : 'no'
id = (id) ? id : vni
config_set('vrf', 'vni', vrf: @name, state: no_cmd, id: id)
rescue Cisco::CliError => e
raise "[vrf #{@name}] '#{e.command}' : #{e.clierror}"
end
|