blob: b23b71924337b7f6dbc32fdd143a77c5924131f1 [file] [log] [blame]
Aleksandra Maciaga6def5972020-02-20 09:42:03 +01001#!/bin/bash
2#
Bogumil Zebek78bc8f32020-02-27 07:39:38 +01003# Copyright 2020 Nokia.
Aleksandra Maciaga6def5972020-02-20 09:42:03 +01004#
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
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
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.
16#
17
Bogumil Zebek78bc8f32020-02-27 07:39:38 +010018# ------------------------------------
Aleksandra Maciaga93f9ea42020-03-03 13:38:58 +010019# Resolve path to script's directory and cmp servers configuration
Bogumil Zebek78bc8f32020-02-27 07:39:38 +010020
21SCRIPT=`realpath $0`
22CURRENT_WORKDIR_PATH=`dirname $SCRIPT`
Aleksandra Maciaga93f9ea42020-03-03 13:38:58 +010023PROJECT_DIRECTORY="plans/aaf/certservice"
Bogumil Zebek78bc8f32020-02-27 07:39:38 +010024
Aleksandra Maciaga7a5e3f62020-03-03 12:35:16 +010025SCRIPTS_DIRECTORY="scripts"
Aleksandra Maciaga93f9ea42020-03-03 13:38:58 +010026
27JENKINS_SCRIPTS_PATH="$CURRENT_WORKDIR_PATH/$PROJECT_DIRECTORY/$SCRIPTS_DIRECTORY"
28LOCAL_SCRIPTS_PATH="$CURRENT_WORKDIR_PATH/$SCRIPTS_DIRECTORY"
29
Tomasz Wrobel75573b02020-03-05 16:43:50 +010030# ------------------------------------
31#Prepare enviroment for client
32#install docker sdk
33echo "Uninstall docker-py and reinstall docker."
34pip uninstall -y docker-py
35pip uninstall -y docker
36pip install -U docker==2.7.0
37
Joanna Jeremicz9c14f192020-03-19 14:51:51 +010038#reinstall pyopenssl library
39echo "Reinstall pyopenssl library."
40pip uninstall pyopenssl -y
41pip install pyopenssl==17.5.0
42
kjaniak25fac3a2020-03-18 13:01:36 +010043#Disable proxy - for local run
44unset http_proxy https_proxy
45
Tomasz Wrobel75573b02020-03-05 16:43:50 +010046#export container name
47export ClientContainerName=CertServiceClient
48# ------------------------------------
49
Aleksandra Maciaga93f9ea42020-03-03 13:38:58 +010050if test -d "$JENKINS_SCRIPTS_PATH"; then
51 SCRIPTS_PATH=$JENKINS_SCRIPTS_PATH
52else test -f "$LOCAL_SCRIPTS_PATH";
53 SCRIPTS_PATH=$LOCAL_SCRIPTS_PATH
Aleksandra Maciaga7a5e3f62020-03-03 12:35:16 +010054fi
55echo "Use scripts from: $SCRIPTS_PATH"
56
Bogumil Zebek78bc8f32020-02-27 07:39:38 +010057CONFIGURATION_FILE="cmpServers.json"
Aleksandra Maciaga93f9ea42020-03-03 13:38:58 +010058
59JENKINS_CONFIGURATION_PATH="$CURRENT_WORKDIR_PATH/$PROJECT_DIRECTORY/$CONFIGURATION_FILE"
60LOCAL_CONFIGURATION_PATH="$CURRENT_WORKDIR_PATH/$CONFIGURATION_FILE"
61
62if test -f "$JENKINS_CONFIGURATION_PATH"; then
63 CONFIGURATION_PATH="$JENKINS_CONFIGURATION_PATH"
64else test -f "$LOCAL_CONFIGURATION_PATH";
65 CONFIGURATION_PATH=$LOCAL_CONFIGURATION_PATH
Bogumil Zebek78bc8f32020-02-27 07:39:38 +010066fi
67echo "Use configuration from: $CONFIGURATION_PATH"
Aleksandra Maciaga7a5e3f62020-03-03 12:35:16 +010068
Bogumil Zebek78bc8f32020-02-27 07:39:38 +010069# -------------------------------------
70
Aleksandra Maciaga7a5e3f62020-03-03 12:35:16 +010071export CONFIGURATION_PATH=${CONFIGURATION_PATH}
72export SCRIPTS_PATH=${SCRIPTS_PATH}
73
Aleksandra Maciaga13b7d052020-03-26 17:28:47 +010074#Generate keystores, truststores, certificates and keys
75mkdir -p ${WORKSPACE}/tests/aaf/certservice/assets/certs/
76make all -C ./certs/
77cp ${WORKSPACE}/plans/aaf/certservice/certs/root.crt ${WORKSPACE}/tests/aaf/certservice/assets/certs/root.crt
78echo "Generated keystores"
79openssl pkcs12 -in ${WORKSPACE}/plans/aaf/certservice/certs/certServiceServer-keystore.p12 -clcerts -nokeys -password pass:secret | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > ${WORKSPACE}/tests/aaf/certservice/assets/certs/certServiceServer.crt
80echo "Generated server certificate"
81openssl pkcs12 -in ${WORKSPACE}/plans/aaf/certservice/certs/certServiceServer-keystore.p12 -nocerts -nodes -password pass:secret| sed -ne '/-BEGIN PRIVATE KEY-/,/-END PRIVATE KEY-/p' > ${WORKSPACE}/tests/aaf/certservice/assets/certs/certServiceServer.key
82echo "Generated server key"
83
Aleksandra Maciaga7a5e3f62020-03-03 12:35:16 +010084docker-compose up -d
Aleksandra Maciaga6def5972020-02-20 09:42:03 +010085
Aleksandra Maciaga7ce07992020-03-09 10:01:12 +010086AAFCERT_IP='none'
Aleksandra Maciaga6def5972020-02-20 09:42:03 +010087# Wait container ready
Aleksandra Maciaga7ce07992020-03-09 10:01:12 +010088for i in {1..9}
89do
Aleksandra Maciaga13b7d052020-03-26 17:28:47 +010090 AAFCERT_IP=`get-instance-ip.sh aafcert-service`
91 RESP_CODE=$(curl -s https://localhost:8443/actuator/health --cacert ./certs/root.crt --cert-type p12 --cert ./certs/certServiceServer-keystore.p12 --pass secret | \
92 python2 -c 'import json,sys;obj=json.load(sys.stdin);print obj["status"]')
93 if [[ "$RESP_CODE" == "UP" ]]; then
Aleksandra Maciaga7ce07992020-03-09 10:01:12 +010094 echo 'AAF Cert Service is ready'
95 export AAFCERT_IP=${AAFCERT_IP}
96 docker exec aafcert-ejbca /opt/primekey/scripts/ejbca-configuration.sh
97 break
98 fi
99 echo 'Waiting for AAF Cert Service to start up...'
100 sleep 30s
101done
Aleksandra Maciaga6def5972020-02-20 09:42:03 +0100102
Aleksandra Maciagafc2abe02020-03-13 15:24:53 +0100103if [ "$AAFCERT_IP" == 'none' -o "$AAFCERT_IP" == '' ]; then
Aleksandra Maciaga7ce07992020-03-09 10:01:12 +0100104 echo "AAF Cert Service is not ready!"
105 exit 1 # Return error code
106fi