From fd0c64de5524e16e261777e8d0268a0f48f0329e Mon Sep 17 00:00:00 2001
From: Andrea Dell'Amico <adellam@isti.cnr.it>
Date: Mon, 3 Jul 2017 19:17:25 +0200
Subject: [PATCH] library/roles/smartgears/gcubeapp-setup: The file
 gcube-handlers.xml is now installed starting from a template, when needed.

---
 smartgears/gcubeapp-setup/defaults/main.yml          |  5 ++---
 smartgears/gcubeapp-setup/tasks/main.yml             |  9 ++++++++-
 .../gcubeapp-setup/templates/gcube-handlers.xml.j2   | 12 ++++++++++++
 3 files changed, 22 insertions(+), 4 deletions(-)
 create mode 100644 smartgears/gcubeapp-setup/templates/gcube-handlers.xml.j2

diff --git a/smartgears/gcubeapp-setup/defaults/main.yml b/smartgears/gcubeapp-setup/defaults/main.yml
index a369741..503c22f 100644
--- a/smartgears/gcubeapp-setup/defaults/main.yml
+++ b/smartgears/gcubeapp-setup/defaults/main.yml
@@ -1,7 +1,6 @@
 ---
 gcubeapp_setup: False
-
+gcubehandlers_setup: False
 #gcubeapp_webapps:
-#  - { webapp_context: '', webapp_name: '', version: '', webapp_group: '', description: '', exclude_handlers: [ '' ] }
+#  - { webapp_context: '', webapp_name: '', version: '', webapp_group: '', description: '', exclude_handlers: [ '' ], gcubehandlers_requests: [ 'authentication-filter' ] }
 
-  
diff --git a/smartgears/gcubeapp-setup/tasks/main.yml b/smartgears/gcubeapp-setup/tasks/main.yml
index bc7e242..4b799b7 100644
--- a/smartgears/gcubeapp-setup/tasks/main.yml
+++ b/smartgears/gcubeapp-setup/tasks/main.yml
@@ -1,8 +1,15 @@
 ---
 - name: Install the gcube-app file to make the webapp smartgears compatible
   template: src=gcube-app.xml.j2 dest={{ item.webapp_path | default('/home/gcube/tomcat') }}/webapps/{{ item.context }}/WEB-INF/gcube-app.xml owner={{ smartgears_user }} group={{ smartgears_user }}
-  with_items: '{{ gcubeapp_webapps | default (omit) }}'
+  with_items: '{{ gcubeapp_webapps | default([]) }}'
   notify: Restart smartgears
   when: gcubeapp_setup
   tags: [ 'smartgears', 'gcubeapp' ]
 
+- name: Install the gcube-handlers.xml file to manage the smartgears filters
+  template: src=gcube-handlers.xml.j2 dest={{ item.webapp_path | default('/home/gcube/tomcat') }}/webapps/{{ item.context }}/WEB-INF/gcube-handlers.xml owner={{ smartgears_user }} group={{ smartgears_user }}
+  with_items: '{{ gcubeapp_webapps | default([]) }}'
+  notify: Restart smartgears
+  when: gcubehandlers_setup
+  tags: [ 'smartgears', 'gcubeapp' ]
+
diff --git a/smartgears/gcubeapp-setup/templates/gcube-handlers.xml.j2 b/smartgears/gcubeapp-setup/templates/gcube-handlers.xml.j2
new file mode 100644
index 0000000..1168f2a
--- /dev/null
+++ b/smartgears/gcubeapp-setup/templates/gcube-handlers.xml.j2
@@ -0,0 +1,12 @@
+<handlers>	
+       <lifecycle>
+           <profile-management />
+       </lifecycle>
+       <request>
+           <request-validation />
+           <request-accounting /> 
+{% for req in item. gcubehandlers_requests %}
+           <{{ req }} />
+{% endfor %}
+       </request>
+   </handlers>