Merge "CA Bootstrapping"
[aaf/authz.git] / auth / docker / aaf.sh
1 #!/bin/bash
2 . ./d.props
3
4 function run_it() {
5   docker run $@ \
6     --mount 'type=volume,src=aaf_config,dst='$CONF_ROOT_DIR',volume-driver=local' \
7     --add-host="$HOSTNAME:$HOST_IP" \
8     --add-host="aaf.osaaf.org:$HOST_IP" \
9     --env AAF_ENV=${AAF_ENV} \
10     --env AAF_REGISTER_AS=${AAF_REGISTER_AS} \
11     --env LATITUDE=${LATITUDE} \
12     --env LONGITUDE=${LONGITUDE} \
13     --name aaf_config_$USER \
14     $PREFIX${ORG}/${PROJECT}/aaf_config:${VERSION} \
15     /bin/bash $PARAMS
16 }
17
18 function set_prop() {
19 docker exec -t aaf_config_$USER /bin/bash /opt/app/aaf_config/bin/agent.sh NOOP setProp "$1" "$2" "$3"
20 }
21
22 function encrypt_it() {
23   docker exec -t aaf_config_$USER /bin/bash /opt/app/aaf_config/bin/agent.sh NOOP encrypt "$1" "$2"
24 }
25
26 function set_it() {
27   docker exec -t aaf_config_$USER /bin/bash /opt/app/aaf_config/bin/agent.sh NOOP setProp "$1" "$2"
28 }
29
30 P12_LOAD="no"
31
32 for PROP in AAF_INITIAL_X509_P12 AAF_INITIAL_X509_PASSWORD AAF_SIGNER_P12 AAF_SIGNER_PASSWORD CADI_X509_ISSUERS; do
33     if [ "${!PROP}" != "" ]; then
34           P12_LOAD='yes'
35           break;
36     fi 
37 done
38
39 # First Time Run does a bit more setup
40 if [ "$(docker volume ls | grep aaf_config)" = "" ] && [ ${P12_LOAD} = "yes" ]; then
41   echo "Initializing first aaf_config"
42   if [ "$(docker container ls | grep aaf_config_$USER)" = "" ]; then
43         PARAMS="bash"
44         run_it -t -d 
45   else 
46         echo "aaf_config_$USER is already running"
47   fi    
48   docker container cp ${AAF_INITIAL_X509_P12} aaf_config_$USER:/opt/app/osaaf/local/org.osaaf.aaf.p12
49   docker container cp ${AAF_SIGNER_P12} aaf_config_$USER:/opt/app/osaaf/local/org.osaaf.aaf.signer.p12
50
51   set_prop cm_ca.local "${CM_CA_LOCAL}" org.osaaf.aaf.cm.ca.props
52   set_prop cadi_x509_issuers "${CADI_X509_ISSUERS}" org.osaaf.aaf.props
53
54   encrypt_it cadi_keystore_password "${AAF_INITIAL_X509_PASSWORD}"
55   encrypt_it cm_ca.local "${AAF_SIGNER_PASSWORD}"
56
57   set_it cadi_x509_issuers "${CADI_X509_ISSUERS}"
58
59
60   echo -n "Stopping "
61   docker container stop aaf_config_$USER 
62   echo -n "Removing "
63   docker container rm aaf_config_$USER
64 fi
65
66 PARAMS="$@"
67 if [ "$PARAMS" != "" ]; then
68   run_it -it --rm 
69 fi
70