bugfix: add doctor datasource in congress
[doctor.git] / doctor_tests / installer / common / set_congress.py
diff --git a/doctor_tests/installer/common/set_congress.py b/doctor_tests/installer/common/set_congress.py
new file mode 100644 (file)
index 0000000..d843870
--- /dev/null
@@ -0,0 +1,35 @@
+##############################################################################
+# Copyright (c) 2018 ZTE Corporation and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+import configparser
+import shutil
+
+
+def set_drivers_config():
+    co_conf = "/etc/congress/congress.conf"
+    co_conf_bak = "/etc/congress/congress.conf.bak"
+    doctor_driver = "congress.datasources.doctor_driver.DoctorDriver"
+    config_modified = False
+
+    config = configparser.ConfigParser()
+    config.read(co_conf)
+    drivers = config['DEFAULT']['drivers']
+
+    if doctor_driver not in drivers:
+        config_modified = True
+        drivers += ',' + doctor_driver
+
+    config['DEFAULT']['drivers'] = drivers
+
+    if config_modified:
+        shutil.copyfile(co_conf, co_conf_bak)
+        with open(co_conf, 'w') as configfile:
+            config.write(configfile)
+
+
+set_drivers_config()