Class: Cisco::PimRpAddress
- Defined in:
- lib/cisco_node_utils/pim_rp_address.rb
Overview
node_utils class for pim_rp_address
Instance Attribute Summary collapse
-
#afi ⇒ Object
readonly
Returns the value of attribute afi.
-
#rp_addr ⇒ Object
readonly
Returns the value of attribute rp_addr.
-
#vrf ⇒ Object
readonly
Returns the value of attribute vrf.
Class Method Summary collapse
-
.rp_addresses ⇒ Object
Create a hash of [afi][rp_address] ————————————————.
Instance Method Summary collapse
-
#create ⇒ Object
Create pim rp_addr instance ——————————.
-
#destroy ⇒ Object
Destroy pim rp_addr instance ——————————.
-
#initialize(afi, vrf, rp_addr, instantiate = true) ⇒ PimRpAddress
constructor
Constructor with afi, rp_address and vrf —————————————–.
-
#set_args_keys(hash = {}) ⇒ Object
set_args_key ————-.
-
#set_args_keys_default ⇒ Object
set_args_keys_default ———————-.
Methods inherited from NodeUtil
client, #client, config_get, #config_get, #config_get_default, config_get_default, config_set, #config_set, #get, #ios_xr?, #nexus?, #node, node, platform, #platform, supports?, #supports?
Constructor Details
#initialize(afi, vrf, rp_addr, instantiate = true) ⇒ PimRpAddress
Constructor with afi, rp_address and vrf
29 30 31 32 33 34 35 |
# File 'lib/cisco_node_utils/pim_rp_address.rb', line 29 def initialize(afi, vrf, rp_addr, instantiate=true) fail ArgumentError unless vrf.is_a?(String) || vrf.length > 0 @afi = Pim.afi_cli(afi) @rp_addr = rp_addr @vrf = vrf create if instantiate end |
Instance Attribute Details
#afi ⇒ Object (readonly)
Returns the value of attribute afi.
25 26 27 |
# File 'lib/cisco_node_utils/pim_rp_address.rb', line 25 def afi @afi end |
#rp_addr ⇒ Object (readonly)
Returns the value of attribute rp_addr.
25 26 27 |
# File 'lib/cisco_node_utils/pim_rp_address.rb', line 25 def rp_addr @rp_addr end |
#vrf ⇒ Object (readonly)
Returns the value of attribute vrf.
25 26 27 |
# File 'lib/cisco_node_utils/pim_rp_address.rb', line 25 def vrf @vrf end |
Class Method Details
.rp_addresses ⇒ Object
Create a hash of [afi][rp_address]
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/cisco_node_utils/pim_rp_address.rb', line 39 def self.rp_addresses afis = %w(ipv4) # TBD ipv6 hash = {} return hash unless Feature.pim_enabled? afis.each do |afi| hash[afi] = {} default_vrf = 'default' get_args = { afi: Pim.afi_cli(afi) } rp_addrs = config_get('pim', 'all_rp_addresses', get_args) unless rp_addrs.nil? rp_addrs.each do |addr| hash[afi][default_vrf] ||= {} hash[afi][default_vrf][addr] = PimRpAddress.new(afi, default_vrf, addr, false) end end vrf_ids = config_get('vrf', 'all_vrfs') vrf_ids.each do |vrf| get_args = { afi: Pim.afi_cli(afi), vrf: vrf } rp_addrs = config_get('pim', 'all_rp_addresses', get_args) next if rp_addrs.nil? rp_addrs.each do |addr| hash[afi][vrf] ||= {} hash[afi][vrf][addr] = PimRpAddress.new(afi, vrf, addr, false) end end end hash rescue Cisco::CliError => e # cmd will syntax reject when feature is not enabled raise unless e.clierror =~ /Syntax error/ return {} end |
Instance Method Details
#create ⇒ Object
Create pim rp_addr instance
90 91 92 93 94 |
# File 'lib/cisco_node_utils/pim_rp_address.rb', line 90 def create Feature.pim_enable set_args_keys(state: '') config_set('pim', 'rp_address', @set_args) end |
#destroy ⇒ Object
Destroy pim rp_addr instance
98 99 100 101 |
# File 'lib/cisco_node_utils/pim_rp_address.rb', line 98 def destroy set_args_keys(state: 'no') config_set('pim', 'rp_address', @set_args) end |
#set_args_keys(hash = {}) ⇒ Object
set_args_key
83 84 85 86 |
# File 'lib/cisco_node_utils/pim_rp_address.rb', line 83 def set_args_keys(hash={}) # rubocop:disable Style/AccessorMethodName set_args_keys_default @set_args = @get_args.merge!(hash) unless hash.empty? end |
#set_args_keys_default ⇒ Object
set_args_keys_default
75 76 77 78 79 |
# File 'lib/cisco_node_utils/pim_rp_address.rb', line 75 def set_args_keys_default keys = { afi: @afi, addr: @rp_addr } keys[:vrf] = @vrf unless @vrf == 'default' @get_args = @set_args = keys end |