Example: fixed mismatch between install dirs and DIRs in example.xml.in

Docker: Removed example from test container, fixed example container
This commit is contained in:
Olof hagsand 2023-02-22 22:52:44 +01:00
parent a8c4e8699c
commit 2db5961169
8 changed files with 14 additions and 58 deletions

View file

@ -111,6 +111,8 @@ RUN adduser -D -H clicon
COPY --from=0 /clixon/build/ /usr/local/ COPY --from=0 /clixon/build/ /usr/local/
# Overwrite config file since install dirs are wrong
COPY example.xml /usr/local/etc/example.xml
# Create symlink so you can run clixon without -f arg # Create symlink so you can run clixon without -f arg
RUN ln -s /usr/local/etc/example.xml /usr/local/etc/clixon.xml RUN ln -s /usr/local/etc/example.xml /usr/local/etc/clixon.xml

View file

@ -49,6 +49,10 @@ SHELL = /bin/sh
all: all:
echo "Run make docker to build docker image" echo "Run make docker to build docker image"
# Cannot use generated Makefile in docker since it uses tmp install dirs
example.xml:
cp $(top_srcdir)/example/main/$@ $@
# (recursively) clone the repo from top-level - NOTE changes must be committed # (recursively) clone the repo from top-level - NOTE changes must be committed
clixon: clixon:
git clone file://$(realpath ${top_srcdir}) git clone file://$(realpath ${top_srcdir})
@ -59,7 +63,7 @@ clean:
distclean: clean distclean: clean
rm -f Makefile *~ .depend rm -f Makefile *~ .depend
docker: clixon Dockerfile docker: clixon Dockerfile example.xml
sudo docker build -t $(IMG) $(DOCKERFLAGS) . sudo docker build -t $(IMG) $(DOCKERFLAGS) .
start: docker start: docker

View file

@ -54,52 +54,7 @@ touch /run/openrc/softlevel
#/usr/local/bin/clixon_restconf -l f/var/log/restconf.log -D $DBG & #/usr/local/bin/clixon_restconf -l f/var/log/restconf.log -D $DBG &
#>&2 echo "clixon_restconf started" #>&2 echo "clixon_restconf started"
cat <<EOF > /usr/local/etc/example.xml #ln -s /usr/local/etc/example.xml clixon.xml
<clixon-config xmlns="http://clicon.org/config">
<CLICON_CONFIGFILE>/usr/local/etc/example.xml</CLICON_CONFIGFILE>
<CLICON_FEATURE>ietf-netconf:startup</CLICON_FEATURE>
<CLICON_FEATURE>ietf-netconf:confirmed-commit</CLICON_FEATURE>
<CLICON_FEATURE>clixon-restconf:allow-auth-none</CLICON_FEATURE>
<CLICON_FEATURE>clixon-restconf:fcgi</CLICON_FEATURE>
<CLICON_YANG_DIR>/usr/local/share/clixon</CLICON_YANG_DIR>
<CLICON_YANG_DIR>@YANG_STANDARD_DIR@</CLICON_YANG_DIR>
<CLICON_YANG_MODULE_MAIN>clixon-example</CLICON_YANG_MODULE_MAIN>
<CLICON_CLI_MODE>example</CLICON_CLI_MODE>
<CLICON_BACKEND_DIR>/usr/local/lib/example/backend</CLICON_BACKEND_DIR>
<CLICON_NETCONF_DIR>/usr/local/lib/example/netconf</CLICON_NETCONF_DIR>
<CLICON_RESTCONF_DIR>/usr/local/lib/example/restconf</CLICON_RESTCONF_DIR>
<CLICON_CLI_DIR>/usr/local/lib/example/cli</CLICON_CLI_DIR>
<CLICON_CLISPEC_DIR>/usr/local/lib/example/clispec</CLICON_CLISPEC_DIR>
<CLICON_SOCK>/usr/local/var/example/example.sock</CLICON_SOCK>
<CLICON_BACKEND_PIDFILE>/usr/local/var/example/example.pidfile</CLICON_BACKEND_PIDFILE>
<CLICON_CLI_LINESCROLLING>0</CLICON_CLI_LINESCROLLING>
<CLICON_CLI_TAB_MODE>0</CLICON_CLI_TAB_MODE>
<CLICON_XMLDB_DIR>/usr/local/var/example</CLICON_XMLDB_DIR>
<CLICON_STARTUP_MODE>init</CLICON_STARTUP_MODE>
<CLICON_NACM_MODE>disabled</CLICON_NACM_MODE>
<CLICON_STREAM_DISCOVERY_RFC5277>true</CLICON_STREAM_DISCOVERY_RFC5277>
<CLICON_YANG_LIBRARY>false</CLICON_YANG_LIBRARY>
<restconf>
<enable>true</enable>
<auth-type>none</auth-type>
<socket><namespace>default</namespace><address>0.0.0.0</address><port>80</port><ssl>false</ssl></socket>
</restconf>
<autocli>
<module-default>false</module-default>
<list-keyword-default>kw-nokey</list-keyword-default>
<treeref-state-default>false</treeref-state-default>
<edit-mode-default>list container</edit-mode-default>
<completion-default>true</completion-default>
<rule>
<name>include clixon-example</name>
<module-name>clixon-example</module-name>
<operation>enable</operation>
</rule>
</autocli>
</clixon-config>
EOF
ln -s /usr/local/etc/example.xml clixon.xml
# Start clixon backend # Start clixon backend
/usr/local/sbin/clixon_backend -D $DBG -s running -l e -f /usr/local/etc/example.xml /usr/local/sbin/clixon_backend -D $DBG -s running -l e -f /usr/local/etc/example.xml

