1+ # get the latest version of all the existing jar files
2+ - name : " in_place_upgrade : detect version to upgrade from."
3+ set_fact :
4+ aem_cms_in_place_upgrade_existing_version : " {{ aem_cms_in_place_upgrade_existing_quickstarts | map('regex_replace', '^.*cq-quickstart-(.+)-standalone-quickstart.jar$', '\\ 1') | list | sort | reverse | list | first}}"
5+
6+ # safe gate which only allows upgrades when allowed
7+ - name : " in_place_upgrade : fail when upgrade is not allowed."
8+ fail :
9+ msg :
10+ - " In place upgrade is not allowed, 'aem_cms_in_place_upgrade' is set to '{{ aem_cms_in_place_upgrade }}'"
11+ - " existing version: '{{ aem_cms_in_place_upgrade_existing_version }}'"
12+ - " version to deploy: '{{ aem_cms_version }}'"
13+ when : not aem_cms_in_place_upgrade
14+
15+ # fail on downgrade
16+ - name : " in_place_upgrade : fail on downgrade."
17+ fail :
18+ msg :
19+ - " Downgrading is not allowed/supported!"
20+ - " existing version: '{{ aem_cms_in_place_upgrade_existing_version }}'"
21+ - " version to deploy: '{{ aem_cms_version }}'"
22+ when : aem_cms_version is version_compare(aem_cms_in_place_upgrade_existing_version, '<')
23+
24+ # check if upgrading is allowed based on existing and new version
25+ - name : " in_place_upgrade : fail when upgrade path from '{{ aem_cms_in_place_upgrade_existing_version }}' to '{{ aem_cms_version }}' is not allowed."
26+ fail :
27+ msg : " Upgrade from {{ aem_cms_in_place_upgrade_existing_version }} to {{ aem_cms_version }} is not allowed."
28+ when : aem_cms_in_place_upgrade_paths[aem_cms_in_place_upgrade_existing_version] is not defined or
29+ aem_cms_version not in aem_cms_in_place_upgrade_paths[aem_cms_in_place_upgrade_existing_version]
30+
31+ # ensure instance is stopped before renaming the jars
32+ - name : " in_place_upgrade : stopping existing instance for upgrade."
33+ service :
34+ name : " {{ aem_cms_service_name }}"
35+ state : stopped
36+
37+ # rename old quickstart jars to *.jar.bak because default start script will use first jar found in the app folder
38+ - name : " in_place_upgrade : create a backup of existing quickstart(s)."
39+ command : " mv {{ item }} {{ item }}.bak"
40+ changed_when : true
41+ with_items : " {{ aem_cms_in_place_upgrade_existing_quickstarts }}"
0 commit comments