From b55acf71dcaea9d76b1a7482872a382588103d0a Mon Sep 17 00:00:00 2001
From: Anders Harrisson <anders.harrisson@esss.se>
Date: Thu, 15 Aug 2019 10:50:21 +0200
Subject: [PATCH] Add settings.ini

---
 README.md                              | 3 +++
 defaults/main.yml                      | 2 ++
 molecule/default/molecule.yml          | 2 ++
 molecule/default/tests/test_default.py | 7 +++++++
 tasks/main.yml                         | 8 ++++++++
 templates/phoebus.desktop.j2           | 2 +-
 templates/phoebus.ini.j2               | 5 +++++
 7 files changed, 28 insertions(+), 1 deletion(-)
 create mode 100644 templates/phoebus.ini.j2

diff --git a/README.md b/README.md
index 6a632de..5d583ff 100644
--- a/README.md
+++ b/README.md
@@ -5,10 +5,13 @@ Ansible role to install phoebus.
 ## Role Variables
 
 ```yaml
+---
 phoebus_installation_dir: /opt
 phoebus_installations_keep: 2
 phoebus_version: 4.6.0-SNAPSHOT
 phoebus_archive: "http://artifactory.esss.lu.se/artifactory/libs-snapshot-local/se/europeanspallationsource/ics/ess-phoebus/{{ phoebus_version }}/ess-phoebus-{{ phoebus_version }}-bin.tar.gz"
+phoebus_settings_path: "{{ phoebus_home }}/phoebus.ini"
+phoebus_settings: {}
 ```
 
 ## Example Playbook
diff --git a/defaults/main.yml b/defaults/main.yml
index 31416db..572a36b 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -3,3 +3,5 @@ phoebus_installation_dir: /opt
 phoebus_installations_keep: 2
 phoebus_version: 4.6.0-SNAPSHOT
 phoebus_archive: "http://artifactory.esss.lu.se/artifactory/libs-snapshot-local/se/europeanspallationsource/ics/ess-phoebus/{{ phoebus_version }}/ess-phoebus-{{ phoebus_version }}-bin.tar.gz"
+phoebus_settings_path: "{{ phoebus_home }}/phoebus.ini"
+phoebus_settings: {}
diff --git a/molecule/default/molecule.yml b/molecule/default/molecule.yml
index f9e47ea..15713f8 100644
--- a/molecule/default/molecule.yml
+++ b/molecule/default/molecule.yml
@@ -13,6 +13,8 @@ provisioner:
   inventory:
     group_vars:
       molecule_group:
+        phoebus_settings:
+          org.phoebus.pv.ca/addr_list: 127.0.0.1
 scenario:
   name: default
 verifier:
diff --git a/molecule/default/tests/test_default.py b/molecule/default/tests/test_default.py
index 58fa58d..ec9264c 100644
--- a/molecule/default/tests/test_default.py
+++ b/molecule/default/tests/test_default.py
@@ -19,3 +19,10 @@ def test_default(host):
            "| (      | (   ) || |   | || (      | (  \\ \\ | |   | |      ) |\n" + \
            "| )      | )   ( || (___) || (____/\\| )___) )| (___) |/\\____) |\n" + \
            "|/       |/     \\|(_______)(_______/|/ \\___/ (_______)\\_______)" in cmd.stdout
+
+
+def test_settings(host):
+    settings = host.file("/opt/ess-phoebus-{}/phoebus.ini".format(PHOEBUS_VERSION))
+    assert settings.exists
+    assert settings.is_file
+    assert settings.contains("org.phoebus.pv.ca/addr_list=127.0.0.1")
diff --git a/tasks/main.yml b/tasks/main.yml
index 5060524..ba7c6c0 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -23,6 +23,14 @@
     group: root
     creates: "{{ phoebus_home }}"
 
+- name: add Phoebus settings
+  template:
+    src: phoebus.ini.j2
+    dest: "{{ phoebus_settings_path }}"
+    owner: root
+    group: root
+    mode: 0644
+
 - name: add MIME types
   copy:
     src: phoebus.xml
diff --git a/templates/phoebus.desktop.j2 b/templates/phoebus.desktop.j2
index e406b4a..b5951c8 100644
--- a/templates/phoebus.desktop.j2
+++ b/templates/phoebus.desktop.j2
@@ -3,4 +3,4 @@ Type=Application
 Terminal=false
 Name=Phoebus
 Categories=ESS
-Exec="{{ phoebus_home }}/phoebus.sh" -resource %f
+Exec="{{ phoebus_home }}/phoebus.sh" -resource %f -settings "{{ phoebus_settings_path }}"
diff --git a/templates/phoebus.ini.j2 b/templates/phoebus.ini.j2
new file mode 100644
index 0000000..fbf77f4
--- /dev/null
+++ b/templates/phoebus.ini.j2
@@ -0,0 +1,5 @@
+# {{ ansible_managed }}
+
+{% for key, value in phoebus_settings.items() %}
+{{ key }}={{ value }}
+{% endfor %}
-- 
GitLab