From 20882c211b9162f46693c4339c8da9ecb9ea23b1 Mon Sep 17 00:00:00 2001
From: Jan David Mol <mol@astron.nl>
Date: Thu, 6 Jun 2019 11:48:49 +0000
Subject: [PATCH] ROHD-1840: Use NFS to share parsets across instances. This
 also works for tests, as those run only on a single machine.

---
 .../GPUProc/src/scripts/Cobalt_install.sh     |  4 ++++
 .../GPUProc/src/scripts/runObservation.sh     | 21 +------------------
 SubSystems/Online_Cobalt/test/testFuncs.sh.in |  1 +
 3 files changed, 6 insertions(+), 20 deletions(-)

diff --git a/RTCP/Cobalt/GPUProc/src/scripts/Cobalt_install.sh b/RTCP/Cobalt/GPUProc/src/scripts/Cobalt_install.sh
index 221e0acf262..77650bebd39 100755
--- a/RTCP/Cobalt/GPUProc/src/scripts/Cobalt_install.sh
+++ b/RTCP/Cobalt/GPUProc/src/scripts/Cobalt_install.sh
@@ -41,6 +41,10 @@ ln -sfT ~lofarsys/lofar-userdata/var var
 # Sym link installed etc/parset-additions.d/override to common location.
 ln -sfT ~lofarsys/lofar-userdata/parset-overrides etc/parset-additions.d/override
 
+# Sym link installed var/ to NFS location.
+ln -sfT /opt/shared/lofar-userdata nfs
+
+
 # Set capabilities so our soft real-time programs can elevate prios.
 #
 # cap_sys_nice: allow real-time priority for threads
diff --git a/RTCP/Cobalt/GPUProc/src/scripts/runObservation.sh b/RTCP/Cobalt/GPUProc/src/scripts/runObservation.sh
index 8745d4189b7..a6a3e26e698 100755
--- a/RTCP/Cobalt/GPUProc/src/scripts/runObservation.sh
+++ b/RTCP/Cobalt/GPUProc/src/scripts/runObservation.sh
@@ -183,7 +183,7 @@ rm -f $FEEDBACK_FILE
 
 if [ "$AUGMENT_PARSET" -eq "1" ]
 then
-  AUGMENTED_PARSET=$LOFARROOT/var/run/rtcp-$OBSID.parset
+  AUGMENTED_PARSET=$LOFARROOT/nfs/parset/rtcp-$OBSID.parset
 
   # Add static keys
   # Ignore sneaky .cobalt/ parset overrides in production (lofarsys).
@@ -444,25 +444,6 @@ fi
 
 echo "[cobalt] Hosts = $HOSTS"
 
-# Copy parset to all hosts
-cksumline=`md5sum $PARSET`
-for h in `echo $HOSTS | tr ',' ' '`
-do
-  # Ignore empty hostnames
-  [ -z "$h" ] && continue;
-
-  # Ignore hostnames that point to us
-  [ "$h" == "localhost" ] && continue;
-  [ "$h" == "`hostname`" ] && continue;
-
-  # Ignore hosts that already have the same parset (for example, through NFS).
-  timeout $KILLOPT 5s ssh -o StrictHostKeyChecking=no -qn $h "[ -f $PARSET ] && echo \"$cksumline\" | md5sum -c --status" && continue
-
-  # Copy parset to remote node
-  echo "Copying parset to $h:$PARSET"
-  timeout $KILLOPT 30s scp -o StrictHostKeyChecking=no -Bq $PARSET $h:$PARSET || error "[parset] Could not scp parset to $h"
-done
-
 # ************************************
 # Start rtcp 
 # ***********************************
diff --git a/SubSystems/Online_Cobalt/test/testFuncs.sh.in b/SubSystems/Online_Cobalt/test/testFuncs.sh.in
index 0a8bf55b4a3..5c5f07b3925 100755
--- a/SubSystems/Online_Cobalt/test/testFuncs.sh.in
+++ b/SubSystems/Online_Cobalt/test/testFuncs.sh.in
@@ -17,6 +17,7 @@ error()
 # Create runtime output directories if not exists.
 # Not done at build, because it is a post-install setting. Different in production.
 mkdir -p "$LOFARROOT/var/log" "$LOFARROOT/var/run" || error "Failed to create runtime output directories"
+mkdir -p "$LOFARROOT/nfs/parset/" || error "Failed to create shared directories"
 mkdir -p "$LOFARROOT/etc/parset-additions.d/override" || error "Failed to create runtime input directories"
 
 # Set all locales to "C" to avoid problems with, e.g., perl.
-- 
GitLab