From 89bb249db5fcc1e7c95d4b350ccef5e51d67ac34 Mon Sep 17 00:00:00 2001
From: Tor-Einar Skog <tor-einar.skog@nibio.no>
Date: Thu, 19 Sep 2019 14:25:16 +0200
Subject: [PATCH] First commit

---
 wildfly_config/init_standalone_xml.py | 61 +++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)
 create mode 100755 wildfly_config/init_standalone_xml.py

diff --git a/wildfly_config/init_standalone_xml.py b/wildfly_config/init_standalone_xml.py
new file mode 100755
index 0000000..c134ae9
--- /dev/null
+++ b/wildfly_config/init_standalone_xml.py
@@ -0,0 +1,61 @@
+#!/usr/bin/python3
+
+# Adds VIPSLogic specific config to [WILDFLY_HOME]/standalone/configuration/standalone.xml
+# (c) 2019 NIBIO
+# Author Tor-Einar Skog <tor-einar.skog@nibio.no>
+
+from shutil import copyfile
+from xml.dom.minidom import parse
+import argparse
+
+parser = argparse.ArgumentParser()
+parser.add_argument("--smtpserver")
+parser.add_argument("--md5salt")
+parser.add_argument("--dbpassword")
+parser.add_argument("--path")
+args = parser.parse_args()
+
+path = args.path
+# Make a copy of the original file
+copyfile(path + "standalone.xml", path + "standalone_original.xml")
+
+# The destination document
+standalone_dom = parse(path + "standalone.xml")
+
+# The system properties to add to destination (standalone.xml)
+vsp_dom = parse("vipslogic_system_properties.xml")
+
+system_properties = standalone_dom.getElementsByTagName("system-properties")
+if len(system_properties) == 0:
+    system_properties = standalone_dom.createElement("system-properties")
+    standalone_dom.getElementsByTagName("server")[0].insertBefore(system_properties, standalone_dom.getElementsByTagName("management")[0])
+
+# Transfer system properties to standalone.xml
+for property in vsp_dom.getElementsByTagName("property"):
+    # We use script input parameters to set system property values
+    if property.getAttribute("name") == "no.nibio.vips.logic.MD5_SALT":
+        property.setAttribute("value",args.md5salt)
+    if property.getAttribute("name") == "no.nibio.vips.logic.SMTP_SERVER":
+        property.setAttribute("value",args.smtpserver)
+    system_properties.appendChild(property)
+
+# Transfer the data source and driver info to standalone.xml
+vipslogic_datasource_dom = parse("vipslogic_datasource_and_driver.xml")
+datasources_elm = vipslogic_datasource_dom.getElementsByTagName("datasources")[0]
+standalone_datasources_elm = standalone_dom.getElementsByTagName("datasources")[0]
+vipslogic_datasource = None
+for datasource in datasources_elm.getElementsByTagName("datasource"):
+    if datasource.getAttribute("jndi-name") == "java:jboss/datasources/vipslogic":
+        datasource.getElementsByTagName("security")[0].getElementsByTagName("password")[0].firstChild.replaceWholeText(args.dbpassword)
+        standalone_datasources_elm.appendChild(datasource)
+drivers_elm = vipslogic_datasource_dom.getElementsByTagName("drivers")[0]
+standalone_drivers_elm = standalone_dom.getElementsByTagName("drivers")[0]
+for driver in drivers_elm.getElementsByTagName("driver"):
+    if driver.getAttribute("name") == "postgresql":
+        standalone_drivers_elm.appendChild(driver)
+
+
+# Write to file
+outputfile = open(path + "standalone.xml", "w")
+outputfile.write(standalone_dom.toxml())
+outputfile.close()
-- 
GitLab