61e9a7683c
* [y_cable] Support for initialization of new Daemon ycable to support ycables This PR also adds the commit in sonic-platform-daemons 94fa239 [y_cable] refactor y_cable to a seperate logic and new daemon from xcvrd (#219) Why I did it This PR separates the logic of Y-Cable from xcvrd. Before this change we were utilizing xcvrd daemon to control all aspects of Y-Cable right from initialization to processing requests from other entities like orch,linkmgr. Now we would have another daemon ycabled which will serve this purpose. Logically everything still remains the same from the perspective of other daemons. it also take care aspects like init/delete daemon from Y-Cable perspective. How I did it To serve the purpose we build a new wheel sonic_ycabled-1.0-py3-none-any.whl and install it inside pmon. We also initalize the daemon ycabled which serves our purpose for refactor inside pmon How to verify it Ran the changes with an image for dualtor tests on a 7050cx3 platform Signed-off-by: vaibhav-dahiya <vdahiya@microsoft.com>
114 lines
3.8 KiB
Django/Jinja
Executable File
114 lines
3.8 KiB
Django/Jinja
Executable File
#!/usr/bin/env bash
|
|
|
|
# Generate supervisord config file and the start.sh scripts
|
|
mkdir -p /etc/supervisor/conf.d/
|
|
|
|
SENSORS_CONF_FILE="/usr/share/sonic/platform/sensors.conf"
|
|
FANCONTROL_CONF_FILE="/usr/share/sonic/platform/fancontrol"
|
|
|
|
SUPERVISOR_CONF_TEMPLATE="/usr/share/sonic/templates/docker-pmon.supervisord.conf.j2"
|
|
SUPERVISOR_CONF_FILE="/etc/supervisor/conf.d/supervisord.conf"
|
|
PMON_DAEMON_CONTROL_FILE="/usr/share/sonic/platform/pmon_daemon_control.json"
|
|
MODULAR_CHASSISDB_CONF_FILE="/usr/share/sonic/platform/chassisdb.conf"
|
|
|
|
HAVE_SENSORS_CONF=0
|
|
HAVE_FANCONTROL_CONF=0
|
|
IS_MODULAR_CHASSIS=0
|
|
# Default use python2 version
|
|
SONIC_PLATFORM_API_PYTHON_VERSION=2
|
|
|
|
declare -r EXIT_SUCCESS="0"
|
|
|
|
if [ "${RUNTIME_OWNER}" == "" ]; then
|
|
RUNTIME_OWNER="kube"
|
|
fi
|
|
|
|
CTR_SCRIPT="/usr/share/sonic/scripts/container_startup.py"
|
|
if test -f ${CTR_SCRIPT}
|
|
then
|
|
${CTR_SCRIPT} -f pmon -o ${RUNTIME_OWNER} -v ${IMAGE_VERSION}
|
|
fi
|
|
|
|
mkdir -p /var/sonic
|
|
echo "# Config files managed by sonic-config-engine" > /var/sonic/config_status
|
|
|
|
# If this platform has synchronization script, run it
|
|
if [ -e /usr/share/sonic/platform/platform_wait ]; then
|
|
/usr/share/sonic/platform/platform_wait
|
|
EXIT_CODE="$?"
|
|
if [ "${EXIT_CODE}" != "${EXIT_SUCCESS}" ]; then
|
|
exit "${EXIT_CODE}"
|
|
fi
|
|
fi
|
|
|
|
# If the Python 2 sonic-platform package is not installed, try to install it
|
|
python2 -c "import sonic_platform" > /dev/null 2>&1 || pip2 show sonic-platform > /dev/null 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
SONIC_PLATFORM_WHEEL="/usr/share/sonic/platform/sonic_platform-1.0-py2-none-any.whl"
|
|
echo "sonic-platform package not installed, attempting to install..."
|
|
if [ -e ${SONIC_PLATFORM_WHEEL} ]; then
|
|
pip2 install ${SONIC_PLATFORM_WHEEL}
|
|
if [ $? -eq 0 ]; then
|
|
echo "Successfully installed ${SONIC_PLATFORM_WHEEL}"
|
|
else
|
|
echo "Error: Failed to install ${SONIC_PLATFORM_WHEEL}"
|
|
fi
|
|
else
|
|
echo "Error: Unable to locate ${SONIC_PLATFORM_WHEEL}"
|
|
fi
|
|
fi
|
|
|
|
# If the Python 3 sonic-platform package is not installed, try to install it
|
|
python3 -c "import sonic_platform" > /dev/null 2>&1 || pip3 show sonic-platform > /dev/null 2>&1
|
|
if [ $? -ne 0 ]; then
|
|
SONIC_PLATFORM_WHEEL="/usr/share/sonic/platform/sonic_platform-1.0-py3-none-any.whl"
|
|
echo "sonic-platform package not installed, attempting to install..."
|
|
if [ -e ${SONIC_PLATFORM_WHEEL} ]; then
|
|
pip3 install ${SONIC_PLATFORM_WHEEL}
|
|
if [ $? -eq 0 ]; then
|
|
echo "Successfully installed ${SONIC_PLATFORM_WHEEL}"
|
|
SONIC_PLATFORM_API_PYTHON_VERSION=3
|
|
else
|
|
echo "Error: Failed to install ${SONIC_PLATFORM_WHEEL}"
|
|
fi
|
|
else
|
|
echo "Error: Unable to locate ${SONIC_PLATFORM_WHEEL}"
|
|
fi
|
|
else
|
|
SONIC_PLATFORM_API_PYTHON_VERSION=3
|
|
fi
|
|
|
|
{% if CONFIGURED_PLATFORM == "mellanox" %}
|
|
SENSORS_CONF_PATH_GETTER="/usr/share/sonic/platform/get_sensors_conf_path"
|
|
if [ -e $SENSORS_CONF_PATH_GETTER ]; then
|
|
SENSORS_CONF_FILE=$($SENSORS_CONF_PATH_GETTER 2>&1)
|
|
fi
|
|
{% endif %}
|
|
|
|
if [ -e $SENSORS_CONF_FILE ]; then
|
|
HAVE_SENSORS_CONF=1
|
|
mkdir -p /etc/sensors.d
|
|
/bin/cp -f $SENSORS_CONF_FILE /etc/sensors.d/sensors.conf
|
|
fi
|
|
|
|
if [ -e $FANCONTROL_CONF_FILE ]; then
|
|
HAVE_FANCONTROL_CONF=1
|
|
rm -f /var/run/fancontrol.pid
|
|
/bin/cp -f $FANCONTROL_CONF_FILE /etc/
|
|
fi
|
|
|
|
if [ -e $MODULAR_CHASSISDB_CONF_FILE ]; then
|
|
IS_MODULAR_CHASSIS=1
|
|
fi
|
|
|
|
confvar="{\"HAVE_SENSORS_CONF\":$HAVE_SENSORS_CONF, \"HAVE_FANCONTROL_CONF\":$HAVE_FANCONTROL_CONF, \"API_VERSION\":$SONIC_PLATFORM_API_PYTHON_VERSION, \"IS_MODULAR_CHASSIS\":$IS_MODULAR_CHASSIS}"
|
|
|
|
if [ -e $PMON_DAEMON_CONTROL_FILE ];
|
|
then
|
|
sonic-cfggen -d -j $PMON_DAEMON_CONTROL_FILE -a "$confvar" -t $SUPERVISOR_CONF_TEMPLATE > $SUPERVISOR_CONF_FILE
|
|
else
|
|
sonic-cfggen -d -a "$confvar" -t $SUPERVISOR_CONF_TEMPLATE > $SUPERVISOR_CONF_FILE
|
|
fi
|
|
|
|
exec /usr/local/bin/supervisord
|