Move AAF Poms to 2.1.16
[aaf/authz.git] / auth / docker / agent.sh
index 33db109..575e21f 100644 (file)
@@ -18,6 +18,8 @@
 #  limitations under the License.
 #  ============LICENSE_END====================================================
 #
+
+
 # Fill out "aaf.props" if not filled out already
 if [ ! -e aaf.props ]; then
   > ./aaf.props
@@ -25,53 +27,46 @@ fi
  
 . ./aaf.props
 
-if [ -z "$ADMIN" ]; then
-  echo -n "Is the target [K]ubernetes or [D]ocker (K):"
-  read R
-  case $R in 
-    d|D) ADMIN=docker 
-         echo "ADMIN=docker" >> aaf.props
-         ;;
-    *) ADMIN=kubectl
-         echo "ADMIN=kubectl" >> aaf.props
-       ;;
-  esac
-fi
-   
-if [ "$ADMIN" = "docker" ]; then
-   PROPS="VERSION DOCKER_REPOSITORY AAF_FQDN AAF_FQDN_IP DEPLOY_FQI APP_FQDN APP_FQI VOLUME DRIVER LATITUDE LONGITUDE"
-   DEF_AAF_FQDN=aaf-onap-test.osaaf.org
-else
-   PROPS="VERSION DOCKER_REPOSITORY NAMESPACE DEPLOY_FQI DEPLOY_PASSWORD AAF_FQDN APP_FQDN APP_FQI VOLUME PVC DRIVER LATITUDE LONGITUDE"
-   DEF_AAF_FQDN=aaf-locate
-fi
+DOCKER=${DOCKER:=docker}
+CADI_VERSION=${CADI_VERSION:=2.1.16}
 
-for V in $PROPS; do
+for V in VERSION DOCKER_REPOSITORY HOSTNAME CONTAINER_NS AAF_FQDN AAF_FQDN_IP DEPLOY_FQI APP_FQDN APP_FQI VOLUME DRIVER LATITUDE LONGITUDE; do
    if [ "$(grep $V ./aaf.props)" = "" ]; then
       unset DEF
       case $V in
         DOCKER_REPOSITORY) 
-                    PROMPT="Docker Repo"; DEF="nexus3.onap.org:10003" ;;
-         AAF_FQDN)   PROMPT="AAF's FQDN" 
-                     if [ -z "$NAMESPACE" ]; then
-                      DEF=$DEF_AAF_FQDN
-                    else
-                       DEF=$DEF_AAF_FQDN.$NAMESPACE
-                    fi
-                     ;;                        
-         DEPLOY_FQI) PROMPT="Deployer's FQI"; DEF="deployer@people.osaaf.org" ;;
+               PROMPT="Docker Repo"
+               DEF="nexus3.onap.org:10003"
+               ;;
+        HOSTNAME) 
+               PROMPT="HOSTNAME (blank for Default)"
+               DEF=""
+               ;;
+         AAF_FQDN)   PROMPT="AAF's FQDN";;
+         DEPLOY_FQI) PROMPT="Deployer's FQI";;
          AAF_FQDN_IP)
-                    # Need AAF_FQDN's IP, because not might not be available in mini-container
-                    PROMPT="AAF FQDN IP"
-                    DEF=$(host $AAF_FQDN | grep "has address" | tail -1 | cut -f 4 -d ' ')
-                     ;;
-         APP_FQI)    PROMPT="App's FQI";; 
-         APP_FQDN)   PROMPT="App's Root FQDN";; 
-         VOLUME)     PROMPT="App's AAF Configuration Volume";DEF=${APP_FQDN/.*/}-config;;
+               # Need AAF_FQDN's IP, because not might not be available in mini-container
+               PROMPT="AAF FQDN IP"
+               LOOKUP=$(host "${AAF_FQDN}" | grep "has address")
+               if [ -n "${LOOKUP}" ]; then
+                   DEF=$(echo ${LOOKUP} | tail -1 | cut -f 4 -d ' ')
+                fi
+                ;;
+         APP_FQDN)   PROMPT="App's Root FQDN";;
+         APP_FQI)    PROMPT="App's FQI"
+                    if [[ "${APP_FQDN}" != *"."* ]]; then
+                      DEF="${APP_FQDN}@${APP_FQDN}.onap.org"
+                     fi
+                    ;; 
+         VOLUME)     PROMPT="APP's AAF Configuration Volume"
+                    if [[ "${APP_FQDN}" != *"."* ]]; then
+                      DEF="${APP_FQDN}_config"
+                    fi
+                ;;
          DRIVER)     PROMPT=$V;DEF=local;;
-        VERSION)    PROMPT="CADI Version";DEF=2.1.9-SNAPSHOT;;
-        NAMESPACE)  PROMPT="Kubernetes Namespace";DEF=onap;;
-        PVC)        PROMPT="Persistent Volume Claim";DEF=$VOLUME-pvc;;
+         CONTAINER_NS)     
+                     PROMPT=$V;DEF=onap;;
+        VERSION)    PROMPT="CADI Version";DEF=$CADI_VERSION;;
          LATITUDE|LONGITUDE) PROMPT="$V of Node";;
          *)          PROMPT=$V;;
       esac
