This repository has been archived on 2025-03-20. You can view files and clone it, but cannot push or open issues or pull requests.
sonic-buildimage/files/image_config/updategraph/updategraph
Taoyu Li 873f6f8fb6 [oneimage] Check if graph service address got from dhcp is valid url (#324)
* [oneimage] Check if graph service address got from dhcp is valid url
2017-02-23 13:12:54 -08:00

56 lines
1.6 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\"}"`
URL_REGEX='^(https?|ftp|file)://[-A-Za-z0-9\+&@#/%?=~_|!:,.;]*[-A-Za-z0-9\+&@#/%=~_|]$'
if [[ ! $GRAPH_URL =~ $URL_REGEX ]]; then
echo "\"$GRAPH_URL\" is not a valid url. Skipping graph update."
exit 0
fi
if [ "$dhcp_as_static" = "true" ]; then
sed -i "/src=/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