f2a258aca9
On Arista platforms, sonic_platform packages are not installed in the PMon container, but are rather mounted into the container from the host OS. Therefore, pip show sonic_platform will fail in the PMon container. This change will first check if we can import sonic_platform. If this fails, it will then fall back to checking if the package is installed. If both fail, it will attempt to install the package.
51 lines
1.8 KiB
Bash
Executable File
51 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
declare -r EXIT_SUCCESS="0"
|
|
|
|
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
|
|
supervisorctl shutdown
|
|
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}"
|
|
else
|
|
echo "Error: Failed to install ${SONIC_PLATFORM_WHEEL}"
|
|
fi
|
|
else
|
|
echo "Error: Unable to locate ${SONIC_PLATFORM_WHEEL}"
|
|
fi
|
|
fi
|