From 488634ced20ee178b2d2217b68b57da19b06c40f Mon Sep 17 00:00:00 2001
From: Arno Schoenmakers <schoenmakers@astron.nl>
Date: Thu, 10 May 2012 20:06:24 +0000
Subject: [PATCH] Task #1771: Add install of OTDB component files (in etc/otdb)
 and SQL files (in sbin/sql) to OTDB build; update of script fresh_database;
 reorganize Deployment by adding StaticMetaData, PVSS_Datapoints, OTDB_Comps
 as separate packages not as part of Deployment (only builds SAS database
 update executables now)

---
 .gitattributes                                |  1 +
 CMake/LofarPackageList.cmake                  | 18 +++--
 MAC/CMakeLists.txt                            |  5 ++
 MAC/Deployment/data/CMakeLists.txt            |  5 +-
 MAC/Deployment/data/OTDB/CMakeLists.txt       | 18 +++++
 MAC/Deployment/data/PVSS/CMakeLists.txt       |  2 +
 .../data/StaticMetaData/CMakeLists.txt        |  3 +-
 SAS/CMakeLists.txt                            |  2 +
 SAS/OTDB/sql/CMakeLists.txt                   | 13 ++++
 SAS/OTDB/sql/fresh_database                   | 65 +++++++++++++++++++
 SubSystems/CCU_MAC/CMakeLists.txt             |  2 +-
 SubSystems/CN_MAC/CMakeLists.txt              |  1 -
 SubSystems/LCU_MAC/CMakeLists.txt             |  5 +-
 SubSystems/MCU_MAC/CMakeLists.txt             |  3 +-
 SubSystems/Offline/CMakeLists.txt             |  2 +-
 SubSystems/PVSS_DB/CMakeLists.txt             |  2 +-
 SubSystems/SAS_OTDB/CMakeLists.txt            |  2 +-
 17 files changed, 129 insertions(+), 20 deletions(-)
 create mode 100644 MAC/Deployment/data/OTDB/CMakeLists.txt
 create mode 100644 SAS/OTDB/sql/CMakeLists.txt
 create mode 100755 SAS/OTDB/sql/fresh_database

diff --git a/.gitattributes b/.gitattributes
index dc85f54c8df..d098593bc34 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -3522,6 +3522,7 @@ SAS/OTB/scripts/src/stopOTBServer -text
 SAS/OTDB/include/OTDB/DefaultTemplate.h -text
 SAS/OTDB/sql/assignProcessType_func.sql -text
 SAS/OTDB/sql/campaignAPI.sql -text
+SAS/OTDB/sql/fresh_database -text
 SAS/OTDB/sql/fresh_sas001_database.sh -text
 SAS/OTDB/sql/getAllTaskID_func.sql -text
 SAS/OTDB/sql/getBrokenHardware_func.sql -text
diff --git a/CMake/LofarPackageList.cmake b/CMake/LofarPackageList.cmake
index 688324aa01c..7396352dffb 100644
--- a/CMake/LofarPackageList.cmake
+++ b/CMake/LofarPackageList.cmake
@@ -1,7 +1,7 @@
 # - Create for each LOFAR package a variable containing the absolute path to
 # its source directory. 
 #
-# Generated by gen_LofarPackageList_cmake.sh at Thu Apr 26 08:44:53 UTC 2012
+# Generated by gen_LofarPackageList_cmake.sh at Thu May 10 19:57:35 UTC 2012
 #
 #                      ---- DO NOT EDIT ----
 #
@@ -14,6 +14,12 @@
 #
 if(NOT DEFINED LOFAR_PACKAGE_LIST_INCLUDED)
   set(LOFAR_PACKAGE_LIST_INCLUDED TRUE)
+  set(BBSKernel_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/Calibration/BBSKernel)
+  set(BBSControl_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/Calibration/BBSControl)
+  set(ExpIon_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/Calibration/ExpIon)
+  set(pystationresponse_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/Calibration/pystationresponse)
+  set(BBSTools_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/Calibration/BBSTools)
+  set(ElementResponse_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/Calibration/ElementResponse)
   set(Calibration_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/Calibration)
   set(DP3_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/DP3)
   set(GSM_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/GSM)
@@ -24,12 +30,6 @@ if(NOT DEFINED LOFAR_PACKAGE_LIST_INCLUDED)
   set(Pipeline_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/Pipeline)
   set(PyBDSM_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/PyBDSM)
   set(pyparmdb_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/pyparmdb)
