From c57ff5e158eecf4ba1eac9433e2a0ee318b72395 Mon Sep 17 00:00:00 2001
From: JPHammonds <JPHammonds@anl.gov>
Date: Tue, 13 Aug 2019 09:46:49 -0500
Subject: [PATCH] Code added to pull Certificate authority Org and Ubit Name
 from environent variable in dm.deploy.conf or dm_dev.deploy.conf. Code to
 pull LDAP info from dm.deploy.conf or dm_dev.deploy.conf.

---
 sbin/dm_create_ca.sh                 | 36 ++++++++++++++++++++++++++++
 sbin/dm_deploy_aps_db_web_service.sh |  2 ++
 sbin/dm_deploy_cat_web_service.sh    |  2 ++
 sbin/dm_deploy_daq_web_service.sh    |  2 ++
 sbin/dm_deploy_ds_web_service.sh     |  2 ++
 sbin/dm_deploy_proc_web_service.sh   |  2 ++
 6 files changed, 46 insertions(+)

diff --git a/sbin/dm_create_ca.sh b/sbin/dm_create_ca.sh
index 764d76ef..297f4e1a 100755
--- a/sbin/dm_create_ca.sh
+++ b/sbin/dm_create_ca.sh
@@ -12,12 +12,48 @@ if [ -z $DM_INSTALL_DIR ]; then
     export DM_INSTALL_DIR=`pwd`
 fi
 
+DM_ENV_FILE=${DM_ROOT_DIR}/setup.sh
+if [ ! -f ${DM_ENV_FILE} ]; then
+    echo "Environment file ${DM_ENV_FILE} does not exist." 
+    exit 2
+fi
+. ${DM_ENV_FILE} > /dev/null
+# Use first argument as db name, if provided
+if [ ! -z "$1" ]; then
+    DM_DB_NAME=$1
+fi
+DM_DB_USER=$DM_DB_NAME
+echo "Using DB name: $DM_DB_NAME"
+
+# Look for deployment file in etc directory, and use it to override
+# default entries
+deployConfigFile=${DM_DEPLOY_CONF:=$DM_ROOT_DIR/etc/$DM_DB_NAME.deploy.conf}
+if [ -f $deployConfigFile ]; then
+    echo "Using deployment config file: $deployConfigFile"
+    . $deployConfigFile
+else
+    echo "Deployment config file $deployConfigFile not found, using defaults"
+fi
+
+
 CA_ROOT=$DM_INSTALL_DIR/etc/CA
 CA_CONFIG=$DM_ROOT_DIR/etc/dm.openssl.conf
 CA_DESC="DM Certificate Authority"
 LOG_FILE=/tmp/dm-ca.log.$$
 LOCKFILE=$CA_ROOT/dm-ca.lock
 
+if [ ! -f $CA_CONFIG ]; then
+   echo "Generating dm.openssl.conf"
+   cmd="cat $CA_CONFIG.template \
+        | sed 's?CA_ORG_NAME_0?$CA_ORG_NAME_0?g' \
+        | sed 's?CA_ORG_NAME_1?$CA_ORG_NAME_1?g' \
+        | sed 's?CA_UNIT_NAME?$CA_UNIT_NAME?g' \
+        > $CA_CONFIG"
+   eval $cmd || exit 1
+else
+    echo "File dm.openssl.conf already exists"
+fi
+
 echo "Creating $CA_DESC"
 
 # Check for lock file
diff --git a/sbin/dm_deploy_aps_db_web_service.sh b/sbin/dm_deploy_aps_db_web_service.sh
index 44554c8e..ea6ee92b 100755
--- a/sbin/dm_deploy_aps_db_web_service.sh
+++ b/sbin/dm_deploy_aps_db_web_service.sh
@@ -141,6 +141,8 @@ if [ ! -f $DM_WEB_SERVICE_CONFIG_FILE ]; then
         | sed 's?DM_DS_WEB_SERVICE_URL?$DM_DS_WEB_SERVICE_URL?g' \
         | sed 's?DM_HOSTNAME?$DM_HOSTNAME?g' \
         | sed 's?DM_DB_NAME?$DM_DB_NAME?g' \