@@ -83,34 +78,38 @@ for V in $PROPS; do
       read -p "$PROMPT" VAR 
       if [ "$VAR" = "" ]; then
          if [ "$DEF" = "" ]; then
-            echo "agent.sh needs each value queried.  Please start again."
-            exit
+            if [ "$V" != "HOSTNAME" ]; then
+              echo "agent.sh needs each value queried.  Please start again."
+              exit
+            fi
          else
             VAR=$DEF
-            declare $V="$VAR"
          fi
       fi
       echo "$V=$VAR" >> ./aaf.props
+      declare "$V"="$VAR"
    fi
 done
 . ./aaf.props
 
+# Make sure Container Volume exists
+if [ "$($DOCKER volume ls | grep ${VOLUME})" = "" ]; then
+  echo -n "Creating Volume: " 
+  $DOCKER volume create -d ${DRIVER} ${VOLUME}
+fi
+
 if [ -n "$DOCKER_REPOSITORY" ]; then
   PREFIX="$DOCKER_REPOSITORY/"
 else
   PREFIX=""
 fi 
 
-if [[ "$ADMIN" =~ docker ]]; then
-  # Make sure Container Volume exists
-  if [ "$($ADMIN volume ls | grep ${VOLUME})" = "" ]; then
-    echo -n "Creating Volume: $VOLUME" 
-    $ADMIN volume create -d ${DRIVER} ${VOLUME}
+function run_it() {
+  if [ -n "${DUSER}" ]; then
+    USER_LINE="--user ${DUSER}"
   fi
-
-  $ADMIN run \
-    -it \
-    --rm \
+  $DOCKER run  -it  --rm \
+    ${USER_LINE} \
     -v "${VOLUME}:/opt/app/osaaf" \
     --add-host="$AAF_FQDN:$AAF_FQDN_IP" \
     --env AAF_FQDN=${AAF_FQDN} \
@@ -120,120 +119,82 @@ if [[ "$ADMIN" =~ docker ]]; then
     --env APP_FQDN=${APP_FQDN} \
     --env LATITUDE=${LATITUDE} \
     --env LONGITUDE=${LONGITUDE} \
-    --name aaf_agent_$USER \
+    --env aaf_locator_container_ns=${CONTAINER_NS} \
+    --env aaf_locator_container=docker \
+    --link aaf-service --link aaf-locate --link aaf-oauth --link aaf-cm \
+    --name aaf-agent-$USER \
     "$PREFIX"onap/aaf/aaf_agent:$VERSION \
-    /bin/bash "$@"
-else
-  NAMESPACE=${NAMESPACE:=onap}
-  YAML=${VOLUME}.yaml
-  # Make sure Container Volume exists
-  if [ -z "$($ADMIN -n $NAMESPACE get pv | grep ${VOLUME})" ]; then
-    if [ ! -r $YAML ]; then
-      SIZE=30M
-      echo "---" >> $YAML
-      echo "kind: PersistentVolume" >> $YAML
-      echo "apiVersion: v1" >> $YAML
-      echo "metadata:" >> $YAML
-      echo "  name: $VOLUME-pv" >> $YAML
-      echo "  namespace: $NAMESPACE" >> $YAML
-      echo "  labels:" >> $YAML
-      echo "    app: $VOLUME" >> $YAML
-      echo "    type: local" >> $YAML
-      echo "spec:" >> $YAML
-      echo "  capacity:" >> $YAML
-      echo "    storage: $SIZE" >> $YAML
-      echo "  accessModes:" >> $YAML
-      echo "    - ReadWriteOnce" >> $YAML
-      echo "  hostPath:" >> $YAML
-      echo "    path: \"/data/$VOLUME\"" >> $YAML
-      echo "  storageClassName: \"manual\"" >> $YAML
-      echo "---" >> $YAML
-      echo "kind: PersistentVolumeClaim" >> $YAML
-      echo "apiVersion: v1" >> $YAML
-      echo "metadata:" >> $YAML
-      echo "  name: $VOLUME-pvc" >> $YAML
-      echo "  namespace: $NAMESPACE" >> $YAML
-      echo "  labels:" >> $YAML
-      echo "    app: $VOLUME" >> $YAML
-      echo "    type: local" >> $YAML
-      echo "spec:" >> $YAML
-      echo "  selector:" >> $YAML
-      echo "    matchLabels:" >> $YAML
-      echo "      app: $VOLUME" >> $YAML
-      echo "  accessModes:" >> $YAML
-      echo "    - ReadWriteOnce" >> $YAML
-      echo "  resources:" >> $YAML
-      echo "    requests:" >> $YAML
-      echo "      storage: $SIZE" >> $YAML
-      echo "  storageClassName: "manual"" >> $YAML
-    fi
-    $ADMIN -n $NAMESPACE create -f $YAML
+    bash -c "bash /opt/app/aaf_config/bin/agent.sh $PARAMS"
+}
+
+function sso {
+  if [ -n "$2" ]; then
+    echo "$1=$2" >> $HOME/.aaf/sso.props
   fi
-  POD=aaf-agent-$USER
-  $ADMIN run -n $NAMESPACE $POD \
-    -i --rm  \
-    --restart=Never \
-    --image="$PREFIX"onap/aaf/aaf_agent:$VERSION \
-    --overrides='
-{
-  "apiVersion": "v1",
-  "kind": "Pod",
-  "metadata": {
-    "name": "'$POD'"
-  },
-  "spec": {
-    "volumes": [{
-      "name": "'$VOLUME'",
-      "persistentVolumeClaim": {
-         "claimName": "'$VOLUME'-pvc"
-      }
-    }],
-    "containers": [
-      {
-        "name": "aaf-agent-'$USER'",
-        "imagePullPolicy": "IfNotPresent",
-        "image": "'$PREFIX'onap/aaf/aaf_agent:'$VERSION'",
-        "args": [
-          "/bin/bash",
-           "'$@'"
-        ],
-        "stdin": true,
-        "stdinOnce": true,
-        "tty": true,
-        "volumeMounts": [
-          {
-            "mountPath": "/opt/app/osaaf",
-            "name": "'$VOLUME'"
-          }
-        ],
-       "env": [
-          {
-            "name": "AAF_FQDN",
-            "value": "'$AAF_FQDN'"
-          },{
-            "name": "DEPLOY_FQI",
-            "value": "'$DEPLOY_FQI'"
-          },{
-            "name": "DEPLOY_PASSWORD",
-            "value": "'$DEPLOY_PASSWORD'"
-          },{
-            "name": "APP_FQI",
-            "value": "'$APP_FQI'"
-          },{
-            "name": "APP_FQDN",
-            "value": "'$APP_FQDN'"
-          },{
-            "name": "LATITUDE",
-            "value": "'$LATITUDE'"
-          },{
-            "name": "LONGITUDE",
-            "value": "'$LONGITUDE'"
-          }
-        ]
-      }
-    ]
-  }
-}'
-     
+}
+
+function reset_sso {
+    mkdir -p ~/.aaf
+    > $HOME/.aaf/sso.props
+    sso aaf_locate_url "https://$AAF_FQDN:8095"
+    sso cadi_latitude "$LATITUDE"
+    sso cadi_longitude "$LONGITUDE"
+    sso cadi_loglevel "DEBUG"
+    TRUSTSTORE="$(ls truststore*.jks | tail -1)"
+    if [ -z "$TRUSTSTORE" ]; then
+      echo "Place a truststore*.jar which has YOUR CA in it here"
+      exit
+    fi
+    sso cadi_truststore "${PWD}/${TRUSTSTORE}"
+    sso cadi_truststore_password changeit
+}
+
+PARAMS=$@
+case "$1" in 
+  bash)
+    PARAMS="&& cd /opt/app/osaaf/local && exec bash"
+    run_it -it --rm  
+    ;;
+  taillog)
+    run_it -it --rm 
+    ;;
+  aafcli) 
+    shift
+    reset_sso
+    if [ -f aaf-cadi-aaf-$VERSION-full.jar ]; then
+      java -Dcadi_prop_files="$HOME/.aaf/sso.props" -jar aaf-cadi-aaf-$VERSION-full.jar $@
+    else 
+      echo "For local use, you need to have 'aaf-cadi-aaf-$VERSION-full.jar' (or newer)"
+    fi
+    ;;
+  local) 
+    shift
+    CMD="$1"
+    if [ -z "$2" ]; then 
+       CMD="$CMD $APP_FQI $APP_FQDN"
+    else 
+      if [ "-" = "$2" ]; then
+         CMD="$CMD $APP_FQI"
+      else
+         CMD="$CMD $2"
+      fi
+      if [ "-" = "$3" ]; then
+         CMD="$CMD $APP_FQDN"
+      else
+         CMD="$CMD $3"
+      fi
+    fi
+    reset_sso
+    sso aaf_id "$DEPLOY_FQI"
+    sso aaf_password "$DEPLOY_PASSWORD"
+    if [ -f aaf-cadi-aaf-$VERSION-full.jar ]; then
+      java -Dcadi_prop_files="$HOME/.aaf/sso.props" -cp aaf-cadi-aaf-$VERSION-full.jar org.onap.aaf.cadi.configure.Agent $CMD 
+    else 
+      echo "For local use, you need to have 'aaf-cadi-aaf-$VERSION-full.jar' (or newer)"
+    fi
+    ;;
+  *)
+    run_it --rm 
+    ;;
+esac
 
-fi