|
125 | 125 | when: >- |
126 | 126 | (agent_datadog_skip_install and (agent_datadog_major | int <= 7) and (agent_datadog_minor | int < 45)) and |
127 | 127 | (("NPM" in agent_windows_active_features.stdout_lines) != agent_datadog_sysprobe_enabled) |
| 128 | +
|
| 129 | +# Check if downgrade is requested (installed version is higher than requested version) |
| 130 | +- name: Initialize downgrade detection flag |
| 131 | + ansible.builtin.set_fact: |
| 132 | + agent_datadog_downgrade_detected: false |
| 133 | + |
| 134 | +- name: Detect if downgrade is requested |
| 135 | + ansible.builtin.set_fact: |
| 136 | + agent_datadog_downgrade_detected: true |
| 137 | + when: >- |
| 138 | + agent_datadog_installed_major is defined and |
| 139 | + agent_datadog_installed_minor is defined and |
| 140 | + agent_datadog_installed_bugfix is defined and |
| 141 | + ( |
| 142 | + (agent_datadog_installed_major | int > agent_datadog_major | int) or |
| 143 | + (agent_datadog_installed_major | int == agent_datadog_major | int and |
| 144 | + agent_datadog_installed_minor | int > agent_datadog_minor | int) or |
| 145 | + (agent_datadog_installed_major | int == agent_datadog_major | int and |
| 146 | + agent_datadog_installed_minor | int == agent_datadog_minor | int and |
| 147 | + agent_datadog_installed_bugfix | int > agent_datadog_bugfix | int) |
| 148 | + ) |
| 149 | +
|
| 150 | +# Skip downgrade warning if remote update is in progress |
| 151 | +- name: Warn about downgrade |
| 152 | + ansible.builtin.debug: |
| 153 | + msg: >- |
| 154 | + datadog_agent_version {{ agent_datadog_major }}.{{ agent_datadog_minor }}.{{ agent_datadog_bugfix }} |
| 155 | + is lower than installed version |
| 156 | + {{ agent_datadog_installed_major }}.{{ agent_datadog_installed_minor }}.{{ agent_datadog_installed_bugfix }}, |
| 157 | + proceeding to downgrade by uninstalling current version first |
| 158 | + when: agent_datadog_downgrade_detected and not datadog_remote_update_in_progress |
| 159 | + |
| 160 | +# We do not need to check for remote update in progress here because installation is skipped if remote update is in progress anyway |
| 161 | +- name: Force reinstall for downgrade |
| 162 | + ansible.builtin.set_fact: |
| 163 | + agent_datadog_skip_install: false |
| 164 | + agent_datadog_force_reinstall: true |
| 165 | + when: agent_datadog_downgrade_detected |
0 commit comments