From 64677b091bf7c5d287e33b0bb92ed3060055fc8a Mon Sep 17 00:00:00 2001
From: JPHammonds <JPHammonds@anl.gov>
Date: Fri, 2 Aug 2019 16:23:10 -0500
Subject: [PATCH] Changes to allow changing the domain name using
 DM_DOMAIN_NAME Change method of deployment. It was copying the files into the
 autodeploy directory & removing as needed.  Now it is using the asadmin
 commands "deploy" and "undeploy" sub commands.

---
 sbin/dm_backup.sh                 |  5 +++-
 sbin/dm_configure_web_portal.sh   | 13 +++++-----
 sbin/dm_deploy_web_portal.sh      | 40 +++++++++++++++++--------------
 sbin/dm_unconfigure_web_portal.sh |  8 ++++---
 sbin/dm_undeploy_web_portal.sh    | 19 ++++++++++-----
 5 files changed, 50 insertions(+), 35 deletions(-)

diff --git a/sbin/dm_backup.sh b/sbin/dm_backup.sh
index be252817..87d7aa4a 100755
--- a/sbin/dm_backup.sh
+++ b/sbin/dm_backup.sh
@@ -35,6 +35,9 @@ if [ ! -z "$1" ]; then
 fi
 echo "Backing up $DM_DB_NAME"
 
+#assign default domain name domain1 if it was not previously set.
+DM_DOMAIN_NAME=${DM_DOMAIN_NAME:=domain1}
+
 # Look for deployment file in etc directory, and use it to override
 # default entries
 deployConfigFile=$DM_ROOT_DIR/etc/${DM_DB_NAME}.deploy.conf
@@ -114,7 +117,7 @@ rm -f $processingFile
 
 # Backup web app
 #echo "Backing up $DM_DB_NAME web app"
-#rsync -arlvP $DM_SUPPORT_DIR/opt/payara/glassfish/domains/domain1/autodeploy/$DM_DB_NAME.war $DM_BACKUP_DIR
+#rsync -arlvP $DM_SUPPORT_DIR/opt/payara/glassfish/domains/$DM_DOMAIN_NAME/autodeploy/$DM_DB_NAME.war $DM_BACKUP_DIR
 
 cleanup
 echo "Backup of DB $DM_DB_NAME is done."
diff --git a/sbin/dm_configure_web_portal.sh b/sbin/dm_configure_web_portal.sh
index 6665b06e..d66a2660 100755
--- a/sbin/dm_configure_web_portal.sh
+++ b/sbin/dm_configure_web_portal.sh
@@ -27,6 +27,9 @@ if [ ! -z "$1" ]; then
 fi
 echo "Using DB name: $DM_DB_NAME"
 
+#assign default domain name domain1 if it was not previously set.
+DM_DOMAIN_NAME=${DM_DOMAIN_NAME:=domain1}
+
 # Look for deployment file in etc directory, and use it to override
 # default entries
 deployConfigFile=$DM_ROOT_DIR/etc/${DM_DB_NAME}.deploy.conf
@@ -53,11 +56,10 @@ DM_DB_USER=${DM_DB_USER:=dm}
 DM_DB_PASSWORD=${DM_DB_PASSWORD:=dm}
 DM_DB_POOL=postgresql_${DM_DB_NAME}_DbPool
 DM_DATA_SOURCE=${DM_DB_NAME}_DataSource
-DM_DOMAIN=domain1
 
 # copy db driver
 echo "Copying db driver"
-rsync -ar $DM_ROOT_DIR/src/java/DmWebPortal/lib/postgresql*.jdbc41.jar $PAYARA_DIR/glassfish/domains/${DM_DOMAIN}/lib/ext
+rsync -ar $DM_ROOT_DIR/src/java/DmWebPortal/lib/postgresql*.jdbc41.jar $PAYARA_DIR/glassfish/domains/${DM_DOMAIN_NAME}/lib/ext
 
 # Check password from file
 passwordFile=$DM_INSTALL_DIR/etc/$DM_DB_NAME.db.passwd
@@ -67,8 +69,8 @@ fi
 
 # restart server
 echo "Restarting payara"
-$ASADMIN_CMD stop-domain ${DM_DOMAIN}
-$ASADMIN_CMD start-domain ${DM_DOMAIN}
+$ASADMIN_CMD stop-domain ${DM_DOMAIN_NAME}
+$ASADMIN_CMD start-domain ${DM_DOMAIN_NAME}
 
 # create JDBC connection pool
 echo "Creating JDBC connection pool $DM_DB_POOL"