View file

@ -88,11 +88,8 @@ WORKDIR /clixon/clixon/util
RUN make RUN make
RUN make install RUN make install
# Build and install the clixon example
WORKDIR /clixon/clixon/example/main
RUN make RUN make
RUN make install RUN make install
RUN install example.xml /clixon/build/etc/clixon.xml
# Copy tests # Copy tests
WORKDIR /clixon/clixon/test WORKDIR /clixon/clixon/test

View file

@ -57,7 +57,6 @@ SPORT=${SPORT:-8443}
# Initial running datastore content (other than empty) # Initial running datastore content (other than empty)
STORE=${STORE:-} STORE=${STORE:-}
CONFIG0=$(cat <<EOF CONFIG0=$(cat <<EOF
<clixon-config xmlns="http://clicon.org/config"> <clixon-config xmlns="http://clicon.org/config">
<CLICON_CONFIGFILE>/usr/local/etc/example.xml</CLICON_CONFIGFILE> <CLICON_CONFIGFILE>/usr/local/etc/example.xml</CLICON_CONFIGFILE>
@ -84,8 +83,8 @@ EOF
CONFIG=${CONFIG:-$CONFIG0} CONFIG=${CONFIG:-$CONFIG0}
# Start clixon-example backend # Create clixon-test container
>&2 echo -n "Starting Backend..." >&2 echo -n "Starting Container..."
sudo docker run -p $PORT:80 -p $SPORT:443 --name clixon-test --rm -e DBG=$DBG -e CONFIG="$CONFIG" -e STORE="$STORE" -td clixon/clixon-test || err "Error starting clixon-test" sudo docker run -p $PORT:80 -p $SPORT:443 --name clixon-test --rm -e DBG=$DBG -e CONFIG="$CONFIG" -e STORE="$STORE" -td clixon/clixon-test || err "Error starting clixon-test"
# Wait for snmpd to start # Wait for snmpd to start

View file

@ -78,9 +78,7 @@ echo "Set disable_coredump false" > /etc/sudo.conf
chmod 775 /usr/local/bin/test/site.sh chmod 775 /usr/local/bin/test/site.sh
# Start clixon backend (tests will kill this) # No backend is started since tests dont require it
/usr/local/sbin/clixon_backend -D $DBG -s running -l e # logs on docker logs
>&2 echo "clixon_backend started"
# Start snmpd, we need this for the SNMP tests and the app clixon_snmp. Log to stdout, then we can # Start snmpd, we need this for the SNMP tests and the app clixon_snmp. Log to stdout, then we can
# use Docker logs to see what's happening. # use Docker logs to see what's happening.

View file

@ -188,7 +188,8 @@ ifdef with_restconf
endif endif
install -d -m 0755 $(DESTDIR)$(libdir)/$(APPNAME)/clispec install -d -m 0755 $(DESTDIR)$(libdir)/$(APPNAME)/clispec
install -m 0644 $(CLISPECS) $(DESTDIR)$(libdir)/$(APPNAME)/clispec install -m 0644 $(CLISPECS) $(DESTDIR)$(libdir)/$(APPNAME)/clispec
install -d -m 0755 $(DESTDIR)$(localstatedir)/$(APPNAME) install -d -m 0755 $(DESTDIR)$(localstatedir)/$(APPNAME) # This is for XMLDB_DIR
install -d -m 0755 $(DESTDIR)$(localstatedir)/run # This is for PID and SOCK
uninstall: uninstall:
rm -rf $(DESTDIR)$(sysconfdir)/$(APPNAME).xml rm -rf $(DESTDIR)$(sysconfdir)/$(APPNAME).xml

View file

@ -17,7 +17,7 @@
<CLICON_BACKEND_PIDFILE>@LOCALSTATEDIR@/run/example.pid</CLICON_BACKEND_PIDFILE> <CLICON_BACKEND_PIDFILE>@LOCALSTATEDIR@/run/example.pid</CLICON_BACKEND_PIDFILE>
<CLICON_CLI_LINESCROLLING>0</CLICON_CLI_LINESCROLLING> <CLICON_CLI_LINESCROLLING>0</CLICON_CLI_LINESCROLLING>
<CLICON_CLI_TAB_MODE>0</CLICON_CLI_TAB_MODE> <CLICON_CLI_TAB_MODE>0</CLICON_CLI_TAB_MODE>
<CLICON_XMLDB_DIR>@LOCALSTATEDIR@/lib/misc</CLICON_XMLDB_DIR> <CLICON_XMLDB_DIR>@LOCALSTATEDIR@/example</CLICON_XMLDB_DIR>
<CLICON_STARTUP_MODE>init</CLICON_STARTUP_MODE> <CLICON_STARTUP_MODE>init</CLICON_STARTUP_MODE>
<CLICON_NACM_MODE>disabled</CLICON_NACM_MODE> <CLICON_NACM_MODE>disabled</CLICON_NACM_MODE>
<CLICON_STREAM_DISCOVERY_RFC5277>true</CLICON_STREAM_DISCOVERY_RFC5277> <CLICON_STREAM_DISCOVERY_RFC5277>true</CLICON_STREAM_DISCOVERY_RFC5277>