Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -254,12 +254,15 @@ def _download_file(url, filepath, retry=0, **kwargs):
logger.debug("checksum: %s; url: %s", checksum, res.request.url)
if (not checksum) or _is_checksum_matched(filepath, checksum):
return

# If checksum validation fails, the file on disk is considered invalid.
# Remove it to ensure the next attempt (retry or external) starts fresh.
logger.warning("checksum mismatch: %s: %s", filepath, checksum)
if os.path.exists(filepath):
os.remove(filepath)

if retry >= MAX_RETRY_TIMES:
# Remove partial file if exists.
if os.path.exists(filepath):
os.remove(filepath)
raise RuntimeError(f'failed to download {url}: md5 mismatch')
raise RuntimeError(f'failed to download {url}: checksum mismatch after {MAX_RETRY_TIMES} retries')
return _download_file(url, filepath, retry+1, **kwargs)


Expand Down
4 changes: 0 additions & 4 deletions roles/sap_software_download/tasks/download_files.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,6 @@
loop_control:
label: "{{ item }} : {{ __sap_software_download_files_results_venv.msg | d('') }}"
register: __sap_software_download_files_results_venv
retries: 1
until: __sap_software_download_files_results_venv is not failed
environment:
PATH: "{{ __sap_software_download_venv.path }}/bin:{{ ansible_env.PATH }}"
PYTHONPATH: "{{ __sap_software_download_venv.path }}/lib/{{ sap_software_download_python_interpreter }}/site-packages"
Expand All @@ -38,8 +36,6 @@
loop_control:
label: "{{ item }} : {{ __sap_software_download_files_results_default.msg | d('') }}"
register: __sap_software_download_files_results_default
retries: 1
until: __sap_software_download_files_results_default is not failed
vars:
ansible_python_interpreter: "{{ '/usr/bin/' ~ sap_software_download_python_interpreter }}"
ignore_errors: true # Errors are ignored and validated afterwards
Expand Down
4 changes: 0 additions & 4 deletions roles/sap_software_download/tasks/download_plan.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@
loop_control:
label: "{{ item.Filename }} : {{ __sap_software_download_files_plan_results_venv.msg | d('') }}"
register: __sap_software_download_files_plan_results_venv
retries: 1
until: __sap_software_download_files_plan_results_venv is not failed
environment:
PATH: "{{ __sap_software_download_venv.path }}/bin:{{ ansible_env.PATH }}"
PYTHONPATH: "{{ __sap_software_download_venv.path }}/lib/{{ sap_software_download_python_interpreter }}/site-packages"
Expand All @@ -36,8 +34,6 @@
loop_control:
label: "{{ item.Filename }} : {{ __sap_software_download_files_plan_results_default.msg | d('') }}"
register: __sap_software_download_files_plan_results_default
retries: 1
until: __sap_software_download_files_plan_results_default is not failed
vars:
ansible_python_interpreter: "{{ '/usr/bin/' ~ sap_software_download_python_interpreter }}"
ignore_errors: true # Errors are ignored and validated afterwards
Expand Down
2 changes: 0 additions & 2 deletions roles/sap_software_download/tasks/download_stack.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
transaction_name: "{{ sap_software_download_mp_transaction }}"
dest: "{{ sap_software_download_directory }}"
register: __sap_software_download_stack_results_venv
retries: 1
environment:
PATH: "{{ __sap_software_download_venv.path }}/bin:{{ ansible_env.PATH }}"
PYTHONPATH: "{{ __sap_software_download_venv.path }}/lib/{{ sap_software_download_python_interpreter }}/site-packages"
Expand All @@ -27,7 +26,6 @@
transaction_name: "{{ sap_software_download_mp_transaction }}"
dest: "{{ sap_software_download_directory }}"
register: __sap_software_download_stack_results_default
retries: 1
vars:
ansible_python_interpreter: "{{ '/usr/bin/' ~ sap_software_download_python_interpreter }}"
ignore_errors: true # Errors are ignored and validated afterwards
Expand Down