---
- block:
    - name: Remove the accounting_dashboard_harvester smart executor plugin
      file: dest={{ smartgears_instance_path }}/webapps/{{ smart_executor_name }}/WEB-INF/lib/plugins/{{ accounting_dashboard_harvester_se_plugin_name }} state=absent
      notify: Restart smartgears
    
  become: True
  become_user: '{{ smartgears_user }}'
  when: not accounting_dashboard_harvester_se_plugin_install
  tags: [ 'smartgears', 'accounting_dashboard_harvester_se', 'tomcat' ]


- block:
    - name: Download the accounting_dashboard_harvester plugin uber jar
      maven_artifact: artifact_id={{ accounting_dashboard_harvester_se_plugin_name }} version={{ accounting_dashboard_harvester_se_plugin_version | default('latest') }} group_id={{ accounting_dashboard_harvester_se_plugin_group_id }} extension={{ accounting_dashboard_harvester_se_plugin_extension }} repository_url={{ smartgears_global_base_url }} classifier={{ accounting_dashboard_harvester_se_plugin_classifier }} dest={{ smartgears_downloads_dir }}/{{ accounting_dashboard_harvester_se_plugin_uber_file }} verify_checksum=always
      register: accounting_dashboard_harvester_download

    - name: Remove the old accounting_dashboard_harvester smart executor plugin
      file: dest={{ smartgears_instance_path }}/webapps/{{ smart_executor_name }}/WEB-INF/lib/plugins/{{ accounting_dashboard_harvester_se_plugin_name }} state=absent
      when: accounting_dashboard_harvester_download is changed
      notify: Restart smartgears

    - name: Create the plugin directory inside the smart executor
      file: dest={{ smartgears_instance_path }}/webapps/{{ smart_executor_name }}/WEB-INF/lib/plugins/{{ accounting_dashboard_harvester_se_plugin_name }} state=directory
      register: accounting_dashboard_harvester_create_dir

    - name: Unarchive the accounting_dashboard_harvester uber jar to expose its libraries
      unarchive: src={{ smartgears_downloads_dir }}/{{ accounting_dashboard_harvester_se_plugin_uber_file }} dest={{ smartgears_instance_path }}/webapps/{{ smart_executor_name }}/WEB-INF/lib/plugins/{{ accounting_dashboard_harvester_se_plugin_name }}/ copy=no
      when: accounting_dashboard_harvester_create_dir is changed
      notify: Restart smartgears

    - name: Download the accounting_dashboard_harvester plugin jar file
      maven_artifact: artifact_id={{ accounting_dashboard_harvester_se_plugin_name }} version={{ accounting_dashboard_harvester_se_plugin_version }} group_id={{ accounting_dashboard_harvester_se_plugin_group_id }} extension={{ accounting_dashboard_harvester_se_plugin_extension }} repository_url={{ smartgears_global_base_url }} dest={{ smartgears_instance_path }}/webapps/{{ smart_executor_name }}/WEB-INF/lib/plugins/{{ accounting_dashboard_harvester_se_plugin_name }} keep_name=yes
      notify: Restart smartgears
      
    - name: Install the accounting_dashboard_harvester plugin configuration
      template: src=config.properties.j2 dest={{ smartgears_instance_path }}/webapps/{{ smart_executor_name }}/WEB-INF/classes/config.properties mode=0440
      notify: Restart smartgears 
      
    - name: Remove the accounting_dashboard_harvester uber jar org and META-INF directories
      file: dest={{ smartgears_instance_path }}/webapps/{{ smart_executor_name }}/WEB-INF/lib/plugins/{{ accounting_dashboard_harvester_se_plugin_name }}/{{ item }} state=absent
      with_items:
        - org
        - 'META-INF'
      notify: Restart smartgears
 
  become: True
  become_user: '{{ smartgears_user }}'
  when: accounting_dashboard_harvester_se_plugin_install
  tags: [ 'smartgears', 'accounting_dashboard_harvester_se', 'tomcat' ]