Batch work and client
[aaf/authz.git] / auth / docker / agent.sh
index 33db109..a2b1183 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,33 @@ 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.10-SNAPSHOT}
 
-for V in $PROPS; do
+for V in VERSION DOCKER_REPOSITORY HOSTNAME 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=""
+               ;;
+        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 ' ')
-                     ;;
+               # 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;;
+         VOLUME)     PROMPT="APP's AAF Configuration Volume";;
          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;;
+        VERSION)    PROMPT="CADI Version";DEF=$CADI_VERSION;;
          LATITUDE|LONGITUDE) PROMPT="$V of Node";;
          *)          PROMPT=$V;;
       esac
@@ -83,11 +65,12 @@ 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
@@ -95,24 +78,28 @@ for V in $PROPS; do
 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() {
+  LINKS="--link aaf-locate"
+  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" \
+    $LINKS \
     --env AAF_FQDN=${AAF_FQDN} \
     --env DEPLOY_FQI=${DEPLOY_FQI} \
     --env DEPLOY_PASSWORD=${DEPLOY_PASSWORD} \
@@ -120,120 +107,19 @@ if [[ "$ADMIN" =~ docker ]]; then
     --env APP_FQDN=${APP_FQDN} \
     --env LATITUDE=${LATITUDE} \
     --env LONGITUDE=${LONGITUDE} \
-    --name aaf_agent_$USER \
+    --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
-  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'"
-          }
-        ]
-      }
-    ]
-  }
-}'
-     
+    bash -c "bash /opt/app/aaf_config/bin/agent.sh $PARAMS"
+}
+
+PARAMS=$@
+case "$1" in 
+  bash)
+    PARAMS="&& cd /opt/app/osaaf/local && exec bash"
+    run_it -it --rm  
+    ;;
+  *)
+    run_it --rm 
+    ;;
+esac
 
-fi