61bd70ac016c2b0691753bb0f5acafc7bf2ad53b
angie
  Tue May 14 09:49:16 2019 -0700
Adding convertUserSessions.sh and sessionDataConvert.sh for bulk conversion of old saved sessions to use sessionDataDir/sessionDataDbPrefix.  refs #22440

diff --git src/hg/hgSession/convertUserSessions.sh src/hg/hgSession/convertUserSessions.sh
new file mode 100755
index 0000000..2016cd3
--- /dev/null
+++ src/hg/hgSession/convertUserSessions.sh
@@ -0,0 +1,55 @@
+#!/usr/bin/env bash
+
+HELP_STR="usage: convertUserSessions.sh userName
+userName must be %-encoded as it is in namedSessionDb"
+
+# cgiDir for hg.conf{,.private} settings
+cgiDir=/usr/local/apache/cgi-bin
+
+# delay (in seconds) between calls to sessionDataConvert.sh to avoid hammering server & hgcentral
+delay=5
+
+# Look for a setting in hg.conf (and hg.conf.private if not in hg.conf).
+function getSetting()
+{
+    local settingName=$1
+    local settingVal=$(grep ^$settingName $cgiDir/hg.conf | sed -e 's/.*=//;')
+    if [ "$settingVal" == "" -a -f $cgiDir/hg.conf.private ] ; then
+        settingVal=$(grep ^$settingName $cgiDir/hg.conf.private | sed -e 's/.*=//;')
+    fi
+    if [ "$settingVal" == "" ]; then
+        echo "Unable to find $settingName setting in cgi-bin hg.conf or hg.conf.private"
+        exit 1
+    fi
+    echo $settingVal
+}
+
+# Check args
+if [[ $# -eq 0 ]] ; then
+    echo "$HELP_STR"
+    exit 0
+elif [[ $# -ne 1 ]] ; then
+    echo "Wrong number of arguments ($#; need 1)"
+    echo "$HELP_STR"
+    exit 1
+fi
+encUserName=$1
+
+# Get sessions for user
+centralHost=$(getSetting "central.host")
+centralUser=$(getSetting "central.user")
+centralPwd=$(getSetting "central.password")
+centralDb=$(getSetting "central.db")
+sessionNames=$(mysql -h $centralHost -u $centralUser -p"$centralPwd" $centralDb \
+                 -NBe "select sessionName from namedSessionDb where userName = '$encUserName'")
+
+# Save each one; quit if we encounter an error
+for encSessionName in $sessionNames ; do
+    if sessionDataConvert.sh "$encUserName" "$encSessionName"; then
+        echo "Converted $encUserName $encSessionName"
+    else
+        exit 1
+    fi
+    echo -n "sleeping... "
+    sleep $delay
+done