@@ -78,9 +80,6 @@ $ASADMIN_CMD create-jdbc-connection-pool --datasourceclassname org.postgresql.ds
 echo "Creating JDBC resource $DM_DATA_SOURCE"
 $ASADMIN_CMD create-jdbc-resource --connectionpoolid ${DM_DB_POOL} ${DM_DATA_SOURCE}
 
-# Remove unsecure access on port 8080
-$ASADMIN_CMD delete-http-listener "http-listener-1"
-
 # test the connection settings 
 echo "Testing connection"
 $ASADMIN_CMD ping-connection-pool $DM_DB_POOL || exit 1
diff --git a/sbin/dm_deploy_web_portal.sh b/sbin/dm_deploy_web_portal.sh
index 24f51257..46aaf894 100755
--- a/sbin/dm_deploy_web_portal.sh
+++ b/sbin/dm_deploy_web_portal.sh
@@ -27,6 +27,10 @@ if [ ! -z "$1" ]; then
 fi
 echo "Using DB name: $DM_DB_NAME"
 
+#assign default domain name domain1 if it was not previously set.  Override this 
+by defining in setup.sh
+DM_DOMAIN_NAME=${DM_DOMAIN_NAME:=domain1}
+
 # Look for deployment file in etc directory, and use it to override
 # default entries
 deployConfigFile=$DM_ROOT_DIR/etc/${DM_DB_NAME}.deploy.conf
@@ -43,7 +47,7 @@ DM_HOSTNAME=`hostname -f`
 DM_DATE=`date +%Y.%m.%d`
 DM_CONTEXT_ROOT=${DM_CONTEXT_ROOT:=dm}
 PAYARA_DIR=$DM_OPT_DIR/payara
-DM_DEPLOY_DIR=$PAYARA_DIR/glassfish/domains/domain1/autodeploy
+#DM_DEPLOY_DIR=$PAYARA_DIR/glassfish/domains/$DM_DOMAIN_NAME/autodeploy
 DM_PORTAL_DIST_DIR=$DM_ROOT_DIR/src/java/DmWebPortal/dist
 DM_BASE_DIST_DIR=$DM_ROOT_DIR/src/java/DmBase/dist
 DM_API_DIST_DIR=$DM_ROOT_DIR/src/java/DmApi/dist
@@ -118,24 +122,24 @@ jar cf ../$DM_WAR_FILE *
 export AS_JAVA=$JAVA_HOME
 ASADMIN_CMD=$PAYARA_DIR/bin/asadmin
 
-# copy war file
-echo "Copying war file $DM_PORTAL_DIST_DIR/$DM_WAR_FILE to $DM_DEPLOY_DIR"
-rm -f $DM_DEPLOY_DIR/${DM_WAR_FILE}_*
-cp $DM_PORTAL_DIST_DIR/$DM_WAR_FILE $DM_DEPLOY_DIR
+echo "Attempt to undeploy any current implementation of the application"
+$ASADMIN_CMD undeploy $DM_CONTEXT_ROOT
+echo "Attempting to deploy a new version of the application"
+$ASADMIN_CMD deploy $DM_PORTAL_DIST_DIR/$DM_WAR_FILE
 
 # wait on deployment
-echo "Waiting on war deployment..."
-WAIT_TIME=60
-cd $DM_DEPLOY_DIR
-t=0
-while [ $t -lt $WAIT_TIME ]; do
-    sleep 1
-    deploymentStatus=`ls -c1 ${DM_WAR_FILE}_* 2> /dev/null | sed 's?.*war_??g'`
-    if [ ! -z "$deploymentStatus" ]; then
-        break
-    fi
-    t=`expr $t + 1`
-done
-echo "Deployment Status: $deploymentStatus"
+#echo "Waiting on war deployment..."
+#WAIT_TIME=60
+#cd $DM_DEPLOY_DIR
+#t=0
+#while [ $t -lt $WAIT_TIME ]; do
+#    sleep 1
+#    deploymentStatus=`ls -c1 ${DM_WAR_FILE}_* 2> /dev/null | sed 's?.*war_??g'`
+#    if [ ! -z "$deploymentStatus" ]; then
+#        break
+#    fi
+#    t=`expr $t + 1`
+#done
+#echo "Deployment Status: $deploymentStatus"
 
 
diff --git a/sbin/dm_unconfigure_web_portal.sh b/sbin/dm_unconfigure_web_portal.sh
index 99d3ba7e..6b060cc4 100755
--- a/sbin/dm_unconfigure_web_portal.sh
+++ b/sbin/dm_unconfigure_web_portal.sh
@@ -37,6 +37,9 @@ else
     echo "Deployment config file $deployConfigFile not found, using defaults"
 fi
 
