#!/bin/bash # read SONiC immutable variables [ -f /etc/sonic/sonic-environment ] && . /etc/sonic/sonic-environment 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" = "reload_only" ]; then echo "reload_only will not be supported in file updategraph.conf" exit 1 fi if [ "$enabled" != "true" ]; then echo "Disabled in updategraph.conf. Skipping graph update." exit 0 fi # If ZTP package is available and enabled, use ZTP to download and load the graph. if [ -e /usr/bin/ztp ] && [ "$(ztp status -c)" != "0:DISABLED" ]; then echo "ZTP is available and enabled. Skipping graph update." exit 0 fi # "`cat /tmp/dhcp_graph_url`" is always "N/A" echo "No graph_url option in DHCP response. Skipping graph update and generating an empty configuration." PLATFORM=${PLATFORM:-`sonic-cfggen -H -v DEVICE_METADATA.localhost.platform`} if [ -f /etc/sonic/minigraph.xml ]; then sonic-cfggen -H -m /etc/sonic/minigraph.xml --preset empty > /tmp/device_meta.json else PRESET=(`head -n 1 /usr/share/sonic/device/$PLATFORM/default_sku`) sonic-cfggen -H -k ${PRESET[0]} --preset empty > /tmp/device_meta.json fi if [ -f /etc/sonic/init_cfg.json ]; then sonic-cfggen -j /tmp/device_meta.json -j /etc/sonic/init_cfg.json --print-data > /etc/sonic/config_db.json else cp -f /tmp/device_meta.json /etc/sonic/config_db.json fi sonic-db-cli CONFIG_DB FLUSHDB sonic-cfggen -j /etc/sonic/config_db.json --write-to-db sonic-db-cli CONFIG_DB SET "CONFIG_DB_INITIALIZED" "1" if [ "$dhcp_as_static" = "true" ]; then sed -i "/enabled=/d" /etc/sonic/updategraph.conf echo "enabled=false" >> /etc/sonic/updategraph.conf fi exit 0