From 0148099009a0af5224aaed1c9f97e5ab87ba1838 Mon Sep 17 00:00:00 2001 From: Patrice RINGOT <patrice.ringot@loria.fr> Date: Mon, 4 Jan 2021 17:46:33 +0100 Subject: [PATCH] [kavlang5k.rb] allow kavlan pattern to be given at the port level --- lib/refrepo/gen/puppet/kavlang5k.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lib/refrepo/gen/puppet/kavlang5k.rb b/lib/refrepo/gen/puppet/kavlang5k.rb index 8b55f7f030..b6468a71d5 100644 --- a/lib/refrepo/gen/puppet/kavlang5k.rb +++ b/lib/refrepo/gen/puppet/kavlang5k.rb @@ -4,9 +4,11 @@ def kavlan_switch_port_lookup(switch, node_uid, interface='') switch["linecards"].each_with_index do |lc, lc_uid| next if not lc["ports"] lc["ports"].each_with_index do |port, port_uid| + pattern_source = lc if port.is_a?(Hash) switch_remote_port = port["port"] || lc["port"] || "" switch_remote_uid = port["uid"] + pattern_source = port if port.has_key?('snmp_pattern') or port.has_key?('kavlan_pattern') else switch_remote_port = lc["port"] || "" switch_remote_uid = port @@ -15,7 +17,7 @@ def kavlan_switch_port_lookup(switch, node_uid, interface='') if switch_remote_uid == node_uid and switch_remote_port == interface # Build port name from snmp_naming_pattern # Example: '3 2 GigabitEthernet%LINECARD%/%PORT%' -> 'GigabitEthernet3/2' - pattern = lc.has_key?("kavlan_pattern") ? lc["kavlan_pattern"] : lc["snmp_pattern"] + pattern = pattern_source.has_key?("kavlan_pattern") ? pattern_source["kavlan_pattern"] : pattern_source["snmp_pattern"] port_name = pattern.sub("%LINECARD%",lc_uid.to_s).sub("%PORT%",port_uid.to_s) return port_name end -- GitLab