+#assign default domain name domain1 if it was not previously set.
+DM_DOMAIN_NAME=${DM_DOMAIN_NAME:=domain1}
+
 DM_HOST_ARCH=`uname | tr [A-Z] [a-z]`-`uname -m`
 JAVA_HOME=$DM_OPT_DIR/java/$DM_HOST_ARCH
 PAYARA_DIR=$DM_OPT_DIR/payara
@@ -46,12 +49,11 @@ ASADMIN_CMD=$PAYARA_DIR/bin/asadmin
 
 DM_DB_POOL=postgresql_${DM_DB_NAME}_DbPool
 DM_DATA_SOURCE=${DM_DB_NAME}_DataSource
-DM_DOMAIN=domain1
 
 # restart server
 echo "Restarting payara"
-$ASADMIN_CMD stop-domain ${DM_DOMAIN}
-$ASADMIN_CMD start-domain ${DM_DOMAIN}
+$ASADMIN_CMD stop-domain ${DM_DOMAIN_NAME}
+$ASADMIN_CMD start-domain ${DM_DOMAIN_NAME}
 
 # delete JDBC resource associated with this connection pool
 echo "Deleting JDBC resource $DM_DATA_SOURCE"
diff --git a/sbin/dm_undeploy_web_portal.sh b/sbin/dm_undeploy_web_portal.sh
index 1efdd845..be8d946c 100755
--- a/sbin/dm_undeploy_web_portal.sh
+++ b/sbin/dm_undeploy_web_portal.sh
@@ -27,6 +27,9 @@ if [ ! -z "$1" ]; then
 fi
 echo "Using DB name: $DM_DB_NAME"
 
+#assign default domain name domain1 if it was not previously set.
+DM_DOMAIN_NAME=${DM_DOMAIN_NAME:=domain1}
+
 # Look for deployment file in etc directory, and use it to override
 # default entries
 deployConfigFile=$DM_ROOT_DIR/etc/${DM_DB_NAME}.deploy.conf
@@ -41,17 +44,21 @@ DM_HOST_ARCH=`uname | tr [A-Z] [a-z]`-`uname -m`
 DM_CONTEXT_ROOT=${DM_CONTEXT_ROOT:=dm}
 JAVA_HOME=$DM_OPT_DIR/java/$DM_HOST_ARCH
 PAYARA_DIR=$DM_OPT_DIR/payara
-DM_DEPLOY_DIR=$PAYARA_DIR/glassfish/domains/domain1/autodeploy
-DM_APP_DIR=$PAYARA_DIR/glassfish/domains/domain1/applications/$DM_CONTEXT_ROOT
+DM_DOMAIN_DIR=$PAYARA_DIR/glassfish/domains/$DM_DOMAIN_NAME
+#DM_DEPLOY_DIR=$DM_DOMAIN_DIR/autodeploy
+DM_APP_DIR=$DM_DOMAIN_DIR/applications/$DM_CONTEXT_ROOT
 DM_DIST_DIR=$DM_ROOT_DIR/src/java/DmWebPortal/dist
 DM_WAR_FILE=$DM_CONTEXT_ROOT.war
 
 export AS_JAVA=$JAVA_HOME
 ASADMIN_CMD=$PAYARA_DIR/bin/asadmin
 
+echo "Undeploying the application"
+$ASADMIN_CMD undeploy $DM_CONTEXT_ROOT
+
 # remove war file from autodeploy directory
-echo "Removing war file $DM_DEPLOY_DIR/$DM_WAR_FILE"
-rm -f $DM_DEPLOY_DIR/${DM_WAR_FILE}*
+#echo "Removing war file $DM_DEPLOY_DIR/$DM_WAR_FILE"
+#rm -f $DM_DEPLOY_DIR/${DM_WAR_FILE}*
 
 # remove war file from autodeploy directory
 if [ -d $DM_APP_DIR ]; then
@@ -63,8 +70,8 @@ fi
 
 # restart server
 echo "Restarting payara"
-$ASADMIN_CMD stop-domain ${DM_DOMAIN}
-$ASADMIN_CMD start-domain ${DM_DOMAIN}
+$ASADMIN_CMD stop-domain ${DM_DOMAIN_NAME}
+$ASADMIN_CMD start-domain ${DM_DOMAIN_NAME}
 
 
 
-- 
GitLab