Ilya Dryomov [Tue, 4 Nov 2025 12:02:46 +0000 (13:02 +0100)]
task/install: don't attempt to handle strings for extra_system_packages
To the best of my knowledge, extra_system_packages has never accepted
a string as a value -- whether at the top level (i.e. on the install
task itself) or on a particular project (e.g. ceph).
Ilya Dryomov [Tue, 4 Nov 2025 12:02:46 +0000 (13:02 +0100)]
task/install: extra_system_packages at the top level can be a list
Commit fc5a3197f22e ("task/install: allow both list and dicts for
extra_system_packages") introduced a regression for job definitions
where extra_system_packages at the top level (i.e. on the install
task itself) is a list. For example
Zack Cerza [Wed, 19 Mar 2025 18:35:11 +0000 (12:35 -0600)]
lock.ops.unlock_one_safe: Invert run-match logic
When unlock_one_safe is called with run_name, the caller means to express
"unlock this node if it belongs to this run".
When it is called with run_name and job_id, it means "unlock this node if it
belongs to this job in this run".
We had inverted the logic, causing leaks on reimage failures.