Enhance the error message output mechanism (#14384)

#### Why I did it

Enhance the error message output mechanism during swss docker creating

#### How I did it

Capture the output to stderr of `sonic-cfggen` and output it using `echo` to make sure the error message will be logged in syslog.

#### How to verify it

Manually test
This commit is contained in:
Stephen Sun 2023-04-08 05:23:35 +08:00 committed by mssonicbld
parent d859a4ed5b
commit 1d3fa0b03c

View File

@ -418,13 +418,25 @@ start() {
{%- if docker_container_name == "swss" %}
# Generate the asic_table.json and peripheral_table.json
if [ ! -f /etc/sonic/asic_table.json ] && [ -f /usr/share/sonic/templates/asic_table.j2 ]; then
sonic-cfggen -d -t /usr/share/sonic/templates/asic_table.j2 > /etc/sonic/asic_table.json
sonic-cfggen -d -t /usr/share/sonic/templates/asic_table.j2 > /etc/sonic/asic_table.json 2> errorlog.txt
if [[ $? -ne 0 ]] ; then
echo "sonic-cfggen failed to render asic_table.json"
echo "$(cat errorlog.txt)"
fi
fi
if [ ! -f /etc/sonic/peripheral_table.json ] && [ -f /usr/share/sonic/device/$PLATFORM/port_peripheral_config.j2 ]; then
sonic-cfggen -d -t /usr/share/sonic/device/$PLATFORM/port_peripheral_config.j2 > /etc/sonic/peripheral_table.json
sonic-cfggen -d -t /usr/share/sonic/device/$PLATFORM/port_peripheral_config.j2 > /etc/sonic/peripheral_table.json 2> errorlog.txt
if [[ $? -ne 0 ]] ; then
echo "sonic-cfggen failed to render peripheral_table.json"
echo "$(cat errorlog.txt)"
fi
fi
if [ ! -f /etc/sonic/zero_profiles.json ] && [ -f /usr/share/sonic/templates/zero_profiles.j2 ]; then
sonic-cfggen -d -t /usr/share/sonic/device/$PLATFORM/zero_profiles.j2 > /etc/sonic/zero_profiles.json
sonic-cfggen -d -t /usr/share/sonic/device/$PLATFORM/zero_profiles.j2 > /etc/sonic/zero_profiles.json 2> errorlog.txt
if [[ $? -ne 0 ]] ; then
echo "sonic-cfggen failed to render zero_profiles.json"
echo "$(cat errorlog.txt)"
fi
fi
{%- if enable_asan == "y" %}