3 # Copyright 2020 Nokia.
5 # Licensed under the Apache License, Version 2.0 (the "License");
6 # you may not use this file except in compliance with the License.
7 # You may obtain a copy of the License at
9 # http://www.apache.org/licenses/LICENSE-2.0
11 # Unless required by applicable law or agreed to in writing, software
12 # distributed under the License is distributed on an "AS IS" BASIS,
13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 # See the License for the specific language governing permissions and
15 # limitations under the License.
18 # ------------------------------------
19 # Resolve path to script's directory and cmp servers configuration
22 CURRENT_WORKDIR_PATH=`dirname $SCRIPT`
23 PROJECT_DIRECTORY="plans/oom-platform-cert-service/certservice"
25 RESOURCES_DIRECTORY="resources"
27 JENKINS_RESOURCES_PATH="$CURRENT_WORKDIR_PATH/$PROJECT_DIRECTORY/$RESOURCES_DIRECTORY"
28 LOCAL_RESOURCES_PATH="$CURRENT_WORKDIR_PATH/$RESOURCES_DIRECTORY"
30 # ------------------------------------
31 #Prepare enviroment for client
33 echo "Uninstall docker-py and reinstall docker."
34 pip uninstall -y docker-py
35 pip uninstall -y docker
36 pip install -U docker==2.7.0
38 #reinstall pyopenssl library
39 echo "Reinstall pyopenssl library."
40 pip uninstall pyopenssl -y
41 pip install pyopenssl==23.0.0
43 #install pyjks for .jks files management
46 #Disable proxy - for local run
47 unset http_proxy https_proxy
49 #export container name
50 export ClientContainerName=CertServiceClient
51 # ------------------------------------
53 if test -d "$JENKINS_RESOURCES_PATH"; then
54 RESOURCES_PATH=$JENKINS_RESOURCES_PATH
55 else test -f "$LOCAL_RESOURCES_PATH";
56 RESOURCES_PATH=$LOCAL_RESOURCES_PATH
58 echo "Use resources from: $RESOURCES_PATH"
60 CONFIGURATION_FILE="cmpServers.json"
62 JENKINS_CONFIGURATION_PATH="$CURRENT_WORKDIR_PATH/$PROJECT_DIRECTORY/$CONFIGURATION_FILE"
63 LOCAL_CONFIGURATION_PATH="$CURRENT_WORKDIR_PATH/$CONFIGURATION_FILE"
65 if test -f "$JENKINS_CONFIGURATION_PATH"; then
66 CONFIGURATION_PATH="$JENKINS_CONFIGURATION_PATH"
67 else test -f "$LOCAL_CONFIGURATION_PATH";
68 CONFIGURATION_PATH=$LOCAL_CONFIGURATION_PATH
70 echo "Use configuration from: $CONFIGURATION_PATH"
72 # -------------------------------------
74 export CONFIGURATION_PATH=${CONFIGURATION_PATH}
75 export RESOURCES_PATH=${RESOURCES_PATH}
77 #Generate keystores, truststores, certificates and keys
78 mkdir -p ${WORKSPACE}/tests/oom-platform-cert-service/certservice/assets/certs/
80 cp ${WORKSPACE}/plans/oom-platform-cert-service/certservice/certs/root.crt ${WORKSPACE}/tests/oom-platform-cert-service/certservice/assets/certs/root.crt
81 echo "Generated keystores"
82 openssl pkcs12 -in ${WORKSPACE}/plans/oom-platform-cert-service/certservice/certs/certServiceServer-keystore.p12 -clcerts -nokeys -password pass:secret | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ${WORKSPACE}/tests/oom-platform-cert-service/certservice/assets/certs/certServiceServer.crt
83 echo "Generated server certificate"
84 openssl pkcs12 -in ${WORKSPACE}/plans/oom-platform-cert-service/certservice/certs/certServiceServer-keystore.p12 -nocerts -nodes -password pass:secret| sed -ne '/-BEGIN PRIVATE KEY-/,/-END PRIVATE KEY-/p' > ${WORKSPACE}/tests/oom-platform-cert-service/certservice/assets/certs/certServiceServer.key
85 echo "Generated server key"
90 # Wait container ready
93 OOMCERT_IP=`get-instance-ip.sh oomcert-service`
94 RESP_CODE=$(curl -s https://localhost:8443/actuator/health --cacert ./certs/root.crt --cert-type p12 --cert ./certs/certServiceServer-keystore.p12 --pass secret | \
95 python3 -c 'import json,sys;obj=json.load(sys.stdin);print (obj["status"])')
96 if [[ "$RESP_CODE" == "UP" ]]; then
97 echo 'OOM Cert Service is ready'
98 export OOMCERT_IP=${OOMCERT_IP}
99 docker exec oomcert-ejbca /opt/primekey/scripts/ejbca-configuration.sh
102 echo 'Waiting for OOM Cert Service to start up...'
106 if [ "$OOMCERT_IP" == 'none' -o "$OOMCERT_IP" == '' ]; then
107 echo "OOM Cert Service is not ready!"
108 exit 1 # Return error code