From 197650fe57d763d31eff717c636353810e40fe0e Mon Sep 17 00:00:00 2001
From: Thomas Juerges <4-jurges@users.noreply.git.astron.nl>
Date: Wed, 1 Apr 2020 18:58:36 +0200
Subject: [PATCH] Add ConfigDb tools and example ConfigDb

The tools can dump/load/update the Tango ConfigDb.
---
 tools/ConfigDb/dump_ConfigDb.sh      |   5 ++
 tools/ConfigDb/example_ConfigDb.json | 123 +++++++++++++++++++++++++++
 tools/ConfigDb/load_ConfigDb.sh      |   5 ++
 tools/ConfigDb/update_ConfigDb.sh    |   5 ++
 4 files changed, 138 insertions(+)
 create mode 100755 tools/ConfigDb/dump_ConfigDb.sh
 create mode 100644 tools/ConfigDb/example_ConfigDb.json
 create mode 100755 tools/ConfigDb/load_ConfigDb.sh
 create mode 100755 tools/ConfigDb/update_ConfigDb.sh

diff --git a/tools/ConfigDb/dump_ConfigDb.sh b/tools/ConfigDb/dump_ConfigDb.sh
new file mode 100755
index 000000000..f5e04cf18
--- /dev/null
+++ b/tools/ConfigDb/dump_ConfigDb.sh
@@ -0,0 +1,5 @@
+if [ ${#} -ne 1 ]; then
+    echo "You must provide a file name for the TANGO_HOST DB dump!"
+    exit -1
+fi
+docker exec -it dsconfig python -m dsconfig.dump > ${1}
diff --git a/tools/ConfigDb/example_ConfigDb.json b/tools/ConfigDb/example_ConfigDb.json
new file mode 100644
index 000000000..1595efaf5
--- /dev/null
+++ b/tools/ConfigDb/example_ConfigDb.json
@@ -0,0 +1,123 @@
+{
+    "servers": {
+        "Crossecho": {
+            "1": {
+                "Crossecho": {
+                    "cs999/fpga/1": {}
+                }
+            }
+        }, 
+        "DataBaseds": {
+            "2": {
+                "DataBase": {
+                    "sys/database/2": {}
+                }
+            }
+        }, 
+        "LogConsumer": {
+            "14e43066bc75@56": {
+                "LogConsumer": {
+                    "tmp/log/14e43066bc75@56": {}
+                }
+            }, 
+            "4a57dd30f887@63": {
+                "LogConsumer": {
+                    "tmp/log/4a57dd30f887@63": {}
+                }
+            }
+        }, 
+        "RandomData": {
+            "1": {
+                "RandomData": {
+                    "test/random/1": {}
+                }
+            }
+        }, 
+        "TangoAccessControl": {
+            "1": {
+                "TangoAccessControl": {
+                    "sys/access_control/1": {}
+                }
+            }
+        }, 
+        "TangoRestServer": {
+            "rest": {
+                "TangoRestServer": {
+                    "sys/rest/0": {}
+                }
+            }, 
+            "tango-rest": {
+                "TangoRestServer": {
+                    "tango-rest/rest/0": {
+                        "properties": {
+                            "TANGO_DB": [
+                                "tango://databaseds:10000/sys/database/2"
+                            ], 
+                            "TOMCAT_AUTH_METHOD": [
+                                "plain"
+                            ], 
+                            "TOMCAT_PORT": [
+                                "8080"
+                            ]
+                        }
+                    }
+                }
+            }
+        }, 
+        "TangoTest": {
+            "test": {
+                "TangoTest": {
+                    "sys/tg_test/1": {}
+                }
+            }
+        }, 
+        "hdbppcm-srv": {
+            "01": {
+                "HdbConfigurationManager": {
+                    "archiving/hdbpp/confmanager01": {
+                        "properties": {
+                            "ArchiverList": [
+                                "archiving/hdbpp/eventsubscriber01"
+                            ], 
+                            "LibConfiguration": [
+                                "host=archiver-maria-db", 
+                                "libname=libhdb++mysql.so.6", 
+                                "dbname=hdbpp", 
+                                "port=3306", 
+                                "user=tango", 
+                                "password=tango"
+                            ], 
+                            "MaxSearchSize": [
+                                "1000"
+                            ]
+                        }
+                    }
+                }
+            }
+        }, 
+        "hdbppes-srv": {
+            "01": {
+                "HdbEventSubscriber": {
+                    "archiving/hdbpp/eventsubscriber01": {
+                        "properties": {
+                            "CheckPeriodicTimeoutDelay": [
+                                "5"
+                            ], 
+                            "LibConfiguration": [
+                                "host=archiver-maria-db", 
+                                "libname=libhdb++mysql.so.6", 
+                                "dbname=hdbpp", 
+                                "port=3306", 
+                                "user=tango", 
+                                "password=tango"
+                            ], 
+                            "PollingThreadPeriod": [
+                                "3"
+                            ]
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/tools/ConfigDb/load_ConfigDb.sh b/tools/ConfigDb/load_ConfigDb.sh
new file mode 100755
index 000000000..9333f6814
--- /dev/null
+++ b/tools/ConfigDb/load_ConfigDb.sh
@@ -0,0 +1,5 @@
+if [ ${#} -ne 1 ]; then
+    echo "You must provide a file name for the TANGO_HOST DB dump!"
+    exit -1
+fi
+docker exec -it dsconfig json2tango --write ${1}
diff --git a/tools/ConfigDb/update_ConfigDb.sh b/tools/ConfigDb/update_ConfigDb.sh
new file mode 100755
index 000000000..75081d3bd
--- /dev/null
+++ b/tools/ConfigDb/update_ConfigDb.sh
@@ -0,0 +1,5 @@
+if [ ${#} -ne 1 ]; then
+    echo "You must provide a file name for the TANGO_HOST DB dump!"
+    exit -1
+fi
+docker exec -it dsconfig json2tango --update ${1}
-- 
GitLab