-  set(BBSKernel_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/Calibration/BBSKernel)
-  set(BBSControl_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/Calibration/BBSControl)
-  set(ExpIon_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/Calibration/ExpIon)
-  set(pystationresponse_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/Calibration/pystationresponse)
-  set(BBSTools_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/Calibration/BBSTools)
-  set(ElementResponse_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/Calibration/ElementResponse)
   set(DPPP_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/DP3/DPPP)
   set(AOFlagger_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/DP3/AOFlagger)
   set(SPW_Combine_SOURCE_DIR ${CMAKE_SOURCE_DIR}/CEP/DP3/SPWCombine)
@@ -104,6 +104,9 @@ if(NOT DEFINED LOFAR_PACKAGE_LIST_INCLUDED)
   set(Deployment_SOURCE_DIR ${CMAKE_SOURCE_DIR}/MAC/Deployment)
   set(Navigator2_SOURCE_DIR ${CMAKE_SOURCE_DIR}/MAC/Navigator2)
   set(MACTools_SOURCE_DIR ${CMAKE_SOURCE_DIR}/MAC/Tools)
+  set(PVSS_Datapoints_SOURCE_DIR ${CMAKE_SOURCE_DIR}/MAC/Deployment/data/PVSS)
+  set(OTDB_Comps_SOURCE_DIR ${CMAKE_SOURCE_DIR}/MAC/Deployment/data/OTDB)
+  set(StaticMetaData_SOURCE_DIR ${CMAKE_SOURCE_DIR}/MAC/Deployment/data/StaticMetaData)
   set(GCFTM_SOURCE_DIR ${CMAKE_SOURCE_DIR}/MAC/GCF/TM)
   set(GCFPVSS_SOURCE_DIR ${CMAKE_SOURCE_DIR}/MAC/GCF/PVSS)
   set(GCFRTDB_SOURCE_DIR ${CMAKE_SOURCE_DIR}/MAC/GCF/RTDB)
@@ -117,6 +120,7 @@ if(NOT DEFINED LOFAR_PACKAGE_LIST_INCLUDED)
   set(OTDB_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/OTDB)
   set(OTB_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/OTB)
   set(Beaminfo_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/Beaminfo)
+  set(OTDB_SQL_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/OTDB/sql)
   set(jOTDB3_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/OTB/jOTDB3)
   set(OTB-Java_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SAS/OTB/OTB)
   set(CCU_MAC_SOURCE_DIR ${CMAKE_SOURCE_DIR}/SubSystems/CCU_MAC)
diff --git a/MAC/CMakeLists.txt b/MAC/CMakeLists.txt
index 7252b860c39..6c1ba3b75eb 100644
--- a/MAC/CMakeLists.txt
+++ b/MAC/CMakeLists.txt
@@ -6,3 +6,8 @@ lofar_add_package(APL)         # Application subdirectory
 lofar_add_package(Deployment)  # Deployment related functions
 lofar_add_package(Navigator2)
 lofar_add_package(MACTools Tools)
+lofar_add_package(PVSS_Datapoints Deployment/data/PVSS)
+lofar_add_package(OTDB_Comps Deployment/data/OTDB)
+lofar_add_package(StaticMetaData Deployment/data/StaticMetaData)
+
+
diff --git a/MAC/Deployment/data/CMakeLists.txt b/MAC/Deployment/data/CMakeLists.txt
index 8ab8283de44..c5dbe5e57ca 100644
--- a/MAC/Deployment/data/CMakeLists.txt
+++ b/MAC/Deployment/data/CMakeLists.txt
@@ -1,5 +1,6 @@
 # $Id$
 
+
 add_subdirectory(bin)
-add_subdirectory(StaticMetaData)
-add_subdirectory(PVSS)
+#add_subdirectory(StaticMetaData)
+#add_subdirectory(PVSS)
diff --git a/MAC/Deployment/data/OTDB/CMakeLists.txt b/MAC/Deployment/data/OTDB/CMakeLists.txt
new file mode 100644
index 00000000000..a695dafe5e7
--- /dev/null
+++ b/MAC/Deployment/data/OTDB/CMakeLists.txt
@@ -0,0 +1,18 @@
+# $Id$
+
+lofar_package(OTDB_COMPS 1.0)
+
+install(PROGRAMS
+  create_OTDB_comps
+  createPICfile
+  loadComponents
+  loadPICtree
+DESTINATION sbin)
+
+file(GLOB otdb_comps
+  *.comp
+  *.list
+  *.base)
+install(FILES
+  ${otdb_comps}
+  DESTINATION etc/otdb)
diff --git a/MAC/Deployment/data/PVSS/CMakeLists.txt b/MAC/Deployment/data/PVSS/CMakeLists.txt
index 330c34c145e..fad4922d077 100644
--- a/MAC/Deployment/data/PVSS/CMakeLists.txt
+++ b/MAC/Deployment/data/PVSS/CMakeLists.txt
@@ -1,5 +1,7 @@
 # $Id$
 
