Skip to content

Commit

Permalink
Merge pull request #183 from IBM/cartridge-delete
Browse files Browse the repository at this point in the history
#182 Avoid deletion of dependent cartridge
  • Loading branch information
arthurlaimbock authored Oct 24, 2022
2 parents 2e5ea93 + a3d645e commit da02930
Show file tree
Hide file tree
Showing 2 changed files with 22 additions and 33 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,42 +12,14 @@
failed_when: False
register: _cartridge_installed

- set_fact:
_cartridge_is_dependent: False

- name: Validate if cartridge is installed as part of a dependent component
block:
- name: Check if cartridge {{ _current_cartridge_cr.name }} is installed with a dependency flag
shell: |
oc get {{ _current_cartridge_cr.cr_cr }} \
--namespace {{ _p_current_cp4d_cluster.project }} \
-o json | jq -r ".items [] | select({{ _current_cartridge_cr.filter_dependency }}) | .metadata.name" | wc -l
register: _cartridge_dependency_result

- set_fact:
_cartridge_is_dependent: True
when:
- _cartridge_dependency_result.rc == 0
- _cartridge_dependency_result.stdout != '0'

- debug:
msg: >
"Cartridge {{ _current_cartridge_cr.name }} is deployed as part of a dependency.
CR {{ _current_cartridge_cr.cr_cr }} contains select filter: {{ _current_cartridge_cr.filter_dependency }}.
Skipping delete...."
when: _cartridge_is_dependent == True

when: >
_cartridge_installed.rc == 0 and
_current_cartridge_cr.filter_dependency | default ('') != ''
- name: Remove cartridge if it is currently installed but is to be uninstalled
shell: |
oc delete {{ _current_cartridge_cr.cr_cr }} --namespace {{ _p_current_cp4d_cluster.project }} --all
when: >
_cartridge_is_dependent == False and
_cartridge_installed.rc == 0 and
( _configured_cartridge == {} or ( (_configured_cartridge.state | default('installed')) == 'removed' ) )
when:
- not (_configured_cartridge.Component_name | default('')) in _cartridge_dependencies
- _cartridge_installed.rc == 0
- _configured_cartridge == {} or ((_configured_cartridge.state | default('installed')) == 'removed' )

when:
- (_current_cartridge_cr.cr_cr | default('')) != ''
- not (_current_cartridge_cr.embedded | default(False) | bool)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
- set_fact:
_cartridges_with_olm_utils_name: []
_cartridges_to_install: []
_cartridge_dependencies: []

- name: Obtain versions of case files and cartridges
include_tasks: list-components-olm-utils.yml
Expand Down Expand Up @@ -70,6 +71,22 @@
debug:
var: _sequential_install

- name: Determine cartridge dependencies
set_fact:
_cartridge_dependencies: >-
{{ _cartridge_dependencies + ( item.Dependencies.split('+') | map("trim") | list | reject('match','^$') | list ) | unique }}
when: (item.state | default('installed')) == 'installed'
loop: "{{ _cartridges_to_install }}"

- name: Remove duplicate entries from cartridge dependencies
set_fact:
_cartridge_dependencies: >-
{{ _cartridge_dependencies | unique }}
- name: Show full cartridge information
debug:
var: _cartridges_to_install

- name: Show cartridge dependencies
debug:
var: _cartridge_dependencies

0 comments on commit da02930

Please sign in to comment.