Skip to content

Commit 3888bf0

Browse files
authored
Merge pull request #50 from marcelmamula/issue39
sap_software_download: Fix for failed checksums not correctly retrying
2 parents 74b6f15 + 33a93e1 commit 3888bf0

File tree

4 files changed

+7
-14
lines changed

4 files changed

+7
-14
lines changed

plugins/module_utils/sap_launchpad_software_center_download_runner.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -254,12 +254,15 @@ def _download_file(url, filepath, retry=0, **kwargs):
254254
logger.debug("checksum: %s; url: %s", checksum, res.request.url)
255255
if (not checksum) or _is_checksum_matched(filepath, checksum):
256256
return
257+
258+
# If checksum validation fails, the file on disk is considered invalid.
259+
# Remove it to ensure the next attempt (retry or external) starts fresh.
257260
logger.warning("checksum mismatch: %s: %s", filepath, checksum)
261+
if os.path.exists(filepath):
262+
os.remove(filepath)
263+
258264
if retry >= MAX_RETRY_TIMES:
259-
# Remove partial file if exists.
260-
if os.path.exists(filepath):
261-
os.remove(filepath)
262-
raise RuntimeError(f'failed to download {url}: md5 mismatch')
265+
raise RuntimeError(f'failed to download {url}: checksum mismatch after {MAX_RETRY_TIMES} retries')
263266
return _download_file(url, filepath, retry+1, **kwargs)
264267

265268

roles/sap_software_download/tasks/download_files.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,6 @@
1414
loop_control:
1515
label: "{{ item }} : {{ __sap_software_download_files_results_venv.msg | d('') }}"
1616
register: __sap_software_download_files_results_venv
17-
retries: 1
18-
until: __sap_software_download_files_results_venv is not failed
1917
environment:
2018
PATH: "{{ __sap_software_download_venv.path }}/bin:{{ ansible_env.PATH }}"
2119
PYTHONPATH: "{{ __sap_software_download_venv.path }}/lib/{{ sap_software_download_python_interpreter }}/site-packages"
@@ -38,8 +36,6 @@
3836
loop_control:
3937
label: "{{ item }} : {{ __sap_software_download_files_results_default.msg | d('') }}"
4038
register: __sap_software_download_files_results_default
41-
retries: 1
42-
until: __sap_software_download_files_results_default is not failed
4339
vars:
4440
ansible_python_interpreter: "{{ '/usr/bin/' ~ sap_software_download_python_interpreter }}"
4541
ignore_errors: true # Errors are ignored and validated afterwards

roles/sap_software_download/tasks/download_plan.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@
1313
loop_control:
1414
label: "{{ item.Filename }} : {{ __sap_software_download_files_plan_results_venv.msg | d('') }}"
1515
register: __sap_software_download_files_plan_results_venv
16-
retries: 1
17-
until: __sap_software_download_files_plan_results_venv is not failed
1816
environment:
1917
PATH: "{{ __sap_software_download_venv.path }}/bin:{{ ansible_env.PATH }}"
2018
PYTHONPATH: "{{ __sap_software_download_venv.path }}/lib/{{ sap_software_download_python_interpreter }}/site-packages"
@@ -36,8 +34,6 @@
3634
loop_control:
3735
label: "{{ item.Filename }} : {{ __sap_software_download_files_plan_results_default.msg | d('') }}"
3836
register: __sap_software_download_files_plan_results_default
39-
retries: 1
40-
until: __sap_software_download_files_plan_results_default is not failed
4137
vars:
4238
ansible_python_interpreter: "{{ '/usr/bin/' ~ sap_software_download_python_interpreter }}"
4339
ignore_errors: true # Errors are ignored and validated afterwards

roles/sap_software_download/tasks/download_stack.yml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
transaction_name: "{{ sap_software_download_mp_transaction }}"
1010
dest: "{{ sap_software_download_directory }}"
1111
register: __sap_software_download_stack_results_venv
12-
retries: 1
1312
environment:
1413
PATH: "{{ __sap_software_download_venv.path }}/bin:{{ ansible_env.PATH }}"
1514
PYTHONPATH: "{{ __sap_software_download_venv.path }}/lib/{{ sap_software_download_python_interpreter }}/site-packages"
@@ -27,7 +26,6 @@
2726
transaction_name: "{{ sap_software_download_mp_transaction }}"
2827
dest: "{{ sap_software_download_directory }}"
2928
register: __sap_software_download_stack_results_default
30-
retries: 1
3129
vars:
3230
ansible_python_interpreter: "{{ '/usr/bin/' ~ sap_software_download_python_interpreter }}"
3331
ignore_errors: true # Errors are ignored and validated afterwards

0 commit comments

Comments
 (0)