From fcfcc9446730b2411459539ccbce8746277aac8f Mon Sep 17 00:00:00 2001 From: kwangsuk Date: Fri, 30 Oct 2020 15:47:23 -0700 Subject: [PATCH 01/11] update the sonic-cli script --- .../base_image_files/sonic-cli | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/dockers/docker-sonic-mgmt-framework/base_image_files/sonic-cli b/dockers/docker-sonic-mgmt-framework/base_image_files/sonic-cli index 6675e3badbaf..12a22709590d 100755 --- a/dockers/docker-sonic-mgmt-framework/base_image_files/sonic-cli +++ b/dockers/docker-sonic-mgmt-framework/base_image_files/sonic-cli @@ -1,4 +1,21 @@ #!/bin/bash -docker exec -it mgmt-framework /usr/sbin/cli/clish_start "$@" - +# Disallow CLI for the root user, since we don't have auth certs for root +if [[ "$(id -u)" == 0 ]] +then + echo "FATAL: root cannot launch CLI" >&2 + exit 1 +fi +TIMEOUT=605 +if [[ "$1" =~ "prompt=" ]] +then + SYSTEM_NAME=`echo $1 | cut -d"=" -f2` + shift + docker exec -e SYSTEM_NAME=$SYSTEM_NAME -e CLI_USER="$USER" -u $(id -u):$(id -g) -it mgmt-framework /usr/sbin/cli/clish_start -t "$TIMEOUT" "$@" +else + docker exec -e CLI_USER="$USER" -e SYSTEM_NAME=$HOSTNAME -u $(id -u):$(id -g) -it mgmt-framework /usr/sbin/cli/clish_start -t "$TIMEOUT" "$@" +fi +ret=$? +if [ $ret -ne 0 ]; then + [[ -e /tmp/fast-reboot-progress || -e /tmp/reboot-progress ]] && sleep infinity +fi From 3aa981d12daf22db4da138345c034eaa48c66649 Mon Sep 17 00:00:00 2001 From: Kwan Kim Date: Thu, 5 Nov 2020 09:56:17 -0800 Subject: [PATCH 02/11] add dependent libraries for Klish upgrade --- dockers/docker-sonic-mgmt-framework/Dockerfile.j2 | 2 ++ sonic-slave-buster/Dockerfile.j2 | 3 ++- sonic-slave-stretch/Dockerfile.j2 | 3 ++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 index 24ae3643b36e..b1c76a4c7cf5 100644 --- a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 +++ b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 @@ -17,6 +17,8 @@ RUN pip install connexion==1.1.15 \ six==1.11.0 \ urllib3==1.21.1 +RUN apt-get -y install libcurl3-gnutls libpython2.7 + COPY \ {% for deb in docker_sonic_mgmt_framework_debs.split(' ') -%} debs/{{ deb }}{{' '}} diff --git a/sonic-slave-buster/Dockerfile.j2 b/sonic-slave-buster/Dockerfile.j2 index 03dae31ecd46..862daf40f440 100644 --- a/sonic-slave-buster/Dockerfile.j2 +++ b/sonic-slave-buster/Dockerfile.j2 @@ -305,7 +305,8 @@ RUN apt-get update && apt-get install -y \ libxml2-utils \ xsltproc \ python-lxml \ - libexpat1-dev + libexpat1-dev \ + libcurl3-gnutls ## Config dpkg ## install the configuration file if it’s currently missing diff --git a/sonic-slave-stretch/Dockerfile.j2 b/sonic-slave-stretch/Dockerfile.j2 index 276bdcbbc1dd..19b313d9a886 100644 --- a/sonic-slave-stretch/Dockerfile.j2 +++ b/sonic-slave-stretch/Dockerfile.j2 @@ -298,7 +298,8 @@ RUN apt-get update && apt-get install -y \ libxml2-utils \ xsltproc \ python-lxml \ - libexpat1-dev + libexpat1-dev \ + libcurl3-gnutls ## Config dpkg ## install the configuration file if it’s currently missing From d3b119128776f47ca84e9089d766b5ab93e854fa Mon Sep 17 00:00:00 2001 From: Kwan Kim Date: Thu, 12 Nov 2020 18:25:12 -0800 Subject: [PATCH 03/11] add the dependent package libcjson --- dockers/docker-sonic-mgmt-framework/Dockerfile.j2 | 2 +- sonic-slave-buster/Dockerfile.j2 | 3 ++- sonic-slave-stretch/Dockerfile.j2 | 3 +-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 index b1c76a4c7cf5..4c8dd478a9a3 100644 --- a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 +++ b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 @@ -7,7 +7,7 @@ RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%s ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ - apt-get install -y g++ python-dev libxml2 + apt-get install -y g++ python-dev libxml2 libcurl3-gnutls libpython2.7 libcjson-dev RUN pip install connexion==1.1.15 \ setuptools==21.0.0 \ diff --git a/sonic-slave-buster/Dockerfile.j2 b/sonic-slave-buster/Dockerfile.j2 index 862daf40f440..7e1290e986a2 100644 --- a/sonic-slave-buster/Dockerfile.j2 +++ b/sonic-slave-buster/Dockerfile.j2 @@ -306,7 +306,8 @@ RUN apt-get update && apt-get install -y \ xsltproc \ python-lxml \ libexpat1-dev \ - libcurl3-gnutls + libcurl3-gnutls \ + libcjson-dev ## Config dpkg ## install the configuration file if it’s currently missing diff --git a/sonic-slave-stretch/Dockerfile.j2 b/sonic-slave-stretch/Dockerfile.j2 index 19b313d9a886..276bdcbbc1dd 100644 --- a/sonic-slave-stretch/Dockerfile.j2 +++ b/sonic-slave-stretch/Dockerfile.j2 @@ -298,8 +298,7 @@ RUN apt-get update && apt-get install -y \ libxml2-utils \ xsltproc \ python-lxml \ - libexpat1-dev \ - libcurl3-gnutls + libexpat1-dev ## Config dpkg ## install the configuration file if it’s currently missing From 55c5126618de0115198856f5a2d6fd76fbfd1997 Mon Sep 17 00:00:00 2001 From: Kwan Kim Date: Thu, 12 Nov 2020 21:36:58 -0800 Subject: [PATCH 04/11] remove redudandt install --- dockers/docker-sonic-mgmt-framework/Dockerfile.j2 | 2 -- 1 file changed, 2 deletions(-) diff --git a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 index 4c8dd478a9a3..735623aa20ee 100644 --- a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 +++ b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 @@ -17,8 +17,6 @@ RUN pip install connexion==1.1.15 \ six==1.11.0 \ urllib3==1.21.1 -RUN apt-get -y install libcurl3-gnutls libpython2.7 - COPY \ {% for deb in docker_sonic_mgmt_framework_debs.split(' ') -%} debs/{{ deb }}{{' '}} From 3fa0a721edb6b10dd58a9774dddd047a267c413b Mon Sep 17 00:00:00 2001 From: kwangsuk Date: Sat, 5 Dec 2020 22:04:39 -0800 Subject: [PATCH 05/11] migrate sonic-cli to python3 --- dockers/docker-sonic-mgmt-framework/Dockerfile.j2 | 9 ++++++--- src/sonic-mgmt-common | 2 +- src/sonic-mgmt-framework | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 index 735623aa20ee..9623d81c2028 100644 --- a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 +++ b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 @@ -7,9 +7,9 @@ RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%s ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ - apt-get install -y g++ python-dev libxml2 libcurl3-gnutls libpython2.7 libcjson-dev + apt-get install -y g++ python3-dev libxml2 libcurl3-gnutls libcjson-dev -RUN pip install connexion==1.1.15 \ +RUN python3 -m pip install connexion==1.1.15 \ setuptools==21.0.0 \ grpcio-tools==1.20.0 \ certifi==2017.4.17 \ @@ -32,8 +32,11 @@ COPY ["start.sh", "rest-server.sh", "/usr/bin/"] COPY ["mgmt_vars.j2", "/usr/share/sonic/templates/"] COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] -RUN apt-get remove -y g++ python-dev +RUN apt-get remove -y g++ RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs +RUN ln -sf /host_etc/passwd /etc/passwd +RUN ln -sf /host_etc/group /etc/group + ENTRYPOINT ["/usr/bin/supervisord"] diff --git a/src/sonic-mgmt-common b/src/sonic-mgmt-common index cc01ce40ac27..86c110812583 160000 --- a/src/sonic-mgmt-common +++ b/src/sonic-mgmt-common @@ -1 +1 @@ -Subproject commit cc01ce40ac27c90fa83407081bbae3378d3f4db8 +Subproject commit 86c110812583d0132d6504a1e74eb0337f521fde diff --git a/src/sonic-mgmt-framework b/src/sonic-mgmt-framework index 3c3384cec8d1..bd6e93c554e2 160000 --- a/src/sonic-mgmt-framework +++ b/src/sonic-mgmt-framework @@ -1 +1 @@ -Subproject commit 3c3384cec8d15e493e6889bff6361a5a280a8811 +Subproject commit bd6e93c554e29ece6b5a0aad29c9214d293830b7 From b7a8a54419e381b1e7755f0f56c03cf8d8fbe798 Mon Sep 17 00:00:00 2001 From: kwangsuk Date: Sat, 5 Dec 2020 22:20:10 -0800 Subject: [PATCH 06/11] Revert "migrate sonic-cli to python3" This reverts commit 3fa0a721edb6b10dd58a9774dddd047a267c413b. --- dockers/docker-sonic-mgmt-framework/Dockerfile.j2 | 9 +++------ src/sonic-mgmt-common | 2 +- src/sonic-mgmt-framework | 2 +- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 index 9623d81c2028..735623aa20ee 100644 --- a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 +++ b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 @@ -7,9 +7,9 @@ RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%s ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ - apt-get install -y g++ python3-dev libxml2 libcurl3-gnutls libcjson-dev + apt-get install -y g++ python-dev libxml2 libcurl3-gnutls libpython2.7 libcjson-dev -RUN python3 -m pip install connexion==1.1.15 \ +RUN pip install connexion==1.1.15 \ setuptools==21.0.0 \ grpcio-tools==1.20.0 \ certifi==2017.4.17 \ @@ -32,11 +32,8 @@ COPY ["start.sh", "rest-server.sh", "/usr/bin/"] COPY ["mgmt_vars.j2", "/usr/share/sonic/templates/"] COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] -RUN apt-get remove -y g++ +RUN apt-get remove -y g++ python-dev RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -RUN ln -sf /host_etc/passwd /etc/passwd -RUN ln -sf /host_etc/group /etc/group - ENTRYPOINT ["/usr/bin/supervisord"] diff --git a/src/sonic-mgmt-common b/src/sonic-mgmt-common index 86c110812583..cc01ce40ac27 160000 --- a/src/sonic-mgmt-common +++ b/src/sonic-mgmt-common @@ -1 +1 @@ -Subproject commit 86c110812583d0132d6504a1e74eb0337f521fde +Subproject commit cc01ce40ac27c90fa83407081bbae3378d3f4db8 diff --git a/src/sonic-mgmt-framework b/src/sonic-mgmt-framework index bd6e93c554e2..3c3384cec8d1 160000 --- a/src/sonic-mgmt-framework +++ b/src/sonic-mgmt-framework @@ -1 +1 @@ -Subproject commit bd6e93c554e29ece6b5a0aad29c9214d293830b7 +Subproject commit 3c3384cec8d15e493e6889bff6361a5a280a8811 From cfd9d53ee8aa7cd85d2cc9c07ed1fe3e68b60537 Mon Sep 17 00:00:00 2001 From: kwangsuk Date: Sat, 5 Dec 2020 23:16:26 -0800 Subject: [PATCH 07/11] migrate sonic-cli to python3 upport --- dockers/docker-sonic-mgmt-framework/Dockerfile.j2 | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 index 735623aa20ee..9623d81c2028 100644 --- a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 +++ b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 @@ -7,9 +7,9 @@ RUN [ -f /etc/rsyslog.conf ] && sed -ri "s/%syslogtag%/$docker_container_name#%s ENV DEBIAN_FRONTEND=noninteractive RUN apt-get update && \ - apt-get install -y g++ python-dev libxml2 libcurl3-gnutls libpython2.7 libcjson-dev + apt-get install -y g++ python3-dev libxml2 libcurl3-gnutls libcjson-dev -RUN pip install connexion==1.1.15 \ +RUN python3 -m pip install connexion==1.1.15 \ setuptools==21.0.0 \ grpcio-tools==1.20.0 \ certifi==2017.4.17 \ @@ -32,8 +32,11 @@ COPY ["start.sh", "rest-server.sh", "/usr/bin/"] COPY ["mgmt_vars.j2", "/usr/share/sonic/templates/"] COPY ["supervisord.conf", "/etc/supervisor/conf.d/"] -RUN apt-get remove -y g++ python-dev +RUN apt-get remove -y g++ RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs +RUN ln -sf /host_etc/passwd /etc/passwd +RUN ln -sf /host_etc/group /etc/group + ENTRYPOINT ["/usr/bin/supervisord"] From c094f752985522bb571b70d057e878f17d798c2f Mon Sep 17 00:00:00 2001 From: kwangsuk Date: Mon, 7 Dec 2020 18:33:11 -0800 Subject: [PATCH 08/11] pip3 install mmh3 --- sonic-slave-buster/Dockerfile.j2 | 1 + 1 file changed, 1 insertion(+) diff --git a/sonic-slave-buster/Dockerfile.j2 b/sonic-slave-buster/Dockerfile.j2 index eabdf98ed2d6..b825f2727cad 100644 --- a/sonic-slave-buster/Dockerfile.j2 +++ b/sonic-slave-buster/Dockerfile.j2 @@ -405,6 +405,7 @@ RUN pip3 install pyang==2.1.1 # For mgmt-framework build RUN pip2 install mmh3 +RUN pip3 install mmh3 RUN apt-get install -y xsltproc # Install dependencies for isc-dhcp-relay build From 0d0a847f3c2e97739692251fff17263dcf8b8ce9 Mon Sep 17 00:00:00 2001 From: Kwan Date: Wed, 6 Jan 2021 14:44:27 -0800 Subject: [PATCH 09/11] Update Dockerfile.j2 Removed the lines accidentally added from other branch. --- dockers/docker-sonic-mgmt-framework/Dockerfile.j2 | 3 --- 1 file changed, 3 deletions(-) diff --git a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 index 51e69b4c2759..a9a9beaa7585 100644 --- a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 +++ b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 @@ -36,7 +36,4 @@ RUN apt-get remove -y g++ python3-dev RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs -RUN ln -sf /host_etc/passwd /etc/passwd -RUN ln -sf /host_etc/group /etc/group - ENTRYPOINT ["/usr/local/bin/supervisord"] From 182e6fc93254aa37a2c401435ed699316b283441 Mon Sep 17 00:00:00 2001 From: Kwan Date: Wed, 6 Jan 2021 16:55:23 -0800 Subject: [PATCH 10/11] Update Dockerfile.j2 Revert the change to keep the links for CLI authentication. We need to bring in CA certificate changes to replace these files. --- dockers/docker-sonic-mgmt-framework/Dockerfile.j2 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 index a9a9beaa7585..a974d6a6207c 100644 --- a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 +++ b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 @@ -36,4 +36,7 @@ RUN apt-get remove -y g++ python3-dev RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs +RUN ln -sf /host_etc/passwd /etc/passwd +RUN ln -sf /host_etc/group /etc/group + ENTRYPOINT ["/usr/local/bin/supervisord"] From 43c95f39ae46fe1409042157c3d5400947059fc8 Mon Sep 17 00:00:00 2001 From: kwangsuk Date: Tue, 1 Jun 2021 07:48:06 -0700 Subject: [PATCH 11/11] add the TODO comment to remove soft links --- dockers/docker-sonic-mgmt-framework/Dockerfile.j2 | 1 + 1 file changed, 1 insertion(+) diff --git a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 index a974d6a6207c..50854949c893 100644 --- a/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 +++ b/dockers/docker-sonic-mgmt-framework/Dockerfile.j2 @@ -36,6 +36,7 @@ RUN apt-get remove -y g++ python3-dev RUN apt-get clean -y; apt-get autoclean -y; apt-get autoremove -y RUN rm -rf /debs +## TODO: symbolic links will be removed when AAA improvements get merged RUN ln -sf /host_etc/passwd /etc/passwd RUN ln -sf /host_etc/group /etc/group