Harden malformed Seriatim state recovery

This commit is contained in:
2026-09-07 19:09:09 +00:00
parent 07dd736479
commit ca49dae1bb

View File

@@ -75,16 +75,38 @@
path: "{{ seriatim_build_state_dir }}/binary.sha256"
register: seriatim_checksum_state_stat
- name: Remove malformed Seriatim build state objects
ansible.builtin.file:
path: "{{ item.path }}"
state: absent
loop:
- path: "{{ seriatim_build_state_dir }}/build-inputs.json"
exists: "{{ seriatim_build_inputs_state_stat.stat.exists }}"
is_regular: "{{ seriatim_build_inputs_state_stat.stat.isreg | default(false) }}"
- path: "{{ seriatim_build_state_dir }}/fingerprint.sha256"
exists: "{{ seriatim_fingerprint_state_stat.stat.exists }}"
is_regular: "{{ seriatim_fingerprint_state_stat.stat.isreg | default(false) }}"
- path: "{{ seriatim_build_state_dir }}/binary.sha256"
exists: "{{ seriatim_checksum_state_stat.stat.exists }}"
is_regular: "{{ seriatim_checksum_state_stat.stat.isreg | default(false) }}"
when:
- item.exists | bool
- not item.is_regular | bool
- name: Read stored Seriatim fingerprint
ansible.builtin.slurp:
src: "{{ seriatim_build_state_dir }}/fingerprint.sha256"
register: seriatim_stored_fingerprint_result
when: seriatim_fingerprint_state_stat.stat.exists
failed_when: false
when:
- seriatim_fingerprint_state_stat.stat.isreg | default(false)
- seriatim_fingerprint_state_stat.stat.readable | default(false)
- name: Read stored Seriatim build inputs
ansible.builtin.slurp:
src: "{{ seriatim_build_state_dir }}/build-inputs.json"
register: seriatim_stored_build_inputs_result
failed_when: false
when:
- seriatim_build_inputs_state_stat.stat.isreg | default(false)
- seriatim_build_inputs_state_stat.stat.readable | default(false)
@@ -93,7 +115,10 @@
ansible.builtin.slurp:
src: "{{ seriatim_build_state_dir }}/binary.sha256"
register: seriatim_stored_checksum_result
when: seriatim_checksum_state_stat.stat.exists
failed_when: false
when:
- seriatim_checksum_state_stat.stat.isreg | default(false)
- seriatim_checksum_state_stat.stat.readable | default(false)
- name: Record stored Seriatim state values
ansible.builtin.set_fact:
@@ -106,8 +131,13 @@
when:
- seriatim_build_inputs_state_stat.stat.isreg | default(false)
- seriatim_build_inputs_state_stat.stat.readable | default(false)
- seriatim_fingerprint_state_stat.stat.exists
- seriatim_checksum_state_stat.stat.exists
- seriatim_fingerprint_state_stat.stat.isreg | default(false)
- seriatim_fingerprint_state_stat.stat.readable | default(false)
- seriatim_checksum_state_stat.stat.isreg | default(false)
- seriatim_checksum_state_stat.stat.readable | default(false)
- not (seriatim_stored_build_inputs_result.failed | default(true))
- not (seriatim_stored_fingerprint_result.failed | default(true))
- not (seriatim_stored_checksum_result.failed | default(true))
- name: Read installed Seriatim version
ansible.builtin.command: