- Add a functionality to get SNMP community from DHCP (option 224) - Add a functionality to get minigraph from http service instead of using default minigraph - The url for graph service is passed through DHCP option 225 - This feature is by default disabled. Modify rule/config to enable it on build time, or modify /etc/sonic/graph_service_url on run time. - Fix a bug that getting hostname from DHCP is not working correctly
51 lines
1.4 KiB
Bash
Executable File
51 lines
1.4 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
if [ ! -f /etc/sonic/updategraph.conf ]; then
|
|
echo "No updategraph.conf found, generating a default one."
|
|
echo "enabled=false" >/etc/sonic/updategraph.conf
|
|
fi
|
|
|
|
. /etc/sonic/updategraph.conf
|
|
|
|
if [ "$enabled" != "true" ]; then
|
|
echo "Disabled in updategraph.conf. Skipping graph update."
|
|
exit 0
|
|
fi
|
|
|
|
if [ "$src" = "dhcp" ]; then
|
|
while [ ! -f /tmp/dhcp_graph_url ]; do
|
|
echo "Waiting for DHCP response..."
|
|
sleep 1
|
|
done
|
|
|
|
if [ "`cat /tmp/dhcp_graph_url`" = "N/A" ]; then
|
|
echo "No graph_url option in DHCP response. Skipping graph update."
|
|
if [ "$dhcp_as_static" = "true" ]; then
|
|
sed -i "/enabled=/d" /etc/sonic/updategraph.conf
|
|
echo "enabled=false" >> /etc/sonic/updategraph.conf
|
|
fi
|
|
exit 0
|
|
fi
|
|
|
|
HOSTNAME=`hostname -s`
|
|
GRAPH_URL=`sonic-cfggen -t /tmp/dhcp_graph_url -a "{\"hostname\": \"$HOSTNAME\"}"`
|
|
if [ "$dhcp_as_static" = "true" ]; then
|
|
sed -i "/src=d/d" /etc/sonic/updategraph.conf
|
|
echo "src=$GRAPH_URL" >> /etc/sonic/updategraph.conf
|
|
fi
|
|
else
|
|
GRAPH_URL=$src
|
|
fi
|
|
|
|
if [ -f /etc/sonic/minigraph.xml ]; then
|
|
echo "Renaming minigraph.xml to minigraph.old"
|
|
mv /etc/sonic/minigraph.xml /etc/sonic/minigraph.old
|
|
fi
|
|
|
|
echo "Getting minigraph from $GRAPH_URL"
|
|
|
|
while true; do
|
|
curl -f $GRAPH_URL -o /etc/sonic/minigraph.xml --connect-timeout 15 && break
|
|
sleep 5
|
|
done
|