diff --git a/docker/test/Dockerfile b/docker/test/Dockerfile index 6de9a435..3afa9cbf 100644 --- a/docker/test/Dockerfile +++ b/docker/test/Dockerfile @@ -44,17 +44,13 @@ RUN apk add --update net-snmp net-snmp-dev # Checkout standard YANG models for tests (note >1G for full repo) RUN mkdir -p /usr/local/share/yang - WORKDIR /usr/local/share/yang +COPY yang . -RUN git config --global init.defaultBranch master -RUN git init; -RUN git remote add -f origin https://github.com/YangModels/yang; -RUN git config core.sparseCheckout true -RUN echo "standard/" >> .git/info/sparse-checkout -RUN echo "experimental/" >> .git/info/sparse-checkout - -RUN git pull origin main +# Checkout OPENCONFIG YANG models for tests +RUN mkdir -p /usr/local/share/openconfig +WORKDIR /usr/local/share/openconfig +COPY openconfig . # Create a directory to hold source-code, dependencies etc RUN mkdir -p /clixon/build @@ -126,7 +122,9 @@ RUN adduser -D -H clicon COPY --from=0 /clixon/build/ / COPY --from=0 /usr/local/share/yang/ /usr/local/share/yang/ +COPY --from=0 /usr/local/share/openconfig/* /usr/local/share/openconfig/ COPY --from=0 /usr/local/share/mib-yangs/* /usr/local/share/mib-yangs/ +COPY --from=0 /clixon/build/mibs/* /usr/share/snmp/mibs/ # Log to stderr. CMD /usr/local/bin/startsystem.sh diff --git a/docker/test/Dockerfile.fcgi b/docker/test/Dockerfile.fcgi index be67f5e3..82522de3 100644 --- a/docker/test/Dockerfile.fcgi +++ b/docker/test/Dockerfile.fcgi @@ -43,23 +43,13 @@ RUN apk add --update net-snmp net-snmp-dev # Checkout standard YANG models for tests (note >1G for full repo) RUN mkdir -p /usr/local/share/yang - WORKDIR /usr/local/share/yang +COPY yang . -RUN git config --global init.defaultBranch master -RUN git init -RUN git remote add -f origin https://github.com/YangModels/yang -RUN git config core.sparseCheckout true -RUN echo "standard/" >> .git/info/sparse-checkout -RUN echo "experimental/" >> .git/info/sparse-checkout - -RUN git pull origin main - +# Checkout OPENCONFIG YANG models for tests RUN mkdir -p /usr/local/share/openconfig WORKDIR /usr/local/share/openconfig - -# Checkut Openconfig models for tests -RUN git clone https://github.com/openconfig/public +COPY openconfig . # Create a directory to hold source-code, dependencies etc RUN mkdir -p /clixon/build @@ -156,6 +146,7 @@ RUN adduser www-data clicon COPY --from=0 /clixon/build/ / COPY --from=0 /usr/local/share/yang/ /usr/local/share/yang/ +COPY --from=0 /usr/local/share/openconfig/* /usr/local/share/openconfig/ COPY --from=0 /usr/local/share/mib-yangs/* /usr/local/share/mib-yangs/ COPY --from=0 /clixon/build/mibs/* /usr/share/snmp/mibs/ diff --git a/docker/test/Dockerfile.native b/docker/test/Dockerfile.native index 7706770b..e8dfc977 100644 --- a/docker/test/Dockerfile.native +++ b/docker/test/Dockerfile.native @@ -46,23 +46,13 @@ RUN apk add --update net-snmp net-snmp-dev # Checkout standard YANG models for tests (note >1G for full repo) RUN mkdir -p /usr/local/share/yang - WORKDIR /usr/local/share/yang +COPY yang . -RUN git config --global init.defaultBranch master -RUN git init -RUN git remote add -f origin https://github.com/YangModels/yang -RUN git config core.sparseCheckout true -RUN echo "standard/" >> .git/info/sparse-checkout -RUN echo "experimental/" >> .git/info/sparse-checkout - -RUN git pull origin main - +# Checkout OPENCONFIG YANG models for tests RUN mkdir -p /usr/local/share/openconfig WORKDIR /usr/local/share/openconfig - -# Checkut Openconfig models for tests -RUN git clone https://github.com/openconfig/public +COPY openconfig . # Create a directory to hold source-code, dependencies etc RUN mkdir -p /clixon/build diff --git a/docker/test/Makefile.in b/docker/test/Makefile.in index 1faf066b..c151c2c0 100644 --- a/docker/test/Makefile.in +++ b/docker/test/Makefile.in @@ -66,12 +66,18 @@ clixon: git clone file://$(realpath ${top_srcdir}) clean: - rm -rf clixon # clone of top-srcdir + rm -rf clixon yang openconfig distclean: clean rm -f Makefile *~ .depend -docker: clixon $(DOCKERFILE) +yang: + ./getyang.sh + +openconfig: + ./getopenconfig.sh + +docker: clixon yang openconfig $(DOCKERFILE) sudo docker build -f $(DOCKERFILE) -t $(IMG) $(DOCKERFLAGS) . push: diff --git a/docker/test/getopenconfig.sh b/docker/test/getopenconfig.sh new file mode 100755 index 00000000..7e3130fb --- /dev/null +++ b/docker/test/getopenconfig.sh @@ -0,0 +1,14 @@ +#!/usr/bin/env bash +# Script to get openconfig, either from local installation, or from remote +# This is an optimization from always getting it from github inside the dockerfile +if [ -d openconfig ]; then + rm -rf openconfig +fi +mkdir -p openconfig + +if [ -d /usr/local/share/openconfig ]; then + cp -R /usr/local/share/openconfig openconfig/ +else + (cd openconfig && git clone https://github.com/openconfig/public) +fi + diff --git a/docker/test/getyang.sh b/docker/test/getyang.sh new file mode 100755 index 00000000..64a4a184 --- /dev/null +++ b/docker/test/getyang.sh @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +# Script to get yangmodels, either from local installation, or from remote +# This is an optimization from always getting it from github inside the dockerfile +if [ -d yang ]; then + rm -rf yang +fi +mkdir -p yang/standard +if [ -d /usr/local/share/yang/standard ]; then + cp -R /usr/local/share/yang/standard yang/ +else + cd yang + git init + git remote add -f origin https://github.com/YangModels/yang + git config core.sparseCheckout true + echo "standard/" >> .git/info/sparse-checkout + echo "experimental/" >> .git/info/sparse-checkout + git pull origin main +fi + diff --git a/docker/test/startsystem.sh b/docker/test/startsystem.sh index f02c6715..7f36a021 100755 --- a/docker/test/startsystem.sh +++ b/docker/test/startsystem.sh @@ -67,6 +67,7 @@ EOF # Patch to override YANG_INSTALLDIRS cat <> /usr/local/bin/test/config.sh YANG_INSTALLDIR=/usr/local/share/clixon +OPENCONFIG=/usr/local/share/openconfig/public EOF # Patch yang syntax errors diff --git a/docker/test/startsystem_fcgi.sh b/docker/test/startsystem_fcgi.sh index 6d8ab519..bf10d3a3 100755 --- a/docker/test/startsystem_fcgi.sh +++ b/docker/test/startsystem_fcgi.sh @@ -97,7 +97,7 @@ EOF # Patch to override YANG_INSTALLDIRS cat <> /usr/local/bin/test/config.sh YANG_INSTALLDIR=/usr/local/share/clixon -OPENCONFIG=/usr/local/share/openconfig +OPENCONFIG=/usr/local/share/openconfig/public EOF # Patch yang syntax errors diff --git a/docker/test/startsystem_native.sh b/docker/test/startsystem_native.sh index bc881402..726cadc8 100755 --- a/docker/test/startsystem_native.sh +++ b/docker/test/startsystem_native.sh @@ -64,7 +64,7 @@ EOF # Patch to override YANG_INSTALLDIRS cat <> /usr/local/bin/test/config.sh YANG_INSTALLDIR=/usr/local/share/clixon -OPENCONFIG=/usr/local/share/openconfig +OPENCONFIG=/usr/local/share/openconfig/public EOF # Patch yang syntax errors