Skip to content

Commit

Permalink
[docker-teamd]: Automatically start the processes after host interfac…
Browse files Browse the repository at this point in the history
…es are created (#278)

Signed-off-by: Shuotian Cheng <shuche@microsoft.com>
  • Loading branch information
Shuotian Cheng authored Feb 15, 2017
1 parent e702fc0 commit 877291a
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 14 deletions.
3 changes: 2 additions & 1 deletion dockers/docker-teamd/Dockerfile.j2
Original file line number Diff line number Diff line change
Expand Up @@ -19,4 +19,5 @@ COPY ["teamd.j2", "/etc/swss/teamd/"]
RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y
RUN rm -rf /debs

ENTRYPOINT /usr/bin/config.sh && /usr/bin/start.sh
ENTRYPOINT ["/bin/bash"]
CMD ["/usr/bin/config.sh && /usr/bin/start.sh"]
38 changes: 25 additions & 13 deletions dockers/docker-teamd/start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,23 +2,35 @@

TEAMD_CONF_PATH=/etc/teamd

function start_app {
if [ -d $TEAMD_CONF_PATH ]; then
for f in $TEAMD_CONF_PATH/*; do
teamd -f $f -d
done
fi
teamsyncd &
}

function clean_up {
pkill -9 teamd
pkill -9 teamsyncd
service rsyslog stop
exit
pkill -9 teamd
pkill -9 teamsyncd
service rsyslog stop
exit
}

trap clean_up SIGTERM SIGKILL

service rsyslog start

if [ -d $TEAMD_CONF_PATH ]; then
for f in $TEAMD_CONF_PATH/*; do
teamd -f $f -d
done
fi

teamsyncd &

read
# Before teamd could automatically add newly created host interfaces into the
# LAG, this workaround will wait until the host interfaces are created and then
# the processes will be started.
while true; do
# Check if front-panel ports are configured
result=`echo -en "SELECT 0\nHGETALL PORT_TABLE:ConfigDone" | redis-cli | sed -n 3p`
if [ "$result" != "0" ]; then
start_app
read
fi
sleep 1
done

0 comments on commit 877291a

Please sign in to comment.