Docker: enable ssh tests

Test: restore tty after restconf start
This commit is contained in:
Olof hagsand 2023-11-19 12:16:23 +01:00
parent 8601690c91
commit cafbe7d200
10 changed files with 41 additions and 9 deletions

View file

@ -24,7 +24,7 @@
* [4.5.0](#450) 12 May 2020 * [4.5.0](#450) 12 May 2020
* [4.4.0](#440) 5 April 2020 * [4.4.0](#440) 5 April 2020
* [4.3.0](#430) 1 January 2020 * [4.3.0](#430) 1 January 2020
* [4.3.3](#433) * [4.3.3](#433)
* [4.3.2](#432) * [4.3.2](#432)
* [4.3.1](#431) * [4.3.1](#431)
* [4.2.0](#420) 27 October 2019 * [4.2.0](#420) 27 October 2019
@ -50,7 +50,7 @@ Users may have to change how they access the system
* Moved and split install of main example config file * Moved and split install of main example config file
* From `/usr/local/etc/example.xml` to `/usr/local/etc/clixon/example.xml` * From `/usr/local/etc/example.xml` to `/usr/local/etc/clixon/example.xml`
* Added `/usr/local/etc/clixon/example/autocli.xml` and `/usr/local/etc/clixon/example/restconf.xml` * Added `/usr/local/etc/clixon/example/autocli.xml` and `/usr/local/etc/clixon/example/restconf.xml`
### C/CLI-API changes on existing features ### C/CLI-API changes on existing features
Developers may need to change their code Developers may need to change their code
@ -73,7 +73,7 @@ Developers may need to change their code
* See https://clixon-docs.readthedocs.io/en/latest/errors.html#customized-errors for more info * See https://clixon-docs.readthedocs.io/en/latest/errors.html#customized-errors for more info
* New `clixon-lib@2023-11-01.yang` revision * New `clixon-lib@2023-11-01.yang` revision
* Added ignore-compare extension * Added ignore-compare extension
### Corrected Bugs ### Corrected Bugs
* Fixed: [NACM paths don't work for mounted YANG models](https://github.com/clicon/clixon-controller/issues/62) * Fixed: [NACM paths don't work for mounted YANG models](https://github.com/clicon/clixon-controller/issues/62)

View file

@ -45,6 +45,9 @@ RUN apk add --update net-snmp net-snmp-dev
# For groupadd/groupdel # For groupadd/groupdel
RUN apk add --update shadow RUN apk add --update shadow
# Test-specific (for test scripts)
RUN apk add --update openssh
# Checkout standard YANG models for tests (note >1G for full repo) # Checkout standard YANG models for tests (note >1G for full repo)
RUN mkdir -p /usr/local/share/yang RUN mkdir -p /usr/local/share/yang
WORKDIR /usr/local/share/yang WORKDIR /usr/local/share/yang
@ -129,7 +132,7 @@ RUN echo "agentXSocket unix:/var/run/snmp.sock" >> /etc/snmp/snmpd.conf
RUN echo "agentxperms 777 777" >> /etc/snmp/snmpd.conf RUN echo "agentxperms 777 777" >> /etc/snmp/snmpd.conf
# Test-specific (for test scripts) # Test-specific (for test scripts)
RUN apk add --update sudo curl procps grep make bash expect RUN apk add --update sudo curl procps grep make bash expect openssh
# Create clicon user and group # Create clicon user and group
RUN adduser -D -H clicon RUN adduser -D -H clicon

View file

@ -48,6 +48,9 @@ RUN apk add --update net-snmp net-snmp-dev
# For groupadd/groupdel # For groupadd/groupdel
RUN apk add --update shadow RUN apk add --update shadow
# Test-specific (for test scripts)
RUN apk add --update openssh
# Checkout standard YANG models for tests (note >1G for full repo) # Checkout standard YANG models for tests (note >1G for full repo)
RUN mkdir -p /usr/local/share/yang RUN mkdir -p /usr/local/share/yang
WORKDIR /usr/local/share/yang WORKDIR /usr/local/share/yang
@ -142,7 +145,7 @@ RUN adduser -D -H -G www-data www-data
RUN apk add --update nginx RUN apk add --update nginx
# Test-specific (for test scripts) # Test-specific (for test scripts)
RUN apk add --update sudo curl procps grep make bash expect RUN apk add --update sudo curl procps grep make bash expect openssh
# Expose nginx port for restconf # Expose nginx port for restconf
EXPOSE 80 EXPOSE 80

View file

@ -47,6 +47,9 @@ RUN apk add --update net-snmp net-snmp-dev
# For groupadd/groupdel # For groupadd/groupdel
RUN apk add --update shadow RUN apk add --update shadow
# Test-specific (for test scripts)
RUN apk add --update openssh
# Checkout standard YANG models for tests (note >1G for full repo) # Checkout standard YANG models for tests (note >1G for full repo)
RUN mkdir -p /usr/local/share/yang RUN mkdir -p /usr/local/share/yang
WORKDIR /usr/local/share/yang WORKDIR /usr/local/share/yang
@ -122,18 +125,16 @@ FROM alpine
MAINTAINER Olof Hagsand <olof@hagsand.se> MAINTAINER Olof Hagsand <olof@hagsand.se>
# For clixon and cligen # For clixon and cligen
RUN apk add --update flex bison RUN apk add --update flex bison openssl
# need to add www user manually # need to add www user manually
RUN adduser -D -H -G www-data www-data RUN adduser -D -H -G www-data www-data
RUN apk add --update openssl
# nghttp2 dependencies # nghttp2 dependencies
RUN apk add --update nghttp2 RUN apk add --update nghttp2
# Test-specific (for test scripts) # Test-specific (for test scripts)
RUN apk add --update sudo curl procps grep make bash expect RUN apk add --update sudo curl procps grep make bash expect openssh
# For SNMP # For SNMP
RUN apk add --update net-snmp net-snmp-tools RUN apk add --update net-snmp net-snmp-tools

View file

@ -73,6 +73,9 @@ EOF
# Patch yang syntax errors # Patch yang syntax errors
sed -i s/=\ olt\'/=\ \'olt\'/g /usr/local/share/yang/standard/ieee/published/802.3/ieee802-ethernet-pon.yang sed -i s/=\ olt\'/=\ \'olt\'/g /usr/local/share/yang/standard/ieee/published/802.3/ieee802-ethernet-pon.yang
# Generate ssh host keys
ssh-keygen -A
# Workaround for this error output: # Workaround for this error output:
# sudo: setrlimit(RLIMIT_CORE): Operation not permitted # sudo: setrlimit(RLIMIT_CORE): Operation not permitted
echo "Set disable_coredump false" > /etc/sudo.conf echo "Set disable_coredump false" > /etc/sudo.conf

View file

@ -103,6 +103,9 @@ EOF
# Patch yang syntax errors # Patch yang syntax errors
sed -i s/=\ olt\'/=\ \'olt\'/g /usr/local/share/yang/standard/ieee/published/802.3/ieee802-ethernet-pon.yang sed -i s/=\ olt\'/=\ \'olt\'/g /usr/local/share/yang/standard/ieee/published/802.3/ieee802-ethernet-pon.yang
# Generate ssh host keys
ssh-keygen -A
# Workaround for this error output: # Workaround for this error output:
# sudo: setrlimit(RLIMIT_CORE): Operation not permitted # sudo: setrlimit(RLIMIT_CORE): Operation not permitted
echo "Set disable_coredump false" > /etc/sudo.conf echo "Set disable_coredump false" > /etc/sudo.conf

View file

@ -70,6 +70,9 @@ EOF
# Patch yang syntax errors # Patch yang syntax errors
sed -i s/=\ olt\'/=\ \'olt\'/g /usr/local/share/yang/standard/ieee/published/802.3/ieee802-ethernet-pon.yang sed -i s/=\ olt\'/=\ \'olt\'/g /usr/local/share/yang/standard/ieee/published/802.3/ieee802-ethernet-pon.yang
# Generate ssh host keys
ssh-keygen -A
# Workaround for this error output: # Workaround for this error output:
# sudo: setrlimit(RLIMIT_CORE): Operation not permitted # sudo: setrlimit(RLIMIT_CORE): Operation not permitted
echo "Set disable_coredump false" > /etc/sudo.conf echo "Set disable_coredump false" > /etc/sudo.conf

View file

@ -36,6 +36,13 @@ To download the openconfig and yang models required for the tests:
git pull origin main git pull origin main
``` ```
## SSH and SSHD
Some tests require ssh and even sshd (eg test_netconf_ssh_callhome.sh), and requires generated host-keys:
```
# ssh-keygen -a
```
## Continuous Integration ## Continuous Integration
CI is done via github actions. CI is done via github actions.

View file

@ -637,6 +637,7 @@ function wait_restconf(){
fi fi
# echo "curl $CURLOPTS -X GET $myproto://localhost/restconf" # echo "curl $CURLOPTS -X GET $myproto://localhost/restconf"
hdr=$(curl $CURLOPTS -X GET $myproto://localhost/restconf 2> /dev/null) hdr=$(curl $CURLOPTS -X GET $myproto://localhost/restconf 2> /dev/null)
stty $STTYSETTINGS >/dev/null
# echo "hdr:\"$hdr\"" # echo "hdr:\"$hdr\""
let i=0; let i=0;
while [[ "$hdr" != *"200"* ]]; do while [[ "$hdr" != *"200"* ]]; do

View file

@ -1,5 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env bash
# Netconf callhome RFC 8071 # Netconf callhome RFC 8071
# Requires an openssh + opensshd install + ssh-keygen -A
# Magic line must be first in script (see README.md) # Magic line must be first in script (see README.md)
s="$_" ; . ./lib.sh || if [ "$s" = $0 ]; then exit 0; else return 0; fi s="$_" ; . ./lib.sh || if [ "$s" = $0 ]; then exit 0; else return 0; fi
@ -13,6 +14,13 @@ if ! [ -x "$ssh_bin" ]; then
if [ "$s" = $0 ]; then exit 0; else return 0; fi # skip if [ "$s" = $0 ]; then exit 0; else return 0; fi # skip
fi fi
if ! [ -x "/usr/sbin/sshd" ]; then
echo "...sshd not installed"
rm -rf $dir
if [ "$s" = $0 ]; then exit 0; else return 0; fi # skip
fi
# Dont run this test with valgrind # Dont run this test with valgrind
if [ $valgrindtest -ne 0 ]; then if [ $valgrindtest -ne 0 ]; then
echo "...skipped " echo "...skipped "