@@ -90,77 +90,6 @@ function preStartAction()
9090 fi
9191{%- elif docker_container_name == " snmp" %}
9292 sonic-db-cli STATE_DB HSET ' DEVICE_METADATA|localhost' chassis_serial_number $( decode-syseeprom -s)
93- vrfenabled=` sonic-db-cli CONFIG_DB hget " MGMT_VRF_CONFIG|vrf_global" mgmtVrfEnabled`
94- v1SnmpTrapIp=` sonic-db-cli CONFIG_DB hget " SNMP_TRAP_CONFIG|v1TrapDest" DestIp`
95- v1SnmpTrapPort=` sonic-db-cli CONFIG_DB hget " SNMP_TRAP_CONFIG|v1TrapDest" DestPort`
96- v1Vrf=` sonic-db-cli CONFIG_DB hget " SNMP_TRAP_CONFIG|v1TrapDest" vrf`
97- v1Comm=` sonic-db-cli CONFIG_DB hget " SNMP_TRAP_CONFIG|v1TrapDest" Community`
98- v2SnmpTrapIp=` sonic-db-cli CONFIG_DB hget " SNMP_TRAP_CONFIG|v2TrapDest" DestIp`
99- v2SnmpTrapPort=` sonic-db-cli CONFIG_DB hget " SNMP_TRAP_CONFIG|v2TrapDest" DestPort`
100- v2Vrf=` sonic-db-cli CONFIG_DB hget " SNMP_TRAP_CONFIG|v2TrapDest" vrf`
101- v2Comm=` sonic-db-cli CONFIG_DB hget " SNMP_TRAP_CONFIG|v2TrapDest" Community`
102- v3SnmpTrapIp=` sonic-db-cli CONFIG_DB hget " SNMP_TRAP_CONFIG|v3TrapDest" DestIp`
103- v3SnmpTrapPort=` sonic-db-cli CONFIG_DB hget " SNMP_TRAP_CONFIG|v3TrapDest" DestPort`
104- v3Vrf=` sonic-db-cli CONFIG_DB hget " SNMP_TRAP_CONFIG|v3TrapDest" vrf`
105- v3Comm=` sonic-db-cli CONFIG_DB hget " SNMP_TRAP_CONFIG|v3TrapDest" Community`
106-
107- if [ " ${v1SnmpTrapIp} " != " " ]
108- then
109- if [ " ${v1Vrf} " != " None" ]
110- then
111- sed -i " s/v1_trap_dest:.*/v1_trap_dest: ${v1SnmpTrapIp} :${v1SnmpTrapPort} %${v1Vrf} ${v1Comm} /" " /etc/sonic/snmp.yml"
112- else
113- sed -i " s/v1_trap_dest:.*/v1_trap_dest: ${v1SnmpTrapIp} :${v1SnmpTrapPort} ${v1Comm} /" " /etc/sonic/snmp.yml"
114- fi
115- else
116- sed -i " s/v1_trap_dest:.*/v1_trap_dest: NotConfigured/" " /etc/sonic/snmp.yml"
117- fi
118- if [ " ${v2SnmpTrapIp} " != " " ]
119- then
120- if [ " ${v2Vrf} " != " None" ]
121- then
122- sed -i " s/v2_trap_dest:.*/v2_trap_dest: ${v2SnmpTrapIp} :${v2SnmpTrapPort} %${v2Vrf} ${v2Comm} /" " /etc/sonic/snmp.yml"
123- else
124- sed -i " s/v2_trap_dest:.*/v2_trap_dest: ${v2SnmpTrapIp} :${v2SnmpTrapPort} ${v2Comm} /" " /etc/sonic/snmp.yml"
125- fi
126- else
127- sed -i " s/v2_trap_dest:.*/v2_trap_dest: NotConfigured/" " /etc/sonic/snmp.yml"
128- fi
129- if [ " ${v3SnmpTrapIp} " != " " ]
130- then
131- if [ " ${v3Vrf} " != " None" ]
132- then
133- sed -i " s/v3_trap_dest:.*/v3_trap_dest: ${v3SnmpTrapIp} :${v3SnmpTrapPort} %${v3Vrf} ${v3Comm} /" " /etc/sonic/snmp.yml"
134- else
135- sed -i " s/v3_trap_dest:.*/v3_trap_dest: ${v3SnmpTrapIp} :${v3SnmpTrapPort} ${v3Comm} /" " /etc/sonic/snmp.yml"
136- fi
137- else
138- sed -i " s/v3_trap_dest:.*/v3_trap_dest: NotConfigured/" " /etc/sonic/snmp.yml"
139- fi
140-
141- echo -n " " > /tmp/snmpagentaddr.yml
142- # TODO
143- # we should avoid using 'keys' operation via redis-cli or sonic-db-cli
144- # there would be an issue when KEY in database contains space or '\n'
145- # for loop on the non-tty 'keys' output will take the space or `\n` as seperator when parsing the element
146- keys=` sonic-db-cli CONFIG_DB keys " SNMP_AGENT_ADDRESS_CONFIG|*" `
147- count=1
148- for key in $keys ; do
149- ip=` echo $key | cut -d " |" -f2`
150- echo -n " snmp_agent_address_$count : $ip " >> /tmp/snmpagentaddr.yml
151- port=` echo $key | cut -d " |" -f3`
152- if [ -n " $port " ]; then
153- echo -n " :$port " >> /tmp/snmpagentaddr.yml
154- fi
155- vrf=` echo $key | cut -d " |" -f4`
156- if [ -n " $vrf " ]; then
157- echo -n " %$vrf " >> /tmp/snmpagentaddr.yml
158- fi
159- echo " " >> /tmp/snmpagentaddr.yml
160- count=$(( count+ 1 ))
161- done
162- sed -i ' /snmp_agent_address_*/d' /etc/sonic/snmp.yml
163- cat /tmp/snmpagentaddr.yml >> /etc/sonic/snmp.yml
16493{%- else %}
16594 : # nothing
16695{%- endif %}
0 commit comments