+        | sed 's?LDAP_SERVER_URL?LDAP_SERVER_URL?g' \
+        | sed 's?LDAP_DN_FORMAT?LDAP_DN_FORMAT?g' \
         > $DM_WEB_SERVICE_CONFIG_FILE"
     eval $cmd || exit 1
 else
diff --git a/sbin/dm_deploy_cat_web_service.sh b/sbin/dm_deploy_cat_web_service.sh
index 34a27728..ae1a2a42 100755
--- a/sbin/dm_deploy_cat_web_service.sh
+++ b/sbin/dm_deploy_cat_web_service.sh
@@ -149,6 +149,8 @@ if [ ! -f $DM_WEB_SERVICE_CONFIG_FILE ]; then
         | sed 's?DM_HOSTNAME?$DM_HOSTNAME?g' \
         | sed 's?DM_DB_NAME?$DM_DB_NAME?g' \
         | sed 's?DM_STATION_NAME?$DM_CAT_STATION_NAME?g' \
+        | sed 's?LDAP_SERVER_URL?LDAP_SERVER_URL?g' \
+        | sed 's?LDAP_DN_FORMAT?LDAP_DN_FORMAT?g' \
         > $DM_WEB_SERVICE_CONFIG_FILE"
     eval $cmd || exit 1
 else
diff --git a/sbin/dm_deploy_daq_web_service.sh b/sbin/dm_deploy_daq_web_service.sh
index 4169298c..a2c8f994 100755
--- a/sbin/dm_deploy_daq_web_service.sh
+++ b/sbin/dm_deploy_daq_web_service.sh
@@ -149,6 +149,8 @@ if [ ! -f $DM_WEB_SERVICE_CONFIG_FILE ]; then
         | sed 's?DM_HOSTNAME?$DM_HOSTNAME?g' \
         | sed 's?DM_DB_NAME?$DM_DB_NAME?g' \
         | sed 's?DM_STATION_NAME?$DM_DAQ_STATION_NAME?g' \
+        | sed 's?LDAP_SERVER_URL?LDAP_SERVER_URL?g' \
+        | sed 's?LDAP_DN_FORMAT?LDAP_DN_FORMAT?g' \
         > $DM_WEB_SERVICE_CONFIG_FILE"
     eval $cmd || exit 1
 else
diff --git a/sbin/dm_deploy_ds_web_service.sh b/sbin/dm_deploy_ds_web_service.sh
index 7334ad0a..df454ca9 100755
--- a/sbin/dm_deploy_ds_web_service.sh
+++ b/sbin/dm_deploy_ds_web_service.sh
@@ -132,6 +132,8 @@ if [ ! -f $DM_WEB_SERVICE_CONFIG_FILE ]; then
         | sed 's?DM_HOSTNAME?$DM_HOSTNAME?g' \
         | sed 's?DM_DB_NAME?$DM_DB_NAME?g' \
         | sed 's?DM_SYSTEM_UNIX_ACCOUNT?$DM_SYSTEM_UNIX_ACCOUNT?g' \
+        | sed 's?LDAP_SERVER_URL?LDAP_SERVER_URL?g' \
+        | sed 's?LDAP_DN_FORMAT?LDAP_DN_FORMAT?g' \
         > $DM_WEB_SERVICE_CONFIG_FILE"
     eval $cmd || exit 1
 else
diff --git a/sbin/dm_deploy_proc_web_service.sh b/sbin/dm_deploy_proc_web_service.sh
index 1074e41f..8e8eac5e 100755
--- a/sbin/dm_deploy_proc_web_service.sh
+++ b/sbin/dm_deploy_proc_web_service.sh
@@ -149,6 +149,8 @@ if [ ! -f $DM_WEB_SERVICE_CONFIG_FILE ]; then
         | sed 's?DM_HOSTNAME?$DM_HOSTNAME?g' \
         | sed 's?DM_DB_NAME?$DM_DB_NAME?g' \
         | sed 's?DM_STATION_NAME?$DM_PROC_STATION_NAME?g' \
+        | sed 's?LDAP_SERVER_URL?LDAP_SERVER_URL?g' \
+        | sed 's?LDAP_DN_FORMAT?LDAP_DN_FORMAT?g' \
         > $DM_WEB_SERVICE_CONFIG_FILE"
     eval $cmd || exit 1
 else
-- 
GitLab