summaryrefslogtreecommitdiffstats
path: root/auth
diff options
context:
space:
mode:
Diffstat (limited to 'auth')
-rw-r--r--auth/csit/.gitignore4
-rw-r--r--auth/csit/Dockerfile.client15
-rw-r--r--auth/csit/Dockerfile.config20
-rw-r--r--auth/csit/Dockerfile.core12
-rw-r--r--auth/csit/Dockerfile.ms21
-rw-r--r--auth/csit/README.txt40
-rw-r--r--auth/csit/aaf.sh44
-rw-r--r--auth/csit/agent.sh82
-rw-r--r--auth/csit/cass.props-e3
-rw-r--r--auth/csit/cass.props.init12
-rw-r--r--auth/csit/components7
-rw-r--r--auth/csit/d.props.init31
-rw-r--r--auth/csit/dbash.sh3
-rw-r--r--auth/csit/dbounce.sh3
-rw-r--r--auth/csit/dbuild.sh74
-rw-r--r--auth/csit/dclean.sh20
-rw-r--r--auth/csit/dpush.sh14
-rw-r--r--auth/csit/drun.sh88
-rw-r--r--auth/csit/dstart.sh15
-rw-r--r--auth/csit/dstop.sh14
20 files changed, 522 insertions, 0 deletions
diff --git a/auth/csit/.gitignore b/auth/csit/.gitignore
new file mode 100644
index 00000000..47b48da5
--- /dev/null
+++ b/auth/csit/.gitignore
@@ -0,0 +1,4 @@
+/local
+/d.props
+/aaf.props
+/cass.props
diff --git a/auth/csit/Dockerfile.client b/auth/csit/Dockerfile.client
new file mode 100644
index 00000000..2ecf6a5d
--- /dev/null
+++ b/auth/csit/Dockerfile.client
@@ -0,0 +1,15 @@
+FROM nexus3.onap.org:10001/onap/aaf/aaf-base-xenial:latest
+MAINTAINER AAF Team, AT&T 2018
+ENV VERSION=${AAF_VERSION}
+
+LABEL description="aaf_agent"
+LABEL version=${AAF_VERSION}
+
+COPY logs /opt/app/aaf_config/logs
+COPY bin/client.sh /opt/app/aaf_config/bin/agent.sh
+COPY bin/aaf-cadi*full.jar /opt/app/aaf_config/bin/
+COPY cert/*trust*.b64 /opt/app/aaf_config/cert/
+
+ENTRYPOINT ["/bin/bash","/opt/app/aaf_config/bin/agent.sh"]
+CMD []
+
diff --git a/auth/csit/Dockerfile.config b/auth/csit/Dockerfile.config
new file mode 100644
index 00000000..b2f2becf
--- /dev/null
+++ b/auth/csit/Dockerfile.config
@@ -0,0 +1,20 @@
+FROM nexus3.onap.org:10001/onap/aaf/aaf-base-xenial:latest
+MAINTAINER AAF Team, AT&T 2018
+ENV VERSION=${AAF_VERSION}
+
+LABEL description="aaf_config"
+LABEL version=${AAF_VERSION}
+
+COPY data/sample.identities.dat /opt/app/aaf_config/data/
+COPY etc /opt/app/aaf_config/etc
+COPY local /opt/app/aaf_config/local
+COPY cert /opt/app/aaf_config/cert
+COPY public /opt/app/aaf_config/public
+COPY CA /opt/app/aaf_config/CA
+COPY logs /opt/app/aaf_config/logs
+COPY bin/service.sh /opt/app/aaf_config/bin/agent.sh
+COPY bin/aaf-cadi-aaf-${VERSION}-full.jar /opt/app/aaf_config/bin/
+
+ENTRYPOINT ["/bin/bash","/opt/app/aaf_config/bin/agent.sh"]
+CMD []
+
diff --git a/auth/csit/Dockerfile.core b/auth/csit/Dockerfile.core
new file mode 100644
index 00000000..c511563a
--- /dev/null
+++ b/auth/csit/Dockerfile.core
@@ -0,0 +1,12 @@
+FROM nexus3.onap.org:10001/onap/aaf/aaf-base-xenial:latest
+MAINTAINER AAF Team, AT&T 2018
+ENV VERSION=${AAF_VERSION}
+
+LABEL description="aaf_core"
+LABEL version=${AAF_VERSION}
+
+COPY lib /opt/app/aaf/lib
+COPY bin /opt/app/aaf/bin
+COPY theme /opt/app/aaf/theme
+
+
diff --git a/auth/csit/Dockerfile.ms b/auth/csit/Dockerfile.ms
new file mode 100644
index 00000000..c1d9d0d5
--- /dev/null
+++ b/auth/csit/Dockerfile.ms
@@ -0,0 +1,21 @@
+FROM onap/aaf/aaf_core:${AAF_VERSION}
+MAINTAINER AAF Team, AT&T 2018
+ENV VERSION=${AAF_VERSION}
+
+LABEL description="aaf_${AAF_COMPONENT}"
+LABEL version=${AAF_VERSION}
+
+COPY pod/* /opt/app/aaf/pod/
+
+CMD ["/bin/bash","-c","/opt/app/aaf/bin/${AAF_COMPONENT}"]
+
+# For Debugging installation
+# CMD ["/bin/bash","-c","pwd;cd /opt/app/osaaf;find /opt/app/osaaf -depth;df -k; cat /opt/app/aaf/${AAF_COMPONENT}/bin/${AAF_COMPONENT};cat /etc/hosts;/opt/app/aaf/${AAF_COMPONENT}/bin/${AAF_COMPONENT}"]
+# Java Debugging VM Args
+# "-Xdebug",\
+# "-Xnoagent",\
+# "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000",\
+
+# TLS Debugging VM Args
+# "-Djavax.net.debug","ssl", \
+
diff --git a/auth/csit/README.txt b/auth/csit/README.txt
new file mode 100644
index 00000000..3eb554b1
--- /dev/null
+++ b/auth/csit/README.txt
@@ -0,0 +1,40 @@
+#
+# Edit the following in <your ONAP authz dir>/auth/sample/local
+#
+aaf.props
+org.osaaf.aaf.cm.ca.props (leave out Password)
+
+# cd to main docker dir
+cd ../../docker
+
+# Start the container in bash mode, so it stays up
+sh agent.sh bash
+
+# in another shell, find out your Container name
+docker container ls | grep aaf_agent
+
+# CD to directory with CA info in it.
+# (example)
+cd /opt/app/osaaf/CA/intermediate_7
+
+# copy keystore for this AAF Env
+docker container cp -L org.osaaf.aaf.p12 aaf_agent_<Your ID>:/opt/app/osaaf/local
+# (in Agent Window)
+agent encrypt cadi_keystore_password
+
+# If you intend to use Certman to sign certs, it is a "local" CA
+# copy Signing Keystore into container
+docker container cp -L org.osaaf.aaf.signer.p12 aaf_agent_<Your ID>:/opt/app/osaaf/local
+# (in Agent Window)
+agent encrypt cm_ca.local
+
+# Check to make sure all passwords are set
+grep "enc:" *.props
+
+
+# When good, run AAF
+bash drun.sh
+
+# watch logs in Agent Window
+cd ../logs
+sh taillog
diff --git a/auth/csit/aaf.sh b/auth/csit/aaf.sh
new file mode 100644
index 00000000..810bc64d
--- /dev/null
+++ b/auth/csit/aaf.sh
@@ -0,0 +1,44 @@
+#!/bin/bash
+. ./d.props
+if [ -e ./cass.props ]; then
+ . ./cass.props
+fi
+
+DOCKER=${DOCKER:=docker}
+function run_it() {
+ $DOCKER run $@ \
+ -v "aaf_config:$CONF_ROOT_DIR" \
+ --add-host="$HOSTNAME:$HOST_IP" \
+ --add-host="aaf.osaaf.org:$HOST_IP" \
+ --env HOSTNAME=${HOSTNAME} \
+ --env AAF_ENV=${AAF_ENV} \
+ --env AAF_REGISTER_AS=${AAF_REGISTER_AS} \
+ --env LATITUDE=${LATITUDE} \
+ --env LONGITUDE=${LONGITUDE} \
+ --env CASS_HOST=${CASS_HOST} \
+ --env CASSANDRA_CLUSTER=${CASSANDRA_CLUSTER} \
+ --env CASSANDRA_USER=${CASSANDRA_USER} \
+ --env CASSANDRA_PASSWORD=${CASSANDRA_PASSWORD} \
+ --env CASSANDRA_PORT=${CASSANDRA_PORT} \
+ --name aaf_config_$USER \
+ $PREFIX${ORG}/${PROJECT}/aaf_config:${VERSION} \
+ /bin/bash $PARAMS
+}
+
+function set_prop() {
+ $DOCKER exec -i -t aaf_config_$USER /bin/bash /opt/app/aaf_config/bin/agent.sh NOOP setProp "$1" "$2" "$3"
+}
+
+function encrypt_it() {
+ $DOCKER exec -i -t aaf_config_$USER /bin/bash /opt/app/aaf_config/bin/agent.sh NOOP encrypt "$1" "$2"
+}
+
+function set_it() {
+ $DOCKER exec -i -t aaf_config_$USER /bin/bash /opt/app/aaf_config/bin/agent.sh NOOP setProp "$1" "$2"
+}
+
+PARAMS="$@"
+if [ "$PARAMS" != "" ]; then
+ run_it -it --rm
+fi
+
diff --git a/auth/csit/agent.sh b/auth/csit/agent.sh
new file mode 100644
index 00000000..af04cf29
--- /dev/null
+++ b/auth/csit/agent.sh
@@ -0,0 +1,82 @@
+#!/bin/bash
+
+
+# Fill out "aaf.props" if not filled out already
+if [ ! -e aaf.props ]; then
+ > ./aaf.props
+fi
+
+. ./aaf.props
+
+DOCKER=${DOCKER:=docker}
+CADI_VERSION=${CADI_VERSION:=2.1.2-SNAPSHOT}
+
+for V in VERSION DOCKER_REPOSITORY 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=""
+ ;;
+ 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";;
+ DRIVER) PROMPT=$V;DEF=local;;
+ VERSION) PROMPT="CADI Version";DEF=$CADI_VERSION;;
+ LATITUDE|LONGITUDE) PROMPT="$V of Node";;
+ *) PROMPT=$V;;
+ esac
+ if [ "$DEF" = "" ]; then
+ PROMPT="$PROMPT: "
+ else
+ PROMPT="$PROMPT ($DEF): "
+ fi
+ read -p "$PROMPT" VAR
+ if [ "$VAR" = "" ]; then
+ if [ "$DEF" = "" ]; then
+ echo "agent.sh needs each value queried. Please start again."
+ exit
+ else
+ VAR=$DEF
+ fi
+ fi
+ echo "$V=$VAR" >> ./aaf.props
+ 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
+
+$DOCKER run \
+ -it \
+ --rm \
+ -v "${VOLUME}:/opt/app/osaaf" \
+ --add-host="$AAF_FQDN:$AAF_FQDN_IP" \
+ --env AAF_FQDN=${AAF_FQDN} \
+ --env DEPLOY_FQI=${DEPLOY_FQI} \
+ --env DEPLOY_PASSWORD=${DEPLOY_PASSWORD} \
+ --env APP_FQI=${APP_FQI} \
+ --env APP_FQDN=${APP_FQDN} \
+ --env LATITUDE=${LATITUDE} \
+ --env LONGITUDE=${LONGITUDE} \
+ --name aaf_agent_$USER \
+ "$PREFIX"onap/aaf/aaf_agent:$VERSION \
+ /bin/bash "$@"
diff --git a/auth/csit/cass.props-e b/auth/csit/cass.props-e
new file mode 100644
index 00000000..fc9bab43
--- /dev/null
+++ b/auth/csit/cass.props-e
@@ -0,0 +1,3 @@
+#!/bin/bash
+
+CASS_HOST=cass.aaf.osaaf.org:<Cass IP>
diff --git a/auth/csit/cass.props.init b/auth/csit/cass.props.init
new file mode 100644
index 00000000..75127424
--- /dev/null
+++ b/auth/csit/cass.props.init
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+# Use for assigning to /etc/hosts, when DNS doesn't have Cassandra FQDN
+CASS_HOST=cass.aaf.osaaf.org:<IP of running Cass>
+
+####
+# Detailed Cassandra Environmental Variables
+####
+# CASSANDRA_CLUSTER=<unsert means default, host from CASS_HOST above, or "localhost">
+# CASSANDRA_USER=<unset means default (cassandra)>
+# CASSANDRA_PASSWORD=<unset means default (cassandra)>
+# CASSANDRA_PORT=<unset means default (9042)>
diff --git a/auth/csit/components b/auth/csit/components
new file mode 100644
index 00000000..0a4a66ad
--- /dev/null
+++ b/auth/csit/components
@@ -0,0 +1,7 @@
+service
+locate
+oauth
+gui
+fs
+cm
+hello
diff --git a/auth/csit/d.props.init b/auth/csit/d.props.init
new file mode 100644
index 00000000..0322cd67
--- /dev/null
+++ b/auth/csit/d.props.init
@@ -0,0 +1,31 @@
+# Variables for building Docker entities
+ORG=onap
+PROJECT=aaf
+DOCKER_REPOSITORY=nexus3.onap.org:10003
+VERSION=2.1.2-SNAPSHOT
+CONF_ROOT_DIR=/opt/app/osaaf
+# For local builds, set PREFIX=
+PREFIX="$DOCKER_REPOSITORY/"
+
+# Local Env info
+HOSTNAME=aaf.osaaf.org
+HOST_IP=
+
+# AAF Machine info
+AAF_ENV=DEV
+AAF_REGISTER_AS=$HOSTNAME
+LATITUDE=
+LONGITUDE=
+
+# Initial AAF Certificate (not Generated)
+CADI_X509_ISSUERS="CN=intermediateCA_1, OU=OSAAF, O=ONAP, C=US:CN=intermediateCA_7, OU=OSAAF, O=ONAP, C=US"
+AAF_INITIAL_X509_P12=
+AAF_INITIAL_X509_PASSWORD=
+CADI_X509_ISSUERS=
+
+# CA info (leave blank unless functioning as CA)
+CM_CA_LOCAL=
+AAF_SIGNER_P12=
+AAF_SIGNER_PASSWORD=
+AAF_SIGNER_ALIAS=
+
diff --git a/auth/csit/dbash.sh b/auth/csit/dbash.sh
new file mode 100644
index 00000000..9f84427a
--- /dev/null
+++ b/auth/csit/dbash.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+. ./d.props
+${DOCKER:=docker} exec -it aaf_$1 bash
diff --git a/auth/csit/dbounce.sh b/auth/csit/dbounce.sh
new file mode 100644
index 00000000..dde83897
--- /dev/null
+++ b/auth/csit/dbounce.sh
@@ -0,0 +1,3 @@
+#!/bin/bash
+bash ./dstop.sh "$@"
+bash ./dstart.sh "$@"
diff --git a/auth/csit/dbuild.sh b/auth/csit/dbuild.sh
new file mode 100644
index 00000000..2b6c006c
--- /dev/null
+++ b/auth/csit/dbuild.sh
@@ -0,0 +1,74 @@
+#!/bin/bash
+#
+# Docker Building Script. Reads all the components generated by install, on per-version basis
+#
+# Pull in Variables from d.props
+if [ ! -e ./d.props ]; then
+ cp d.props.init d.props
+fi
+
+. ./d.props
+
+DOCKER=${DOCKER:=docker}
+
+echo "Building Containers for aaf components, version $VERSION"
+
+# AAF_cass now needs a version...
+cd ../auth-cass/docker
+bash ./dbuild.sh
+cd -
+
+# Create the AAF Config (Security) Images
+cd ..
+cp ../cadi/aaf/target/aaf-cadi-aaf-${VERSION}-full.jar sample/bin
+cp -Rf ../conf/CA sample
+
+# AAF Config image (for AAF itself)
+sed -e 's/${AAF_VERSION}/'${VERSION}'/g' -e 's/${AAF_COMPONENT}/'${AAF_COMPONENT}'/g' docker/Dockerfile.config > sample/Dockerfile
+$DOCKER build -t ${ORG}/${PROJECT}/aaf_config:${VERSION} sample
+$DOCKER tag ${ORG}/${PROJECT}/aaf_config:${VERSION} ${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/aaf_config:${VERSION}
+$DOCKER tag ${ORG}/${PROJECT}/aaf_config:${VERSION} ${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/latest
+
+# AAF Agent Image (for Clients)
+sed -e 's/${AAF_VERSION}/'${VERSION}'/g' -e 's/${AAF_COMPONENT}/'${AAF_COMPONENT}'/g' docker/Dockerfile.client > sample/Dockerfile
+$DOCKER build -t ${ORG}/${PROJECT}/aaf_agent:${VERSION} sample
+$DOCKER tag ${ORG}/${PROJECT}/aaf_agent:${VERSION} ${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/aaf_agent:${VERSION}
+$DOCKER tag ${ORG}/${PROJECT}/aaf_agent:${VERSION} ${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/aaf_agent:latest
+
+# Clean up
+rm sample/Dockerfile sample/bin/aaf-cadi-aaf-${VERSION}-full.jar
+rm -Rf sample/CA
+cd -
+
+########
+# Second, build a core Docker Image
+echo Building aaf_$AAF_COMPONENT...
+# Apply currrent Properties to Docker file, and put in place.
+sed -e 's/${AAF_VERSION}/'${VERSION}'/g' -e 's/${AAF_COMPONENT}/'${AAF_COMPONENT}'/g' Dockerfile.core >../aaf_${VERSION}/Dockerfile
+cd ..
+$DOCKER build -t ${ORG}/${PROJECT}/aaf_core:${VERSION} aaf_${VERSION}
+$DOCKER tag ${ORG}/${PROJECT}/aaf_core:${VERSION} ${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/aaf_core:${VERSION}
+$DOCKER tag ${ORG}/${PROJECT}/aaf_core:${VERSION} ${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/aaf_core:latest
+rm aaf_${VERSION}/Dockerfile
+cd -
+
+if ["$1" == ""]; then
+ AAF_COMPONENTS=$(ls ../aaf_*HOT/bin | grep -v '\.')
+else
+ AAF_COMPONENTS=$1
+fi
+
+mkdir -p ../aaf_${VERSION}/pod
+cp ../sample/bin/pod_wait.sh ../aaf_${VERSION}/pod
+for AAF_COMPONENT in ${AAF_COMPONENTS}; do
+ echo Building aaf_$AAF_COMPONENT...
+ sed -e 's/${AAF_VERSION}/'${VERSION}'/g' -e 's/${AAF_COMPONENT}/'${AAF_COMPONENT}'/g' Dockerfile.ms >../aaf_${VERSION}/Dockerfile
+ cd ..
+ $DOCKER build -t ${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${VERSION} aaf_${VERSION}
+ $DOCKER tag ${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${VERSION} ${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${VERSION}
+ $DOCKER tag ${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${VERSION} ${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:latest
+ rm aaf_${VERSION}/Dockerfile
+ cd -
+done
+rm ../aaf_${VERSION}/pod/*
+rmdir ../aaf_${VERSION}/pod
diff --git a/auth/csit/dclean.sh b/auth/csit/dclean.sh
new file mode 100644
index 00000000..b943d08a
--- /dev/null
+++ b/auth/csit/dclean.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+# Pull in Variables from d.props
+. ./d.props
+DOCKER=${DOCKER:=docker}
+
+if [ "$1" == "" ]; then
+ AAF_COMPONENTS="$(cat components) config core agent"
+else
+ AAF_COMPONENTS="$@"
+fi
+
+echo "Y" | $DOCKER container prune
+for AAF_COMPONENT in ${AAF_COMPONENTS}; do
+ $DOCKER image rm $ORG/$PROJECT/aaf_$AAF_COMPONENT:${VERSION}
+ if [ ! "$PREFIX" = "" ]; then
+ $DOCKER image rm $DOCKER_REPOSITORY/$ORG/$PROJECT/aaf_$AAF_COMPONENT:${VERSION}
+ $DOCKER image rm $DOCKER_REPOSITORY/$ORG/$PROJECT/aaf_$AAF_COMPONENT:latest
+ fi
+done
+echo "Y" | $DOCKER image prune
diff --git a/auth/csit/dpush.sh b/auth/csit/dpush.sh
new file mode 100644
index 00000000..f29b4c91
--- /dev/null
+++ b/auth/csit/dpush.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+# Docker push Script. Reads all the components generated by install, on per-version basis
+#
+# Pull in Variables from d.props
+. ./d.props
+DOCKER=${DOCKER:=docker}
+
+AAF_COMPONENTS="config agent core cass $(cat components) "
+
+for AAF_COMPONENT in ${AAF_COMPONENTS}; do
+ # docker push ${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${OLD_VERSION}
+ $DOCKER push ${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${VERSION}
+ # docker push ${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${NEW_VERSION}
+done
diff --git a/auth/csit/drun.sh b/auth/csit/drun.sh
new file mode 100644
index 00000000..be6795be
--- /dev/null
+++ b/auth/csit/drun.sh
@@ -0,0 +1,88 @@
+#!/bin/bash
+# Pull in Variables from d.props
+. ./d.props
+
+# Only need Cassandra Link Info when initializing the container.
+if [ ! -e ./cass.props ]; then
+ cp cass.props.init cass.props
+fi
+. ./cass.props
+
+DOCKER=${DOCKER:=docker}
+
+CASS_IS_SET="$(grep '<Cass IP>' cass.props)"
+if [ -n "$CASS_IS_SET" ]; then
+ CASS_IP="$($DOCKER container inspect aaf_cass | grep \"IPAddress\": -m 1 | cut -d '"' -f 4)"
+ if [ -n "$CASS_IP" ]; then
+ sed -i -e "s/\(^.*:\).*/\1$CASS_IP/" cass.props
+ else
+ echo "Set CASSASNDRA IP in cass.props"
+ exit
+ fi
+fi
+
+. ./cass.props
+
+bash aaf.sh onap
+
+if [ "$1" == "" ]; then
+ AAF_COMPONENTS=$(cat components)
+else
+ AAF_COMPONENTS="$@"
+fi
+
+for AAF_COMPONENT in ${AAF_COMPONENTS}; do
+ case "$AAF_COMPONENT" in
+ "service")
+ PORTMAP="8100:8100"
+ LINKS="--link aaf_cass:cassandra --add-host=$CASS_HOST"
+ ;;
+ "locate")
+ PORTMAP="8095:8095"
+ LINKS="--link aaf_cass:cassandra --add-host=$CASS_HOST"
+ ;;
+ "oauth")
+ PORTMAP="8140:8140"
+ LINKS="--link aaf_cass:cassandra --add-host=$CASS_HOST"
+ ;;
+ "gui")
+ PORTMAP="8200:8200"
+ ;;
+ "cm")
+ PORTMAP="8150:8150"
+ LINKS="--link aaf_cass:cassandra --add-host=$CASS_HOST"
+ ;;
+ "hello")
+ PORTMAP="8130:8130"
+ ;;
+ "fs")
+ PORTMAP="80:8096"
+ ;;
+ esac
+
+ echo Starting aaf_$AAF_COMPONENT...
+
+ if [ -n "$AAF_REGISTER_AS" ] && [ "$HOSTNAME" != "$AAF_REGISTER_AS" ]; then
+ AH_ROOT="$HOSTNAME $AAF_REGISTER_AS"
+ else
+ AH_ROOT="$HOSTNAME"
+ fi
+
+ for A in aaf.osaaf.org $AH_ROOT; do
+ ADD_HOST="$ADD_HOST --add-host=$A:$HOST_IP"
+ done
+
+ $DOCKER run \
+ -d \
+ --name aaf_$AAF_COMPONENT \
+ --hostname="${AAF_COMPONENT}.aaf.osaaf.org" \
+ $ADD_HOST \
+ ${LINKS} \
+ --env AAF_ENV=${AAF_ENV} \
+ --env AAF_REGISTER_AS=${AAF_REGISTER_AS} \
+ --env LATITUDE=${LATITUDE} \
+ --env LONGITUDE=${LONGITUDE} \
+ --publish $PORTMAP \
+ -v "aaf_config:$CONF_ROOT_DIR" \
+ ${PREFIX}${ORG}/${PROJECT}/aaf_${AAF_COMPONENT}:${VERSION}
+done
diff --git a/auth/csit/dstart.sh b/auth/csit/dstart.sh
new file mode 100644
index 00000000..6ca4baee
--- /dev/null
+++ b/auth/csit/dstart.sh
@@ -0,0 +1,15 @@
+#!/bin/bash
+# Pull in Props
+. ./d.props
+
+DOCKER=${DOCKER:=docker}
+
+if [ "$1" == "" ]; then
+ AAF_COMPONENTS=$(cat components)
+else
+ AAF_COMPONENTS="$@"
+fi
+
+for AAF_COMPONENT in ${AAF_COMPONENTS}; do
+ $DOCKER start aaf_$AAF_COMPONENT
+done
diff --git a/auth/csit/dstop.sh b/auth/csit/dstop.sh
new file mode 100644
index 00000000..85e6f285
--- /dev/null
+++ b/auth/csit/dstop.sh
@@ -0,0 +1,14 @@
+#!/bin/bash
+# Pull in Properties
+. ./d.props
+
+DOCKER=${DOCKER:=docker}
+if [ "$1" == "" ]; then
+ AAF_COMPONENTS=$(cat components)
+else
+ AAF_COMPONENTS="$@"
+fi
+
+for AAF_COMPONENT in ${AAF_COMPONENTS}; do
+ $DOCKER stop aaf_$AAF_COMPONENT
+done