Aleksandra Maciaga | 6def597 | 2020-02-20 09:42:03 +0100 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | # |
Bogumil Zebek | 78bc8f3 | 2020-02-27 07:39:38 +0100 | [diff] [blame] | 3 | # Copyright 2020 Nokia. |
Aleksandra Maciaga | 6def597 | 2020-02-20 09:42:03 +0100 | [diff] [blame] | 4 | # |
| 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 Zebek | 78bc8f3 | 2020-02-27 07:39:38 +0100 | [diff] [blame] | 18 | # ------------------------------------ |
Aleksandra Maciaga | 93f9ea4 | 2020-03-03 13:38:58 +0100 | [diff] [blame] | 19 | # Resolve path to script's directory and cmp servers configuration |
Bogumil Zebek | 78bc8f3 | 2020-02-27 07:39:38 +0100 | [diff] [blame] | 20 | |
| 21 | SCRIPT=`realpath $0` |
| 22 | CURRENT_WORKDIR_PATH=`dirname $SCRIPT` |
Aleksandra Maciaga | 93f9ea4 | 2020-03-03 13:38:58 +0100 | [diff] [blame] | 23 | PROJECT_DIRECTORY="plans/aaf/certservice" |
Bogumil Zebek | 78bc8f3 | 2020-02-27 07:39:38 +0100 | [diff] [blame] | 24 | |
Aleksandra Maciaga | 7a5e3f6 | 2020-03-03 12:35:16 +0100 | [diff] [blame] | 25 | SCRIPTS_DIRECTORY="scripts" |
Aleksandra Maciaga | 93f9ea4 | 2020-03-03 13:38:58 +0100 | [diff] [blame] | 26 | |
| 27 | JENKINS_SCRIPTS_PATH="$CURRENT_WORKDIR_PATH/$PROJECT_DIRECTORY/$SCRIPTS_DIRECTORY" |
| 28 | LOCAL_SCRIPTS_PATH="$CURRENT_WORKDIR_PATH/$SCRIPTS_DIRECTORY" |
| 29 | |
Tomasz Wrobel | 75573b0 | 2020-03-05 16:43:50 +0100 | [diff] [blame] | 30 | # ------------------------------------ |
| 31 | #Prepare enviroment for client |
| 32 | #install docker sdk |
| 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 |
| 37 | |
Joanna Jeremicz | 9c14f19 | 2020-03-19 14:51:51 +0100 | [diff] [blame] | 38 | #reinstall pyopenssl library |
| 39 | echo "Reinstall pyopenssl library." |
| 40 | pip uninstall pyopenssl -y |
| 41 | pip install pyopenssl==17.5.0 |
| 42 | |
kjaniak | 25fac3a | 2020-03-18 13:01:36 +0100 | [diff] [blame] | 43 | #Disable proxy - for local run |
| 44 | unset http_proxy https_proxy |
| 45 | |
Tomasz Wrobel | 75573b0 | 2020-03-05 16:43:50 +0100 | [diff] [blame] | 46 | #export container name |
| 47 | export ClientContainerName=CertServiceClient |
| 48 | # ------------------------------------ |
| 49 | |
Aleksandra Maciaga | 93f9ea4 | 2020-03-03 13:38:58 +0100 | [diff] [blame] | 50 | if test -d "$JENKINS_SCRIPTS_PATH"; then |
| 51 | SCRIPTS_PATH=$JENKINS_SCRIPTS_PATH |
| 52 | else test -f "$LOCAL_SCRIPTS_PATH"; |
| 53 | SCRIPTS_PATH=$LOCAL_SCRIPTS_PATH |
Aleksandra Maciaga | 7a5e3f6 | 2020-03-03 12:35:16 +0100 | [diff] [blame] | 54 | fi |
| 55 | echo "Use scripts from: $SCRIPTS_PATH" |
| 56 | |
Bogumil Zebek | 78bc8f3 | 2020-02-27 07:39:38 +0100 | [diff] [blame] | 57 | CONFIGURATION_FILE="cmpServers.json" |
Aleksandra Maciaga | 93f9ea4 | 2020-03-03 13:38:58 +0100 | [diff] [blame] | 58 | |
| 59 | JENKINS_CONFIGURATION_PATH="$CURRENT_WORKDIR_PATH/$PROJECT_DIRECTORY/$CONFIGURATION_FILE" |
| 60 | LOCAL_CONFIGURATION_PATH="$CURRENT_WORKDIR_PATH/$CONFIGURATION_FILE" |
| 61 | |
| 62 | if test -f "$JENKINS_CONFIGURATION_PATH"; then |
| 63 | CONFIGURATION_PATH="$JENKINS_CONFIGURATION_PATH" |
| 64 | else test -f "$LOCAL_CONFIGURATION_PATH"; |
| 65 | CONFIGURATION_PATH=$LOCAL_CONFIGURATION_PATH |
Bogumil Zebek | 78bc8f3 | 2020-02-27 07:39:38 +0100 | [diff] [blame] | 66 | fi |
| 67 | echo "Use configuration from: $CONFIGURATION_PATH" |
Aleksandra Maciaga | 7a5e3f6 | 2020-03-03 12:35:16 +0100 | [diff] [blame] | 68 | |
Bogumil Zebek | 78bc8f3 | 2020-02-27 07:39:38 +0100 | [diff] [blame] | 69 | # ------------------------------------- |
| 70 | |
Aleksandra Maciaga | 7a5e3f6 | 2020-03-03 12:35:16 +0100 | [diff] [blame] | 71 | export CONFIGURATION_PATH=${CONFIGURATION_PATH} |
| 72 | export SCRIPTS_PATH=${SCRIPTS_PATH} |
| 73 | |
Aleksandra Maciaga | 13b7d05 | 2020-03-26 17:28:47 +0100 | [diff] [blame^] | 74 | #Generate keystores, truststores, certificates and keys |
| 75 | mkdir -p ${WORKSPACE}/tests/aaf/certservice/assets/certs/ |
| 76 | make all -C ./certs/ |
| 77 | cp ${WORKSPACE}/plans/aaf/certservice/certs/root.crt ${WORKSPACE}/tests/aaf/certservice/assets/certs/root.crt |
| 78 | echo "Generated keystores" |
| 79 | openssl 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 |
| 80 | echo "Generated server certificate" |
| 81 | openssl 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 |
| 82 | echo "Generated server key" |
| 83 | |
Aleksandra Maciaga | 7a5e3f6 | 2020-03-03 12:35:16 +0100 | [diff] [blame] | 84 | docker-compose up -d |
Aleksandra Maciaga | 6def597 | 2020-02-20 09:42:03 +0100 | [diff] [blame] | 85 | |
Aleksandra Maciaga | 7ce0799 | 2020-03-09 10:01:12 +0100 | [diff] [blame] | 86 | AAFCERT_IP='none' |
Aleksandra Maciaga | 6def597 | 2020-02-20 09:42:03 +0100 | [diff] [blame] | 87 | # Wait container ready |
Aleksandra Maciaga | 7ce0799 | 2020-03-09 10:01:12 +0100 | [diff] [blame] | 88 | for i in {1..9} |
| 89 | do |
Aleksandra Maciaga | 13b7d05 | 2020-03-26 17:28:47 +0100 | [diff] [blame^] | 90 | 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 Maciaga | 7ce0799 | 2020-03-09 10:01:12 +0100 | [diff] [blame] | 94 | 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 |
| 101 | done |
Aleksandra Maciaga | 6def597 | 2020-02-20 09:42:03 +0100 | [diff] [blame] | 102 | |
Aleksandra Maciaga | fc2abe0 | 2020-03-13 15:24:53 +0100 | [diff] [blame] | 103 | if [ "$AAFCERT_IP" == 'none' -o "$AAFCERT_IP" == '' ]; then |
Aleksandra Maciaga | 7ce0799 | 2020-03-09 10:01:12 +0100 | [diff] [blame] | 104 | echo "AAF Cert Service is not ready!" |
| 105 | exit 1 # Return error code |
| 106 | fi |