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


- block:
    - name: Download the is_exporter plugin uber jar
      maven_artifact: artifact_id={{ is_exporter_se_plugin_name }} version={{ is_exporter_se_plugin_version | default('latest') }} group_id={{ is_exporter_se_plugin_group_id }} extension={{ is_exporter_se_plugin_extension }} repository_url={{ smartgears_global_base_url }} classifier={{ is_exporter_se_plugin_classifier }} dest={{ smartgears_downloads_dir }}/{{ is_exporter_se_plugin_uber_file }}
      register: is_exporter_download

    - name: Remove the old is_exporter smart executor plugin
      file: dest={{ smartgears_instance_path }}/webapps/{{ smart_executor_name }}/WEB-INF/lib/plugins/{{ is_exporter_se_plugin_name }} state=absent
      when: is_exporter_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/{{ is_exporter_se_plugin_name }} state=directory
      register: is_exporter_create_dir

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

    - name: Download the is_exporter plugin jar file
      maven_artifact: artifact_id={{ is_exporter_se_plugin_name }} version={{ is_exporter_se_plugin_version }} group_id={{ is_exporter_se_plugin_group_id }} extension={{ is_exporter_se_plugin_extension }} repository_url={{ smartgears_global_base_url }} dest={{ smartgears_instance_path }}/webapps/{{ smart_executor_name }}/WEB-INF/lib/plugins/{{ is_exporter_se_plugin_name }} keep_name=yes
      notify: Restart smartgears

    - name: Remove the IS exporter uber jar org and META-INF directories
      file: dest={{ smartgears_instance_path }}/webapps/{{ smart_executor_name }}/WEB-INF/lib/plugins/{{ is_exporter_se_plugin_name }}/{{ item }} state=absent
      with_items:
        - org
        - 'META-INF'
      notify: Restart smartgears
 
    - name: Install the nco package
      become_user: root
      apt: pkg=nco state=present update_cache=yes cache_valid_time=1800

  become: True
  become_user: '{{ smartgears_user }}'
  when: is_exporter_se_plugin_install
  tags: [ 'smartgears', 'is_exporter_se', 'tomcat' ]