+lofar_package(PVSS_Datapoints 1.0)
+
 install(PROGRAMS 
   create_db_files
   DESTINATION sbin)
diff --git a/MAC/Deployment/data/StaticMetaData/CMakeLists.txt b/MAC/Deployment/data/StaticMetaData/CMakeLists.txt
index 0144d5827e9..8b8558cb413 100644
--- a/MAC/Deployment/data/StaticMetaData/CMakeLists.txt
+++ b/MAC/Deployment/data/StaticMetaData/CMakeLists.txt
@@ -1,5 +1,7 @@
 # $Id$
 
+lofar_package(StaticMetaData 1.0)
+
 install(PROGRAMS 
   createFiles 
   DESTINATION sbin)
@@ -22,7 +24,6 @@ file(GLOB staticmeta_data
   iHBADeltas/*.conf
   AntennaFields/*.conf
   PPSDelays/*.conf
-#  CalTables/*.dat
   TBBConnections.dat)
 install(FILES
   ${staticmeta_data}
diff --git a/SAS/CMakeLists.txt b/SAS/CMakeLists.txt
index 7f828855eb1..83ba7ff26ba 100644
--- a/SAS/CMakeLists.txt
+++ b/SAS/CMakeLists.txt
@@ -3,3 +3,5 @@
 lofar_add_package(OTDB)
 lofar_add_package(OTB)
 lofar_add_package(Beaminfo)
+lofar_add_package(OTDB_SQL OTDB/sql)
+
diff --git a/SAS/OTDB/sql/CMakeLists.txt b/SAS/OTDB/sql/CMakeLists.txt
new file mode 100644
index 00000000000..42cff8f5fbb
--- /dev/null
+++ b/SAS/OTDB/sql/CMakeLists.txt
@@ -0,0 +1,13 @@
+# $Id$
+
+lofar_package(OTDB_SQL 1.0)
+install(PROGRAMS
+  fresh_database
+DESTINATION sbin)
+
+file(GLOB otdb_sql_files
+  *.sql)
+install(FILES
+  ${otdb_sql_files}
+  DESTINATION sbin/sql)
+
diff --git a/SAS/OTDB/sql/fresh_database b/SAS/OTDB/sql/fresh_database
new file mode 100755
index 00000000000..22ff0cc4c1e
--- /dev/null
+++ b/SAS/OTDB/sql/fresh_database
@@ -0,0 +1,65 @@
+#!/bin/bash
+#
+# Script to (re)create a OTDB database from scratch, using the sql statements
+#
+# Usage: fresh_database <DBNAME>
+#
+# Requires all sql-commands to be present in /opt/lofar/sbin/sql
+# If existing, DROPS the current database
+#
+if [ -z $1 ]; then
+  echo "Usage: fresh_database <DBNAME>"
+  exit 0
+fi
+
+if [  "$1" == "-h" ]; then 
+  echo "Usage: fresh_database <DBNAME>"
+  exit 0
+fi
+
+DBNAME=$1
+DBUSER=postgres
+DBHOST=localhost
+DBPORT=5432
+
+# The following commands assume that the user has super user privileges.
+#
+# Access to PostgreSQL databases is managed via the 'pg_hba.conf' file. 
+#
+# Postgres should be told to listen to external TCP ports. 
+# Edit /sasdb/data/postgresq.conf
+# to have the following stanzas:
+#
+#     Listen_addresses = '*'
+#     Port = 5432
+#
+# Don't forget to restart Postgres after altering these files, 
+# as follows (Debian):
+#
+#  pg_ctl start -D /sasdb/data -l /sasdb/data/pg_log/logfile
+#
+# Drop DB & USER. User DBUSER owns DBNAME, so we have to remove the database 
+# first!
+# Note the '|| true' at the end. This ensures that the commands succeed, 
+# even if the database is not found.
+
+echo " == Dropping database $DBNAME =="
+echo dropdb   --host $DBHOST --port $DBPORT --user postgres --echo $DBNAME || true
+dropdb   --host $DBHOST --port $DBPORT --user postgres --echo $DBNAME || true
+# Create USER, DB, and add the 'plpgsql' language for stored procedures.
+
+echo " == Creating new database $DBNAME =="
+echo createdb   --host $DBHOST --port $DBPORT --user postgres --owner $DBUSER --echo $DBNAME
+createdb   --host $DBHOST --port $DBPORT --user postgres --owner $DBUSER --echo $DBNAME
+echo createlang --host $DBHOST --port $DBPORT --user postgres --dbname $DBNAME  --echo "plpgsql"
+createlang --host $DBHOST --port $DBPORT --user postgres --dbname $DBNAME  --echo "plpgsql"
+
+echo " == Creating new tables in $DBNAME =="
+if [ -e /opt/lofar/sbin/sql/create_OTDB.sql ]; then 
+  cd /opt/lofar/sbin/sql
+  echo psql -f create_OTDB.sql --host $DBHOST --port $DBPORT --user $DBUSER $DBNAME 2>&1 | grep ERROR | grep -v "does not exist"
+  psql -f create_OTDB.sql --host $DBHOST --port $DBPORT --user $DBUSER $DBNAME 2>&1 | grep ERROR | grep -v "does not exist"
+else
+  echo "Cannot find /opt/lofar/sbin/sql/create_OTDB.sql; did you install this?"
+fi
+echo " == Done =="
diff --git a/SubSystems/CCU_MAC/CMakeLists.txt b/SubSystems/CCU_MAC/CMakeLists.txt
index 170a6604eae..76ac86e61b2 100644
--- a/SubSystems/CCU_MAC/CMakeLists.txt
+++ b/SubSystems/CCU_MAC/CMakeLists.txt
@@ -1,5 +1,5 @@
 # $Id$
 
 lofar_package(CCU_MAC 
-  DEPENDS CEPCU CUDaemons CURTDBDaemons Deployment Navigator2)
+  DEPENDS CEPCU CUDaemons CURTDBDaemons)
 
diff --git a/SubSystems/CN_MAC/CMakeLists.txt b/SubSystems/CN_MAC/CMakeLists.txt
index 10fc0f526b4..37b7aeee5e7 100644
--- a/SubSystems/CN_MAC/CMakeLists.txt
+++ b/SubSystems/CN_MAC/CMakeLists.txt
@@ -2,4 +2,3 @@
 
 lofar_package(CN_MAC 
   DEPENDS StationTest MACTools)
-
diff --git a/SubSystems/LCU_MAC/CMakeLists.txt b/SubSystems/LCU_MAC/CMakeLists.txt
index 99fc48f1e44..7c70ffad437 100644
--- a/SubSystems/LCU_MAC/CMakeLists.txt
+++ b/SubSystems/LCU_MAC/CMakeLists.txt
@@ -1,6 +1,5 @@
 # $Id$
 
 lofar_package(LCU_MAC 
-  DEPENDS StationCU PIC PAC CUDaemons CURTDBDaemons Deployment Navigator2
-    AMC Firmware-Tools StationTest MACTools)
-
+  DEPENDS StationCU PIC PAC CUDaemons CURTDBDaemons
+    AMC Firmware-Tools MACTools StaticMetaData)
diff --git a/SubSystems/MCU_MAC/CMakeLists.txt b/SubSystems/MCU_MAC/CMakeLists.txt
index aa8f70ceced..34e16991a60 100644
--- a/SubSystems/MCU_MAC/CMakeLists.txt
+++ b/SubSystems/MCU_MAC/CMakeLists.txt
@@ -1,5 +1,4 @@
 # $Id$
 
 lofar_package(MCU_MAC 
-  DEPENDS MainCU CUDaemons CURTDBDaemons Deployment Navigator2)
-
+  DEPENDS MainCU CUDaemons CURTDBDaemons)
diff --git a/SubSystems/Offline/CMakeLists.txt b/SubSystems/Offline/CMakeLists.txt
index b6c6536d620..ca2a4f1255b 100644
--- a/SubSystems/Offline/CMakeLists.txt
+++ b/SubSystems/Offline/CMakeLists.txt
@@ -1,4 +1,4 @@
 # $Id$
 
-lofar_package(Offline DEPENDS CEP MSLofar Deployment)
+lofar_package(Offline DEPENDS CEP MSLofar StatticMetaData)
 
diff --git a/SubSystems/PVSS_DB/CMakeLists.txt b/SubSystems/PVSS_DB/CMakeLists.txt
index 12917846c6d..4bfccc2f5c4 100644
--- a/SubSystems/PVSS_DB/CMakeLists.txt
+++ b/SubSystems/PVSS_DB/CMakeLists.txt
@@ -1,5 +1,5 @@
 # $Id$
 
 lofar_package(PVSS_DB 
-  DEPENDS Deployment Navigator2)
+  DEPENDS PVSS_Datapoints Navigator2)
 
diff --git a/SubSystems/SAS_OTDB/CMakeLists.txt b/SubSystems/SAS_OTDB/CMakeLists.txt
index 5c1c057739e..973edd616a5 100644
--- a/SubSystems/SAS_OTDB/CMakeLists.txt
+++ b/SubSystems/SAS_OTDB/CMakeLists.txt
@@ -1,4 +1,4 @@
 # $Id$
 
 lofar_package(SAS_OTDB 
-  DEPENDS OTB Deployment)
+  DEPENDS Deployment OTDB_Comps OTDB_SQL)
-- 
GitLab