features/tuf/hashed_bins_root.featureRunning behat features/tuf/hashed_bins_root.feature results in:
@rugged @cli @hashed-bins @gitlab-99
Feature: Hashed bins using the root-worker.
In order to reduce the size of generated metadata files,
As a Rugged operator,
I need to be able to configure Rugged to use hashed bins.
Background:
Given I reset Rugged
Scenario: Hashed bins can be enabled on a new repo.
Given I run "sudo cp features/fixtures/config/enable_hashed_bins.yaml /var/rugged/.config/rugged/config.yaml"
And I run the Rugged command "rugged generate-keys"
When I run the Rugged command "rugged --debug initialize"
And I run the Rugged command "rugged logs --worker=root-worker --limit=0"
Then I should get:
"""
Initialized 'bins' metadata.
Added top-level 'bins' delegated role to 'targets' metadata, in order to handle hashed bin delegation.
Hashed bins is configured to use 16 bins.
Based on 16 hashed bins, the calculated bin prefix length is 1.
Based on a bin prefix length of 1, the calculated number of prefixes is 16.
Based on 16 hashed bins, the calculated bin size is 1.
Initialized 'bin_0' metadata.
Delegated the following target file hash prefixes to 'bin_0': 0.
Initialized 'bin_1' metadata.
Delegated the following target file hash prefixes to 'bin_1': 1.
Initialized 'bin_f' metadata.
Delegated the following target file hash prefixes to 'bin_f': f.
"""
'Initialized 'bins' metadata.' was not found in command output:
------
=== Log for root-worker: /var/log/rugged/rugged.log ===
2026-06-08 18:16:17,889 INFO (root-worker.generate_keypair_task): Generating 'root' keypair for 'root' role.
2026-06-08 18:16:17,906 INFO (root-worker.generate_keypair_task): Generating 'root1' keypair for 'root' role.
2026-06-08 18:16:17,921 INFO (root-worker.generate_keypair_task): Generating 'snapshot' keypair for 'snapshot' role.
2026-06-08 18:16:17,936 INFO (root-worker.generate_keypair_task): Generating 'targets' keypair for 'targets' role.
2026-06-08 18:16:17,949 INFO (root-worker.generate_keypair_task): Generating 'timestamp' keypair for 'timestamp' role.
2026-06-08 18:16:18,510 DEBUG (base_worker.start_tracing_memory_usage): Starting trace of memory allocation.
2026-06-08 18:16:18,510 DEBUG (root-worker.initialize_task): Received 'initialize' task.
2026-06-08 18:16:18,510 DEBUG (init_repo.init_repo): Initializing new TUF repository locally.
2026-06-08 18:16:18,511 INFO (init_repo.init_repo): Initializing new TUF repository at /var/rugged/tuf_repo.
2026-06-08 18:16:18,512 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root.pub'.
2026-06-08 18:16:18,512 DEBUG (key_manager.find_verification_keys_for_role): Found 'root' verification key for 'root' role.
2026-06-08 18:16:18,513 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root1.pub'.
2026-06-08 18:16:18,513 DEBUG (key_manager.find_verification_keys_for_role): Found 'root1' verification key for 'root' role.
2026-06-08 18:16:18,514 DEBUG (key_manager.load_verification_key): Loading verification key for 'timestamp' role from '/var/rugged/verification_keys/timestamp/timestamp.pub'.
2026-06-08 18:16:18,514 DEBUG (key_manager.find_verification_keys_for_role): Found 'timestamp' verification key for 'timestamp' role.
2026-06-08 18:16:18,515 DEBUG (key_manager.load_verification_key): Loading verification key for 'snapshot' role from '/var/rugged/verification_keys/snapshot/snapshot.pub'.
2026-06-08 18:16:18,515 DEBUG (key_manager.find_verification_keys_for_role): Found 'snapshot' verification key for 'snapshot' role.
2026-06-08 18:16:18,516 DEBUG (key_manager.load_verification_key): Loading verification key for 'targets' role from '/var/rugged/verification_keys/targets/targets.pub'.
2026-06-08 18:16:18,517 DEBUG (key_manager.find_verification_keys_for_role): Found 'targets' verification key for 'targets' role.
2026-06-08 18:16:18,517 DEBUG (repo._add_key_to_keychain): Adding 'root' key to keychain.
2026-06-08 18:16:18,517 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root'.
2026-06-08 18:16:18,518 DEBUG (key_manager.load_keys): Loaded 'root' signing key for 'root' role.
2026-06-08 18:16:18,518 DEBUG (repo._add_key_to_keychain): Adding 'root1' key to keychain.
2026-06-08 18:16:18,518 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root1'.
2026-06-08 18:16:18,518 DEBUG (key_manager.load_keys): Loaded 'root1' signing key for 'root' role.
2026-06-08 18:16:18,519 DEBUG (repo._add_key_to_keychain): Adding 'timestamp' key to keychain.
2026-06-08 18:16:18,519 DEBUG (key_manager.load_signing_key): Loading signing key for 'timestamp' role from '/var/rugged/signing_keys/timestamp/timestamp'.
2026-06-08 18:16:18,519 DEBUG (key_manager.load_keys): Loaded 'timestamp' signing key for 'timestamp' role.
2026-06-08 18:16:18,519 DEBUG (repo._add_key_to_keychain): Adding 'snapshot' key to keychain.
2026-06-08 18:16:18,520 DEBUG (key_manager.load_signing_key): Loading signing key for 'snapshot' role from '/var/rugged/signing_keys/snapshot/snapshot'.
2026-06-08 18:16:18,520 DEBUG (key_manager.load_keys): Loaded 'snapshot' signing key for 'snapshot' role.
2026-06-08 18:16:18,521 DEBUG (repo._add_key_to_keychain): Adding 'targets' key to keychain.
2026-06-08 18:16:18,521 DEBUG (key_manager.load_signing_key): Loading signing key for 'targets' role from '/var/rugged/signing_keys/targets/targets'.
2026-06-08 18:16:18,521 DEBUG (key_manager.load_keys): Loaded 'targets' signing key for 'targets' role.
2026-06-08 18:16:18,522 DEBUG (repo._init_targets_role): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:16:18,522 DEBUG (repo._init_targets_role): Initialized 'targets' metadata.
2026-06-08 18:16:18,522 DEBUG (repo._init_snapshot_role): Setting 'snapshot' metadata expiry to 604800.
2026-06-08 18:16:18,523 DEBUG (repo._init_snapshot_role): Initialized 'snapshot' metadata.
2026-06-08 18:16:18,523 DEBUG (repo._init_timestamp_role): Setting 'timestamp' metadata expiry to 86400.
2026-06-08 18:16:18,524 DEBUG (repo._init_timestamp_role): Initialized 'timestamp' metadata.
2026-06-08 18:16:18,524 DEBUG (repo._init_root_role): Collecting keys for 'root' metadata.
2026-06-08 18:16:18,525 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 9368d8609aa4c0879ca8aaad07509bb894731e364f0e40b660d91489d8592f78
2026-06-08 18:16:18,525 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: d83c47a48a254e62856483f7f0825d8301c1bdfe69d9e521a6ad732da399ae21
2026-06-08 18:16:18,525 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 0bb7b3602a149a4f98daa6c85e8b72ba6db027c7ffceae07cc2bab6c1afb8b44
2026-06-08 18:16:18,525 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 1acff67bc1ec35eb9d5a5d146f3a2476fe1c2a3b8a363c150c7e17ab5a1fb092
2026-06-08 18:16:18,526 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 2f89073fe59992cc8a6dfb292daeed400a56d80cd4b3e1394eaab7594331386f
2026-06-08 18:16:18,526 DEBUG (repo._init_root_role): Collecting roles for 'root' metadata.
2026-06-08 18:16:18,526 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: 9368d8609aa4c0879ca8aaad07509bb894731e364f0e40b660d91489d8592f78
2026-06-08 18:16:18,526 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: d83c47a48a254e62856483f7f0825d8301c1bdfe69d9e521a6ad732da399ae21
2026-06-08 18:16:18,527 DEBUG (repo._get_repo_roles_for_root_role): Setting 'root' signature threshold to 1.
2026-06-08 18:16:18,527 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'timestamp' role with KeyID: 0bb7b3602a149a4f98daa6c85e8b72ba6db027c7ffceae07cc2bab6c1afb8b44
2026-06-08 18:16:18,527 DEBUG (repo._get_repo_roles_for_root_role): Setting 'timestamp' signature threshold to 1.
2026-06-08 18:16:18,527 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'snapshot' role with KeyID: 1acff67bc1ec35eb9d5a5d146f3a2476fe1c2a3b8a363c150c7e17ab5a1fb092
2026-06-08 18:16:18,528 DEBUG (repo._get_repo_roles_for_root_role): Setting 'snapshot' signature threshold to 1.
2026-06-08 18:16:18,528 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'targets' role with KeyID: 2f89073fe59992cc8a6dfb292daeed400a56d80cd4b3e1394eaab7594331386f
2026-06-08 18:16:18,528 DEBUG (repo._get_repo_roles_for_root_role): Setting 'targets' signature threshold to 1.
2026-06-08 18:16:18,528 DEBUG (repo.update_metadata_expiry): Setting 'root' metadata expiry to 31536000.
2026-06-08 18:16:18,528 DEBUG (repo._init_root_role): Initialized 'root' metadata.
2026-06-08 18:16:18,529 DEBUG (repo.__init__): Instantiated repository.
2026-06-08 18:16:18,529 DEBUG (repo.update_root): Trying to initialize 'root' metadata from disk.
2026-06-08 18:16:18,529 DEBUG (repo.update_root): Did not find 'root' metadata on disk to load.
2026-06-08 18:16:18,530 DEBUG (repo.update_metadata_expiry): Setting 'root' metadata expiry to 31536000.
2026-06-08 18:16:18,530 DEBUG (repo.sign_metadata): Signed 'root' metadata with 'root' key.
2026-06-08 18:16:18,531 DEBUG (repo.sign_metadata): Signed 'root' metadata with 'root1' key.
2026-06-08 18:16:18,531 INFO (repo.update_root): Updated root metadata.
2026-06-08 18:16:18,531 DEBUG (repo.update_metadata_expiry): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:16:18,532 DEBUG (repo.sign_metadata): Signed 'targets' metadata with 'targets' key.
2026-06-08 18:16:18,532 INFO (repo.update_targets): Updated targets metadata.
2026-06-08 18:16:18,533 DEBUG (repo.update_metadata_expiry): Setting 'snapshot' metadata expiry to 604800.
2026-06-08 18:16:18,533 DEBUG (repo.sign_metadata): Signed 'snapshot' metadata with 'snapshot' key.
2026-06-08 18:16:18,533 INFO (repo.update_snapshot): Updated snapshot metadata.
2026-06-08 18:16:18,534 DEBUG (repo.update_metadata_expiry): Setting 'timestamp' metadata expiry to 86400.
2026-06-08 18:16:18,535 DEBUG (repo.sign_metadata): Signed 'timestamp' metadata with 'timestamp' key.
2026-06-08 18:16:18,535 INFO (repo.update_timestamp): Updated timestamp metadata.
2026-06-08 18:16:18,539 DEBUG (metadata_files.write_metadata_to_file): Wrote 'targets' metadata to file '/var/rugged/tuf_repo/metadata/targets.json'.
2026-06-08 18:16:18,541 DEBUG (metadata_files.write_metadata_to_file): Wrote 'snapshot' metadata to file '/var/rugged/tuf_repo/metadata/snapshot.json'.
2026-06-08 18:16:18,542 DEBUG (metadata_files.write_metadata_to_file): Wrote 'timestamp' metadata to file '/var/rugged/tuf_repo/metadata/timestamp.json'.
2026-06-08 18:16:18,544 DEBUG (metadata_files.write_metadata_to_file): Wrote 'root' metadata to file '/var/rugged/tuf_repo/metadata/1.root.json'.
2026-06-08 18:16:18,545 INFO (root-worker.initialize_task): TUF repository initialized.
2026-06-08 18:16:18,547 DEBUG (base_worker.print_memory_usage): == Memory allocation for: initialize_task ==
2026-06-08 18:16:18,547 DEBUG (base_worker.print_memory_usage): Peak memory allocation: 105.64KiB
2026-06-08 18:16:18,547 DEBUG (base_worker.print_memory_usage): Final memory allocation: 7.20KiB
------
(Exception)
And the following files should exist:
"""
/var/rugged/tuf_repo/metadata/bins.json
/var/rugged/tuf_repo/metadata/bin_0.json
/var/rugged/tuf_repo/metadata/bin_1.json
/var/rugged/tuf_repo/metadata/bin_f.json
"""
When I run "ls /var/rugged/tuf_repo/metadata/bin_*.json | wc -w"
Then I should get:
"""
16
"""
And the file "/var/rugged/tuf_repo/metadata/targets.json" contains:
"""
"signed": {
"_type": "targets",
"delegations": {
"keys": {
},
"roles": [
{
"keyids": [
],
"name": "bins",
"paths": [
"*"
],
"terminating": false,
"threshold": 1
}
]
},
"version": 1
}
"""
And the file "/var/rugged/tuf_repo/metadata/bins.json" contains:
"""
"signatures": [
"signed": {
"_type": "targets",
"delegations": {
"keys": {
"roles": [
"keyids": [
"name": "bin_0",
"path_hash_prefixes": [
"0"
"terminating": true,
"threshold": 1
"""
And the file "/var/rugged/tuf_repo/metadata/bins.json" does not contain:
"""
"signatures": [],
"""
And the file "/var/rugged/tuf_repo/metadata/bin_0.json" contains:
"""
"signatures": [
"signed": {
"_type": "targets",
"targets": {},
"""
And the file "/var/rugged/tuf_repo/metadata/bin_0.json" does not contain:
"""
"signatures": [],
"""
And the file "/var/rugged/tuf_repo/metadata/snapshot.json" contains:
"""
"bins.json": {
"bin_0.json": {
"bin_1.json": {
"bin_f.json": {
"""
Scenario: Hashed bins role metadata can be validated.
Given I run "sudo cp features/fixtures/config/enable_hashed_bins.yaml /var/rugged/.config/rugged/config.yaml"
And I run the Rugged command "rugged generate-keys"
And I run the Rugged command "rugged --debug initialize"
When I run the Rugged command "rugged --debug validate"
The command "'bash' '-c' 'sudo sudo -u rugged rugged --debug validate'" failed.
Exit Code: 1(General error)
Working directory: /var/www/html
Output:
================
Error Output:
================
debug: rugged_cli invoked
debug: Calling 'validate_root()' to validate root metadata.
debug: Loading initial trusted root metadata.
debug: Loading 'root' metadata from '/var/rugged/tuf_repo/metadata/1.root.json'
debug: Loading trusted root metadata
debug: Verifying trusted root metadata
debug: Loaded trusted root v1
Metadata for the 'root' role is valid.
debug: Calling 'validate_timestamp()' to validate timestamp metadata.
debug: Loading 'timestamp' metadata from '/var/rugged/tuf_repo/metadata/timestamp.json'
debug: Updated timestamp v1
Metadata for the 'timestamp' role is valid.
debug: Calling 'validate_snapshot()' to validate snapshot metadata.
debug: Loading 'snapshot' metadata from '/var/rugged/tuf_repo/metadata/snapshot.json'
debug: Updating snapshot metadata.
debug: Updated snapshot v1
Metadata for the 'snapshot' role is valid.
debug: Calling 'validate_targets()' to validate targets metadata.
debug: Loading 'targets' metadata from '/var/rugged/tuf_repo/metadata/targets.json'
debug: Updating targets delegated by root
debug: Version in targets.json is '1'.
debug: Expected version in snapshot.json for targets is '1'.
debug: Updated targets v1
Metadata for the 'targets' role is valid.
debug: Calling 'validate_hashed_bins()' to validate bins metadata.
debug: Loading 'bins' metadata from '/var/rugged/tuf_repo/metadata/bins.json'
Traceback (most recent call last):
File "/usr/local/bin/rugged", line 8, in <module>
sys.exit(rugged_cli())
~~~~~~~~~~^^
File "/usr/local/lib/python3.13/dist-packages/click/core.py", line 1442, in __call__
return self.main(*args, **kwargs)
~~~~~~~~~^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/dist-packages/click/core.py", line 1363, in main
rv = self.invoke(ctx)
File "/usr/local/lib/python3.13/dist-packages/click/core.py", line 1830, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^
File "/usr/local/lib/python3.13/dist-packages/click/core.py", line 1226, in invoke
return ctx.invoke(self.callback, **ctx.params)
~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.13/dist-packages/click/core.py", line 794, in invoke
return callback(*args, **kwargs)
File "/usr/local/lib/python3.13/dist-packages/rugged/commands/validate.py", line 22, in validate_cmd
validate_metadata()
~~~~~~~~~~~~~~~~~^^
File "/usr/local/lib/python3.13/dist-packages/rugged/lib/validate.py", line 33, in validate_metadata
func()
~~~~^^
File "/usr/local/lib/python3.13/dist-packages/rugged/tuf/validators/metadata.py", line 155, in validate_hashed_bins
metadata = self._load_role_metadata('bins')
File "/usr/local/lib/python3.13/dist-packages/rugged/tuf/validators/metadata.py", line 166, in _load_role_metadata
with open(metadata_file_path, "rb") as file:
~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: '/var/rugged/tuf_repo/metadata/bins.json'
debug: Peak memory allocation: 433.48KiB
debug: Final memory allocation: 400.91KiB
(Symfony\Component\Process\Exception\ProcessFailedException)
Then I should not get:
"""
error: UnsignedMetadataError thrown in validate_hashed_bins: bins was signed by 0/1 keys
RuggedMetadataError: Failed to validate hashed-bins roles' metadata.
error: Metadata for the 'bins' role is not valid.
"""
And I should get:
"""
Metadata for the 'targets' role is valid.
Metadata for the 'bins' role is valid.
Metadata for the 'bin_0' role is valid.
Metadata for the 'bin_1' role is valid.
Metadata for the 'bin_f' role is valid.
"""
Scenario: The 'targets' key is used by default to sign hashed bins metadata.
Given I run "sudo cp features/fixtures/config/enable_hashed_bins.yaml /var/rugged/.config/rugged/config.yaml"
And I run the Rugged command "rugged generate-keys"
When I run the Rugged command "rugged --debug initialize"
And I run the Rugged command "rugged logs --worker=root-worker --limit=0"
Then I should get:
"""
Signed 'bins' metadata with 'targets' key.
Signed 'bin_0' metadata with 'targets' key.
Signed 'bin_1' metadata with 'targets' key.
Signed 'bin_f' metadata with 'targets' key.
"""
'Signed 'bins' metadata with 'targets' key.' was not found in command output:
------
=== Log for root-worker: /var/log/rugged/rugged.log ===
2026-06-08 18:16:25,722 INFO (root-worker.generate_keypair_task): Generating 'root' keypair for 'root' role.
2026-06-08 18:16:25,736 INFO (root-worker.generate_keypair_task): Generating 'root1' keypair for 'root' role.
2026-06-08 18:16:25,750 INFO (root-worker.generate_keypair_task): Generating 'snapshot' keypair for 'snapshot' role.
2026-06-08 18:16:25,763 INFO (root-worker.generate_keypair_task): Generating 'targets' keypair for 'targets' role.
2026-06-08 18:16:25,775 INFO (root-worker.generate_keypair_task): Generating 'timestamp' keypair for 'timestamp' role.
2026-06-08 18:16:26,258 DEBUG (base_worker.start_tracing_memory_usage): Starting trace of memory allocation.
2026-06-08 18:16:26,259 DEBUG (root-worker.initialize_task): Received 'initialize' task.
2026-06-08 18:16:26,259 DEBUG (init_repo.init_repo): Initializing new TUF repository locally.
2026-06-08 18:16:26,259 INFO (init_repo.init_repo): Initializing new TUF repository at /var/rugged/tuf_repo.
2026-06-08 18:16:26,259 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root.pub'.
2026-06-08 18:16:26,260 DEBUG (key_manager.find_verification_keys_for_role): Found 'root' verification key for 'root' role.
2026-06-08 18:16:26,260 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root1.pub'.
2026-06-08 18:16:26,261 DEBUG (key_manager.find_verification_keys_for_role): Found 'root1' verification key for 'root' role.
2026-06-08 18:16:26,261 DEBUG (key_manager.load_verification_key): Loading verification key for 'timestamp' role from '/var/rugged/verification_keys/timestamp/timestamp.pub'.
2026-06-08 18:16:26,261 DEBUG (key_manager.find_verification_keys_for_role): Found 'timestamp' verification key for 'timestamp' role.
2026-06-08 18:16:26,262 DEBUG (key_manager.load_verification_key): Loading verification key for 'snapshot' role from '/var/rugged/verification_keys/snapshot/snapshot.pub'.
2026-06-08 18:16:26,262 DEBUG (key_manager.find_verification_keys_for_role): Found 'snapshot' verification key for 'snapshot' role.
2026-06-08 18:16:26,262 DEBUG (key_manager.load_verification_key): Loading verification key for 'targets' role from '/var/rugged/verification_keys/targets/targets.pub'.
2026-06-08 18:16:26,263 DEBUG (key_manager.find_verification_keys_for_role): Found 'targets' verification key for 'targets' role.
2026-06-08 18:16:26,263 DEBUG (repo._add_key_to_keychain): Adding 'root' key to keychain.
2026-06-08 18:16:26,263 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root'.
2026-06-08 18:16:26,263 DEBUG (key_manager.load_keys): Loaded 'root' signing key for 'root' role.
2026-06-08 18:16:26,264 DEBUG (repo._add_key_to_keychain): Adding 'root1' key to keychain.
2026-06-08 18:16:26,264 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root1'.
2026-06-08 18:16:26,264 DEBUG (key_manager.load_keys): Loaded 'root1' signing key for 'root' role.
2026-06-08 18:16:26,264 DEBUG (repo._add_key_to_keychain): Adding 'timestamp' key to keychain.
2026-06-08 18:16:26,264 DEBUG (key_manager.load_signing_key): Loading signing key for 'timestamp' role from '/var/rugged/signing_keys/timestamp/timestamp'.
2026-06-08 18:16:26,265 DEBUG (key_manager.load_keys): Loaded 'timestamp' signing key for 'timestamp' role.
2026-06-08 18:16:26,265 DEBUG (repo._add_key_to_keychain): Adding 'snapshot' key to keychain.
2026-06-08 18:16:26,265 DEBUG (key_manager.load_signing_key): Loading signing key for 'snapshot' role from '/var/rugged/signing_keys/snapshot/snapshot'.
2026-06-08 18:16:26,265 DEBUG (key_manager.load_keys): Loaded 'snapshot' signing key for 'snapshot' role.
2026-06-08 18:16:26,265 DEBUG (repo._add_key_to_keychain): Adding 'targets' key to keychain.
2026-06-08 18:16:26,265 DEBUG (key_manager.load_signing_key): Loading signing key for 'targets' role from '/var/rugged/signing_keys/targets/targets'.
2026-06-08 18:16:26,266 DEBUG (key_manager.load_keys): Loaded 'targets' signing key for 'targets' role.
2026-06-08 18:16:26,266 DEBUG (repo._init_targets_role): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:16:26,266 DEBUG (repo._init_targets_role): Initialized 'targets' metadata.
2026-06-08 18:16:26,266 DEBUG (repo._init_snapshot_role): Setting 'snapshot' metadata expiry to 604800.
2026-06-08 18:16:26,267 DEBUG (repo._init_snapshot_role): Initialized 'snapshot' metadata.
2026-06-08 18:16:26,267 DEBUG (repo._init_timestamp_role): Setting 'timestamp' metadata expiry to 86400.
2026-06-08 18:16:26,267 DEBUG (repo._init_timestamp_role): Initialized 'timestamp' metadata.
2026-06-08 18:16:26,268 DEBUG (repo._init_root_role): Collecting keys for 'root' metadata.
2026-06-08 18:16:26,268 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 2451a6362312625efbf39eab6664858ce83b8107f0b96f19e69dd1e3af12e272
2026-06-08 18:16:26,268 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: b24f49a8dde0f57c94d311bb28332efcc77d9ae89778361eda47c9ccd285abc2
2026-06-08 18:16:26,268 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 2311a6ae93ae18b0ce59440beeae5509ff71dafd404cf265fefba1ef258e4e94
2026-06-08 18:16:26,268 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 5369efc3d17bd8ad03a6a92b558d65824c32e86af919280b77698f166cd6161b
2026-06-08 18:16:26,268 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 76a94e4c8904adf6dabed6ee685134958b908c758e74dcd387074f442443bca1
2026-06-08 18:16:26,269 DEBUG (repo._init_root_role): Collecting roles for 'root' metadata.
2026-06-08 18:16:26,269 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: 2451a6362312625efbf39eab6664858ce83b8107f0b96f19e69dd1e3af12e272
2026-06-08 18:16:26,269 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: b24f49a8dde0f57c94d311bb28332efcc77d9ae89778361eda47c9ccd285abc2
2026-06-08 18:16:26,269 DEBUG (repo._get_repo_roles_for_root_role): Setting 'root' signature threshold to 1.
2026-06-08 18:16:26,269 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'timestamp' role with KeyID: 2311a6ae93ae18b0ce59440beeae5509ff71dafd404cf265fefba1ef258e4e94
2026-06-08 18:16:26,269 DEBUG (repo._get_repo_roles_for_root_role): Setting 'timestamp' signature threshold to 1.
2026-06-08 18:16:26,270 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'snapshot' role with KeyID: 5369efc3d17bd8ad03a6a92b558d65824c32e86af919280b77698f166cd6161b
2026-06-08 18:16:26,270 DEBUG (repo._get_repo_roles_for_root_role): Setting 'snapshot' signature threshold to 1.
2026-06-08 18:16:26,270 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'targets' role with KeyID: 76a94e4c8904adf6dabed6ee685134958b908c758e74dcd387074f442443bca1
2026-06-08 18:16:26,270 DEBUG (repo._get_repo_roles_for_root_role): Setting 'targets' signature threshold to 1.
2026-06-08 18:16:26,270 DEBUG (repo.update_metadata_expiry): Setting 'root' metadata expiry to 31536000.
2026-06-08 18:16:26,270 DEBUG (repo._init_root_role): Initialized 'root' metadata.
2026-06-08 18:16:26,271 DEBUG (repo.__init__): Instantiated repository.
2026-06-08 18:16:26,271 DEBUG (repo.update_root): Trying to initialize 'root' metadata from disk.
2026-06-08 18:16:26,271 DEBUG (repo.update_root): Did not find 'root' metadata on disk to load.
2026-06-08 18:16:26,271 DEBUG (repo.update_metadata_expiry): Setting 'root' metadata expiry to 31536000.
2026-06-08 18:16:26,272 DEBUG (repo.sign_metadata): Signed 'root' metadata with 'root' key.
2026-06-08 18:16:26,272 DEBUG (repo.sign_metadata): Signed 'root' metadata with 'root1' key.
2026-06-08 18:16:26,273 INFO (repo.update_root): Updated root metadata.
2026-06-08 18:16:26,273 DEBUG (repo.update_metadata_expiry): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:16:26,273 DEBUG (repo.sign_metadata): Signed 'targets' metadata with 'targets' key.
2026-06-08 18:16:26,273 INFO (repo.update_targets): Updated targets metadata.
2026-06-08 18:16:26,274 DEBUG (repo.update_metadata_expiry): Setting 'snapshot' metadata expiry to 604800.
2026-06-08 18:16:26,274 DEBUG (repo.sign_metadata): Signed 'snapshot' metadata with 'snapshot' key.
2026-06-08 18:16:26,274 INFO (repo.update_snapshot): Updated snapshot metadata.
2026-06-08 18:16:26,275 DEBUG (repo.update_metadata_expiry): Setting 'timestamp' metadata expiry to 86400.
2026-06-08 18:16:26,275 DEBUG (repo.sign_metadata): Signed 'timestamp' metadata with 'timestamp' key.
2026-06-08 18:16:26,275 INFO (repo.update_timestamp): Updated timestamp metadata.
2026-06-08 18:16:26,277 DEBUG (metadata_files.write_metadata_to_file): Wrote 'targets' metadata to file '/var/rugged/tuf_repo/metadata/targets.json'.
2026-06-08 18:16:26,279 DEBUG (metadata_files.write_metadata_to_file): Wrote 'snapshot' metadata to file '/var/rugged/tuf_repo/metadata/snapshot.json'.
2026-06-08 18:16:26,280 DEBUG (metadata_files.write_metadata_to_file): Wrote 'timestamp' metadata to file '/var/rugged/tuf_repo/metadata/timestamp.json'.
2026-06-08 18:16:26,282 DEBUG (metadata_files.write_metadata_to_file): Wrote 'root' metadata to file '/var/rugged/tuf_repo/metadata/1.root.json'.
2026-06-08 18:16:26,282 INFO (root-worker.initialize_task): TUF repository initialized.
2026-06-08 18:16:26,284 DEBUG (base_worker.print_memory_usage): == Memory allocation for: initialize_task ==
2026-06-08 18:16:26,284 DEBUG (base_worker.print_memory_usage): Peak memory allocation: 111.24KiB
2026-06-08 18:16:26,284 DEBUG (base_worker.print_memory_usage): Final memory allocation: 20.68KiB
------
(Exception)
Scenario Outline: Target files end up in the proper hashed bin metadata.
Given I run "sudo cp features/fixtures/config/enable_hashed_bins.yaml /var/rugged/.config/rugged/config.yaml"
And I run the Rugged command "rugged generate-keys --local"
When I run the Rugged command "rugged --debug initialize --local"
Then the metadata version in "<bin_name>.json" is "1"
And the file "/var/rugged/tuf_repo/metadata/<bin_name>.json" contains:
"""
"targets": {},
"""
Given I am in the "/var/rugged/incoming_targets" directory
And file "<filename>" contains "<contents>"
When I run the Rugged command "rugged --debug add-targets"
And I run the Rugged command "rugged logs --worker=targets-worker --limit=0"
Then I should get:
"""
Hash of '<filename>': <hash>
Added target '<filename>' to '<bin_name>' role.
Updating hashed bin '<bin_name>' metadata to version '2'.
"""
And the file "/var/rugged/tuf_repo/metadata/<bin_name>.json" does not contain:
"""
"targets": {},
"""
And the file "/var/rugged/tuf_repo/metadata/<bin_name>.json" contains:
"""
"targets": {
"<filename>"
"""
Examples:
| filename | contents | bin_name | hash |
| test0.txt | test0 | bin_2 | 23d5e8cadf33c45706d0572fd8b966388e18f5218848ba15cc4c7891c40e26c3 |
Failed step: Then I should get:
'Hash of 'test0.txt': 23d5e8cadf33c45706d0572fd8b966388e18f5218848ba15cc4c7891c40e26c3' was not found in command output:
------
=== Log for targets-worker: /var/log/rugged/rugged.log ===
2026-06-08 18:16:30,202 DEBUG (base_worker.start_tracing_memory_usage): Starting trace of memory allocation.
2026-06-08 18:16:30,202 INFO (targets-worker.add_targets_task): Received add-targets task.
2026-06-08 18:16:30,202 DEBUG (target_files.get_inbound_targets): Scanning for inbound targets in '/var/rugged/incoming_targets'
2026-06-08 18:16:30,203 DEBUG (target_files.get_inbound_targets): Found target: test0.txt
2026-06-08 18:16:30,204 DEBUG (repo._add_key_to_keychain): Adding 'root' key to keychain.
2026-06-08 18:16:30,204 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root'.
2026-06-08 18:16:30,205 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root.pub'.
2026-06-08 18:16:30,206 DEBUG (key_manager.load_keys): Loaded 'root' verification key for 'root' role.
2026-06-08 18:16:30,206 DEBUG (repo._add_key_to_keychain): Adding 'root1' key to keychain.
2026-06-08 18:16:30,206 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root1'.
2026-06-08 18:16:30,207 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root1.pub'.
2026-06-08 18:16:30,207 DEBUG (key_manager.load_keys): Loaded 'root1' verification key for 'root' role.
2026-06-08 18:16:30,208 DEBUG (repo._add_key_to_keychain): Adding 'timestamp' key to keychain.
2026-06-08 18:16:30,208 DEBUG (key_manager.load_signing_key): Loading signing key for 'timestamp' role from '/var/rugged/signing_keys/timestamp/timestamp'.
2026-06-08 18:16:30,208 DEBUG (key_manager.load_verification_key): Loading verification key for 'timestamp' role from '/var/rugged/verification_keys/timestamp/timestamp.pub'.
2026-06-08 18:16:30,209 DEBUG (key_manager.load_keys): Loaded 'timestamp' verification key for 'timestamp' role.
2026-06-08 18:16:30,209 DEBUG (repo._add_key_to_keychain): Adding 'snapshot' key to keychain.
2026-06-08 18:16:30,210 DEBUG (key_manager.load_signing_key): Loading signing key for 'snapshot' role from '/var/rugged/signing_keys/snapshot/snapshot'.
2026-06-08 18:16:30,210 DEBUG (key_manager.load_verification_key): Loading verification key for 'snapshot' role from '/var/rugged/verification_keys/snapshot/snapshot.pub'.
2026-06-08 18:16:30,211 DEBUG (key_manager.load_keys): Loaded 'snapshot' verification key for 'snapshot' role.
2026-06-08 18:16:30,211 DEBUG (repo._add_key_to_keychain): Adding 'targets' key to keychain.
2026-06-08 18:16:30,211 DEBUG (key_manager.load_signing_key): Loading signing key for 'targets' role from '/var/rugged/signing_keys/targets/targets'.
2026-06-08 18:16:30,212 DEBUG (key_manager.load_keys): Loaded 'targets' signing key for 'targets' role.
2026-06-08 18:16:30,212 DEBUG (repo._init_targets_role): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:16:30,213 DEBUG (repo._init_targets_role): Initialized 'targets' metadata.
2026-06-08 18:16:30,213 DEBUG (repo._init_snapshot_role): Setting 'snapshot' metadata expiry to 604800.
2026-06-08 18:16:30,214 DEBUG (repo._init_snapshot_role): Initialized 'snapshot' metadata.
2026-06-08 18:16:30,214 DEBUG (repo._init_timestamp_role): Setting 'timestamp' metadata expiry to 86400.
2026-06-08 18:16:30,215 DEBUG (repo._init_timestamp_role): Initialized 'timestamp' metadata.
2026-06-08 18:16:30,215 DEBUG (repo._init_root_role): Collecting keys for 'root' metadata.
2026-06-08 18:16:30,216 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 0ff6fb0f609ccb7dace6dc13f4bbae2bd6dfa978bb45511133aef1b2d855ad6e
2026-06-08 18:16:30,216 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 49b5d7f0514883e9db8aa11affc82484c1288c14b67dd819795915303412bff4
2026-06-08 18:16:30,216 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: ff5bb9650b31d7fab7b839878e595d94dc5973b65f8fdb53e63007c48b767a53
2026-06-08 18:16:30,217 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: db54eebd1eb36edb86f4d2be860d5e05307c9e7fa4832e732f740f9152d3b01c
2026-06-08 18:16:30,217 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: c3771e5cbb6d2124c15344ff02916f46b34ea7926b96dae3e432eac7c49dd6f0
2026-06-08 18:16:30,217 DEBUG (repo._init_root_role): Collecting roles for 'root' metadata.
2026-06-08 18:16:30,218 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: 0ff6fb0f609ccb7dace6dc13f4bbae2bd6dfa978bb45511133aef1b2d855ad6e
2026-06-08 18:16:30,218 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: 49b5d7f0514883e9db8aa11affc82484c1288c14b67dd819795915303412bff4
2026-06-08 18:16:30,219 DEBUG (repo._get_repo_roles_for_root_role): Setting 'root' signature threshold to 1.
2026-06-08 18:16:30,219 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'timestamp' role with KeyID: ff5bb9650b31d7fab7b839878e595d94dc5973b65f8fdb53e63007c48b767a53
2026-06-08 18:16:30,219 DEBUG (repo._get_repo_roles_for_root_role): Setting 'timestamp' signature threshold to 1.
2026-06-08 18:16:30,220 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'snapshot' role with KeyID: db54eebd1eb36edb86f4d2be860d5e05307c9e7fa4832e732f740f9152d3b01c
2026-06-08 18:16:30,220 DEBUG (repo._get_repo_roles_for_root_role): Setting 'snapshot' signature threshold to 1.
2026-06-08 18:16:30,220 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'targets' role with KeyID: c3771e5cbb6d2124c15344ff02916f46b34ea7926b96dae3e432eac7c49dd6f0
2026-06-08 18:16:30,221 DEBUG (repo._get_repo_roles_for_root_role): Setting 'targets' signature threshold to 1.
2026-06-08 18:16:30,221 DEBUG (repo.update_metadata_expiry): Setting 'root' metadata expiry to 31536000.
2026-06-08 18:16:30,222 DEBUG (repo._init_root_role): Initialized 'root' metadata.
2026-06-08 18:16:30,222 DEBUG (repo.__init__): Instantiated repository.
2026-06-08 18:16:30,223 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'root' role from '/var/rugged/tuf_repo/metadata/1.root.json'.
2026-06-08 18:16:30,224 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'targets' role from '/var/rugged/tuf_repo/metadata/targets.json'.
2026-06-08 18:16:30,225 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'snapshot' role from '/var/rugged/tuf_repo/metadata/snapshot.json'.
2026-06-08 18:16:30,226 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'timestamp' role from '/var/rugged/tuf_repo/metadata/timestamp.json'.
2026-06-08 18:16:30,226 DEBUG (repo.load): Loaded all metadata.
2026-06-08 18:16:30,227 DEBUG (target_files.get_inbound_targets): Scanning for inbound targets in '/var/rugged/incoming_targets'
2026-06-08 18:16:30,227 DEBUG (target_files.get_inbound_targets): Found target: test0.txt
2026-06-08 18:16:30,228 DEBUG (target_files.move_inbound_target_to_targets_dir): Moved '/var/rugged/incoming_targets/test0.txt' to '/var/rugged/tuf_repo/targets/test0.txt'
2026-06-08 18:16:30,229 INFO (target_files.move_inbound_target_to_targets_dir): Moved inbound target 'test0.txt' to targets directory.
2026-06-08 18:16:30,229 INFO (repo.add_target_to_metadata): Added target 'test0.txt' to 'targets' role.
2026-06-08 18:16:30,230 DEBUG (repo.update_metadata_expiry): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:16:30,231 DEBUG (repo.sign_metadata): Signed 'targets' metadata with 'targets' key.
2026-06-08 18:16:30,231 INFO (repo.update_targets): Updated targets metadata.
2026-06-08 18:16:30,234 DEBUG (metadata_files.write_metadata_to_file): Wrote 'targets' metadata to file '/var/rugged/tuf_repo/metadata/targets.json'.
2026-06-08 18:16:30,234 DEBUG (targets.delete_empty_inbound_target_dirs): Scanning for empty directories in inbound targets: '/var/rugged/incoming_targets'
2026-06-08 18:16:30,237 DEBUG (base_worker.print_memory_usage): == Memory allocation for: add_targets_task ==
2026-06-08 18:16:30,237 DEBUG (base_worker.print_memory_usage): Peak memory allocation: 111.09KiB
2026-06-08 18:16:30,237 DEBUG (base_worker.print_memory_usage): Final memory allocation: 15.07KiB
------
(Exception)
| test1.txt | test1 | bin_5 | 53387ed7b30d46708e40d0022cd0c0c0c8c812d77236c45e5c29a312e92ad848 |
Failed step: Then I should get:
'Hash of 'test1.txt': 53387ed7b30d46708e40d0022cd0c0c0c8c812d77236c45e5c29a312e92ad848' was not found in command output:
------
=== Log for targets-worker: /var/log/rugged/rugged.log ===
2026-06-08 18:16:34,722 DEBUG (base_worker.start_tracing_memory_usage): Starting trace of memory allocation.
2026-06-08 18:16:34,722 INFO (targets-worker.add_targets_task): Received add-targets task.
2026-06-08 18:16:34,722 DEBUG (target_files.get_inbound_targets): Scanning for inbound targets in '/var/rugged/incoming_targets'
2026-06-08 18:16:34,723 DEBUG (target_files.get_inbound_targets): Found target: test1.txt
2026-06-08 18:16:34,723 DEBUG (repo._add_key_to_keychain): Adding 'root' key to keychain.
2026-06-08 18:16:34,724 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root'.
2026-06-08 18:16:34,725 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root.pub'.
2026-06-08 18:16:34,725 DEBUG (key_manager.load_keys): Loaded 'root' verification key for 'root' role.
2026-06-08 18:16:34,726 DEBUG (repo._add_key_to_keychain): Adding 'root1' key to keychain.
2026-06-08 18:16:34,726 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root1'.
2026-06-08 18:16:34,726 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root1.pub'.
2026-06-08 18:16:34,727 DEBUG (key_manager.load_keys): Loaded 'root1' verification key for 'root' role.
2026-06-08 18:16:34,727 DEBUG (repo._add_key_to_keychain): Adding 'timestamp' key to keychain.
2026-06-08 18:16:34,727 DEBUG (key_manager.load_signing_key): Loading signing key for 'timestamp' role from '/var/rugged/signing_keys/timestamp/timestamp'.
2026-06-08 18:16:34,727 DEBUG (key_manager.load_verification_key): Loading verification key for 'timestamp' role from '/var/rugged/verification_keys/timestamp/timestamp.pub'.
2026-06-08 18:16:34,728 DEBUG (key_manager.load_keys): Loaded 'timestamp' verification key for 'timestamp' role.
2026-06-08 18:16:34,728 DEBUG (repo._add_key_to_keychain): Adding 'snapshot' key to keychain.
2026-06-08 18:16:34,728 DEBUG (key_manager.load_signing_key): Loading signing key for 'snapshot' role from '/var/rugged/signing_keys/snapshot/snapshot'.
2026-06-08 18:16:34,729 DEBUG (key_manager.load_verification_key): Loading verification key for 'snapshot' role from '/var/rugged/verification_keys/snapshot/snapshot.pub'.
2026-06-08 18:16:34,729 DEBUG (key_manager.load_keys): Loaded 'snapshot' verification key for 'snapshot' role.
2026-06-08 18:16:34,729 DEBUG (repo._add_key_to_keychain): Adding 'targets' key to keychain.
2026-06-08 18:16:34,730 DEBUG (key_manager.load_signing_key): Loading signing key for 'targets' role from '/var/rugged/signing_keys/targets/targets'.
2026-06-08 18:16:34,730 DEBUG (key_manager.load_keys): Loaded 'targets' signing key for 'targets' role.
2026-06-08 18:16:34,730 DEBUG (repo._init_targets_role): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:16:34,731 DEBUG (repo._init_targets_role): Initialized 'targets' metadata.
2026-06-08 18:16:34,731 DEBUG (repo._init_snapshot_role): Setting 'snapshot' metadata expiry to 604800.
2026-06-08 18:16:34,731 DEBUG (repo._init_snapshot_role): Initialized 'snapshot' metadata.
2026-06-08 18:16:34,732 DEBUG (repo._init_timestamp_role): Setting 'timestamp' metadata expiry to 86400.
2026-06-08 18:16:34,733 DEBUG (repo._init_timestamp_role): Initialized 'timestamp' metadata.
2026-06-08 18:16:34,733 DEBUG (repo._init_root_role): Collecting keys for 'root' metadata.
2026-06-08 18:16:34,733 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 71cec7570ce698320c891c1d0033a594c011adb5f38036b3a411bffaa7e7d832
2026-06-08 18:16:34,734 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 176ab7b28e27d8929b31b7d0cd85a598b5d4254c887123cfa8ee0624e1ba66d5
2026-06-08 18:16:34,734 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: f3934ea6aa9a2ec7031ab18e5f4eb43b4c94a25506b87f414b166e8073e9d964
2026-06-08 18:16:34,734 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 2f6f6a146b68769f3073b02488ebd0a5574333f279f63aa4674a077285ed3ef2
2026-06-08 18:16:34,734 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: ec98984534c564fe4f510f5ff5a6ea1c08dfae80c24e097f3f8807c1fdb53e8d
2026-06-08 18:16:34,735 DEBUG (repo._init_root_role): Collecting roles for 'root' metadata.
2026-06-08 18:16:34,735 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: 71cec7570ce698320c891c1d0033a594c011adb5f38036b3a411bffaa7e7d832
2026-06-08 18:16:34,735 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: 176ab7b28e27d8929b31b7d0cd85a598b5d4254c887123cfa8ee0624e1ba66d5
2026-06-08 18:16:34,735 DEBUG (repo._get_repo_roles_for_root_role): Setting 'root' signature threshold to 1.
2026-06-08 18:16:34,736 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'timestamp' role with KeyID: f3934ea6aa9a2ec7031ab18e5f4eb43b4c94a25506b87f414b166e8073e9d964
2026-06-08 18:16:34,736 DEBUG (repo._get_repo_roles_for_root_role): Setting 'timestamp' signature threshold to 1.
2026-06-08 18:16:34,736 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'snapshot' role with KeyID: 2f6f6a146b68769f3073b02488ebd0a5574333f279f63aa4674a077285ed3ef2
2026-06-08 18:16:34,736 DEBUG (repo._get_repo_roles_for_root_role): Setting 'snapshot' signature threshold to 1.
2026-06-08 18:16:34,737 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'targets' role with KeyID: ec98984534c564fe4f510f5ff5a6ea1c08dfae80c24e097f3f8807c1fdb53e8d
2026-06-08 18:16:34,737 DEBUG (repo._get_repo_roles_for_root_role): Setting 'targets' signature threshold to 1.
2026-06-08 18:16:34,737 DEBUG (repo.update_metadata_expiry): Setting 'root' metadata expiry to 31536000.
2026-06-08 18:16:34,737 DEBUG (repo._init_root_role): Initialized 'root' metadata.
2026-06-08 18:16:34,738 DEBUG (repo.__init__): Instantiated repository.
2026-06-08 18:16:34,739 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'root' role from '/var/rugged/tuf_repo/metadata/1.root.json'.
2026-06-08 18:16:34,740 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'targets' role from '/var/rugged/tuf_repo/metadata/targets.json'.
2026-06-08 18:16:34,741 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'snapshot' role from '/var/rugged/tuf_repo/metadata/snapshot.json'.
2026-06-08 18:16:34,741 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'timestamp' role from '/var/rugged/tuf_repo/metadata/timestamp.json'.
2026-06-08 18:16:34,742 DEBUG (repo.load): Loaded all metadata.
2026-06-08 18:16:34,742 DEBUG (target_files.get_inbound_targets): Scanning for inbound targets in '/var/rugged/incoming_targets'
2026-06-08 18:16:34,743 DEBUG (target_files.get_inbound_targets): Found target: test1.txt
2026-06-08 18:16:34,743 DEBUG (target_files.move_inbound_target_to_targets_dir): Moved '/var/rugged/incoming_targets/test1.txt' to '/var/rugged/tuf_repo/targets/test1.txt'
2026-06-08 18:16:34,744 INFO (target_files.move_inbound_target_to_targets_dir): Moved inbound target 'test1.txt' to targets directory.
2026-06-08 18:16:34,744 INFO (repo.add_target_to_metadata): Added target 'test1.txt' to 'targets' role.
2026-06-08 18:16:34,744 DEBUG (repo.update_metadata_expiry): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:16:34,745 DEBUG (repo.sign_metadata): Signed 'targets' metadata with 'targets' key.
2026-06-08 18:16:34,745 INFO (repo.update_targets): Updated targets metadata.
2026-06-08 18:16:34,748 DEBUG (metadata_files.write_metadata_to_file): Wrote 'targets' metadata to file '/var/rugged/tuf_repo/metadata/targets.json'.
2026-06-08 18:16:34,748 DEBUG (targets.delete_empty_inbound_target_dirs): Scanning for empty directories in inbound targets: '/var/rugged/incoming_targets'
2026-06-08 18:16:34,750 DEBUG (base_worker.print_memory_usage): == Memory allocation for: add_targets_task ==
2026-06-08 18:16:34,750 DEBUG (base_worker.print_memory_usage): Peak memory allocation: 111.09KiB
2026-06-08 18:16:34,750 DEBUG (base_worker.print_memory_usage): Final memory allocation: 15.07KiB
------
(Exception)
| test2.txt | test2 | bin_1 | 13e29841e34bc141f8f31eead2f50ce21fd3d09dcf406776d844f6e65b80527c |
Failed step: Then I should get:
'Hash of 'test2.txt': 13e29841e34bc141f8f31eead2f50ce21fd3d09dcf406776d844f6e65b80527c' was not found in command output:
------
=== Log for targets-worker: /var/log/rugged/rugged.log ===
2026-06-08 18:16:39,629 DEBUG (base_worker.start_tracing_memory_usage): Starting trace of memory allocation.
2026-06-08 18:16:39,629 INFO (targets-worker.add_targets_task): Received add-targets task.
2026-06-08 18:16:39,630 DEBUG (target_files.get_inbound_targets): Scanning for inbound targets in '/var/rugged/incoming_targets'
2026-06-08 18:16:39,631 DEBUG (target_files.get_inbound_targets): Found target: test2.txt
2026-06-08 18:16:39,631 DEBUG (repo._add_key_to_keychain): Adding 'root' key to keychain.
2026-06-08 18:16:39,632 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root'.
2026-06-08 18:16:39,632 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root.pub'.
2026-06-08 18:16:39,633 DEBUG (key_manager.load_keys): Loaded 'root' verification key for 'root' role.
2026-06-08 18:16:39,634 DEBUG (repo._add_key_to_keychain): Adding 'root1' key to keychain.
2026-06-08 18:16:39,634 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root1'.
2026-06-08 18:16:39,634 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root1.pub'.
2026-06-08 18:16:39,635 DEBUG (key_manager.load_keys): Loaded 'root1' verification key for 'root' role.
2026-06-08 18:16:39,636 DEBUG (repo._add_key_to_keychain): Adding 'timestamp' key to keychain.
2026-06-08 18:16:39,636 DEBUG (key_manager.load_signing_key): Loading signing key for 'timestamp' role from '/var/rugged/signing_keys/timestamp/timestamp'.
2026-06-08 18:16:39,636 DEBUG (key_manager.load_verification_key): Loading verification key for 'timestamp' role from '/var/rugged/verification_keys/timestamp/timestamp.pub'.
2026-06-08 18:16:39,637 DEBUG (key_manager.load_keys): Loaded 'timestamp' verification key for 'timestamp' role.
2026-06-08 18:16:39,637 DEBUG (repo._add_key_to_keychain): Adding 'snapshot' key to keychain.
2026-06-08 18:16:39,638 DEBUG (key_manager.load_signing_key): Loading signing key for 'snapshot' role from '/var/rugged/signing_keys/snapshot/snapshot'.
2026-06-08 18:16:39,638 DEBUG (key_manager.load_verification_key): Loading verification key for 'snapshot' role from '/var/rugged/verification_keys/snapshot/snapshot.pub'.
2026-06-08 18:16:39,639 DEBUG (key_manager.load_keys): Loaded 'snapshot' verification key for 'snapshot' role.
2026-06-08 18:16:39,639 DEBUG (repo._add_key_to_keychain): Adding 'targets' key to keychain.
2026-06-08 18:16:39,640 DEBUG (key_manager.load_signing_key): Loading signing key for 'targets' role from '/var/rugged/signing_keys/targets/targets'.
2026-06-08 18:16:39,640 DEBUG (key_manager.load_keys): Loaded 'targets' signing key for 'targets' role.
2026-06-08 18:16:39,640 DEBUG (repo._init_targets_role): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:16:39,641 DEBUG (repo._init_targets_role): Initialized 'targets' metadata.
2026-06-08 18:16:39,641 DEBUG (repo._init_snapshot_role): Setting 'snapshot' metadata expiry to 604800.
2026-06-08 18:16:39,642 DEBUG (repo._init_snapshot_role): Initialized 'snapshot' metadata.
2026-06-08 18:16:39,642 DEBUG (repo._init_timestamp_role): Setting 'timestamp' metadata expiry to 86400.
2026-06-08 18:16:39,643 DEBUG (repo._init_timestamp_role): Initialized 'timestamp' metadata.
2026-06-08 18:16:39,644 DEBUG (repo._init_root_role): Collecting keys for 'root' metadata.
2026-06-08 18:16:39,644 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 22d514ed7239c154d331ba4ba3d7c1061f85dfe5469639126e3fe842ab262584
2026-06-08 18:16:39,644 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 1349a7f4e85ddffbcc7b544279a375c49c7195c74a8823f708177363ffcc3713
2026-06-08 18:16:39,645 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 9cdb0841aad678678beeab5e6ca382f8e77bfb469ead760dce622bc61f0cd330
2026-06-08 18:16:39,645 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: b0da0dd5c799583eaf503124287f1d57733409d010a06260b9218150a6b76c5a
2026-06-08 18:16:39,645 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: eb4f9efc85b32b2f87f81a6f826f040dd1ed1b739f85c0d644bf46754c8d72f5
2026-06-08 18:16:39,646 DEBUG (repo._init_root_role): Collecting roles for 'root' metadata.
2026-06-08 18:16:39,646 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: 22d514ed7239c154d331ba4ba3d7c1061f85dfe5469639126e3fe842ab262584
2026-06-08 18:16:39,646 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: 1349a7f4e85ddffbcc7b544279a375c49c7195c74a8823f708177363ffcc3713
2026-06-08 18:16:39,647 DEBUG (repo._get_repo_roles_for_root_role): Setting 'root' signature threshold to 1.
2026-06-08 18:16:39,647 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'timestamp' role with KeyID: 9cdb0841aad678678beeab5e6ca382f8e77bfb469ead760dce622bc61f0cd330
2026-06-08 18:16:39,648 DEBUG (repo._get_repo_roles_for_root_role): Setting 'timestamp' signature threshold to 1.
2026-06-08 18:16:39,648 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'snapshot' role with KeyID: b0da0dd5c799583eaf503124287f1d57733409d010a06260b9218150a6b76c5a
2026-06-08 18:16:39,649 DEBUG (repo._get_repo_roles_for_root_role): Setting 'snapshot' signature threshold to 1.
2026-06-08 18:16:39,649 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'targets' role with KeyID: eb4f9efc85b32b2f87f81a6f826f040dd1ed1b739f85c0d644bf46754c8d72f5
2026-06-08 18:16:39,650 DEBUG (repo._get_repo_roles_for_root_role): Setting 'targets' signature threshold to 1.
2026-06-08 18:16:39,650 DEBUG (repo.update_metadata_expiry): Setting 'root' metadata expiry to 31536000.
2026-06-08 18:16:39,651 DEBUG (repo._init_root_role): Initialized 'root' metadata.
2026-06-08 18:16:39,652 DEBUG (repo.__init__): Instantiated repository.
2026-06-08 18:16:39,653 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'root' role from '/var/rugged/tuf_repo/metadata/1.root.json'.
2026-06-08 18:16:39,654 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'targets' role from '/var/rugged/tuf_repo/metadata/targets.json'.
2026-06-08 18:16:39,656 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'snapshot' role from '/var/rugged/tuf_repo/metadata/snapshot.json'.
2026-06-08 18:16:39,656 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'timestamp' role from '/var/rugged/tuf_repo/metadata/timestamp.json'.
2026-06-08 18:16:39,657 DEBUG (repo.load): Loaded all metadata.
2026-06-08 18:16:39,657 DEBUG (target_files.get_inbound_targets): Scanning for inbound targets in '/var/rugged/incoming_targets'
2026-06-08 18:16:39,658 DEBUG (target_files.get_inbound_targets): Found target: test2.txt
2026-06-08 18:16:39,659 DEBUG (target_files.move_inbound_target_to_targets_dir): Moved '/var/rugged/incoming_targets/test2.txt' to '/var/rugged/tuf_repo/targets/test2.txt'
2026-06-08 18:16:39,659 INFO (target_files.move_inbound_target_to_targets_dir): Moved inbound target 'test2.txt' to targets directory.
2026-06-08 18:16:39,660 INFO (repo.add_target_to_metadata): Added target 'test2.txt' to 'targets' role.
2026-06-08 18:16:39,661 DEBUG (repo.update_metadata_expiry): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:16:39,662 DEBUG (repo.sign_metadata): Signed 'targets' metadata with 'targets' key.
2026-06-08 18:16:39,662 INFO (repo.update_targets): Updated targets metadata.
2026-06-08 18:16:39,666 DEBUG (metadata_files.write_metadata_to_file): Wrote 'targets' metadata to file '/var/rugged/tuf_repo/metadata/targets.json'.
2026-06-08 18:16:39,666 DEBUG (targets.delete_empty_inbound_target_dirs): Scanning for empty directories in inbound targets: '/var/rugged/incoming_targets'
2026-06-08 18:16:39,669 DEBUG (base_worker.print_memory_usage): == Memory allocation for: add_targets_task ==
2026-06-08 18:16:39,669 DEBUG (base_worker.print_memory_usage): Peak memory allocation: 109.34KiB
2026-06-08 18:16:39,669 DEBUG (base_worker.print_memory_usage): Final memory allocation: 12.38KiB
------
(Exception)
| test3.txt | test3 | bin_3 | 36e6fe047847ce478368a46cc151c5762ff461fddd68e2c2bb0250c499be3e97 |
Failed step: Then I should get:
'Hash of 'test3.txt': 36e6fe047847ce478368a46cc151c5762ff461fddd68e2c2bb0250c499be3e97' was not found in command output:
------
=== Log for targets-worker: /var/log/rugged/rugged.log ===
2026-06-08 18:16:44,424 DEBUG (base_worker.start_tracing_memory_usage): Starting trace of memory allocation.
2026-06-08 18:16:44,424 INFO (targets-worker.add_targets_task): Received add-targets task.
2026-06-08 18:16:44,424 DEBUG (target_files.get_inbound_targets): Scanning for inbound targets in '/var/rugged/incoming_targets'
2026-06-08 18:16:44,425 DEBUG (target_files.get_inbound_targets): Found target: test3.txt
2026-06-08 18:16:44,426 DEBUG (repo._add_key_to_keychain): Adding 'root' key to keychain.
2026-06-08 18:16:44,426 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root'.
2026-06-08 18:16:44,426 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root.pub'.
2026-06-08 18:16:44,427 DEBUG (key_manager.load_keys): Loaded 'root' verification key for 'root' role.
2026-06-08 18:16:44,428 DEBUG (repo._add_key_to_keychain): Adding 'root1' key to keychain.
2026-06-08 18:16:44,428 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root1'.
2026-06-08 18:16:44,429 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root1.pub'.
2026-06-08 18:16:44,430 DEBUG (key_manager.load_keys): Loaded 'root1' verification key for 'root' role.
2026-06-08 18:16:44,430 DEBUG (repo._add_key_to_keychain): Adding 'timestamp' key to keychain.
2026-06-08 18:16:44,431 DEBUG (key_manager.load_signing_key): Loading signing key for 'timestamp' role from '/var/rugged/signing_keys/timestamp/timestamp'.
2026-06-08 18:16:44,431 DEBUG (key_manager.load_verification_key): Loading verification key for 'timestamp' role from '/var/rugged/verification_keys/timestamp/timestamp.pub'.
2026-06-08 18:16:44,432 DEBUG (key_manager.load_keys): Loaded 'timestamp' verification key for 'timestamp' role.
2026-06-08 18:16:44,432 DEBUG (repo._add_key_to_keychain): Adding 'snapshot' key to keychain.
2026-06-08 18:16:44,433 DEBUG (key_manager.load_signing_key): Loading signing key for 'snapshot' role from '/var/rugged/signing_keys/snapshot/snapshot'.
2026-06-08 18:16:44,433 DEBUG (key_manager.load_verification_key): Loading verification key for 'snapshot' role from '/var/rugged/verification_keys/snapshot/snapshot.pub'.
2026-06-08 18:16:44,433 DEBUG (key_manager.load_keys): Loaded 'snapshot' verification key for 'snapshot' role.
2026-06-08 18:16:44,433 DEBUG (repo._add_key_to_keychain): Adding 'targets' key to keychain.
2026-06-08 18:16:44,434 DEBUG (key_manager.load_signing_key): Loading signing key for 'targets' role from '/var/rugged/signing_keys/targets/targets'.
2026-06-08 18:16:44,434 DEBUG (key_manager.load_keys): Loaded 'targets' signing key for 'targets' role.
2026-06-08 18:16:44,434 DEBUG (repo._init_targets_role): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:16:44,434 DEBUG (repo._init_targets_role): Initialized 'targets' metadata.
2026-06-08 18:16:44,435 DEBUG (repo._init_snapshot_role): Setting 'snapshot' metadata expiry to 604800.
2026-06-08 18:16:44,435 DEBUG (repo._init_snapshot_role): Initialized 'snapshot' metadata.
2026-06-08 18:16:44,435 DEBUG (repo._init_timestamp_role): Setting 'timestamp' metadata expiry to 86400.
2026-06-08 18:16:44,436 DEBUG (repo._init_timestamp_role): Initialized 'timestamp' metadata.
2026-06-08 18:16:44,436 DEBUG (repo._init_root_role): Collecting keys for 'root' metadata.
2026-06-08 18:16:44,436 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 242b338df5b35e92b94c44d6caf379f0917fd8d1e05fffc5091fa570b520fad0
2026-06-08 18:16:44,436 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 98b7d9bce205e28f9be866f5059e7d6e3d8e2cc4273f6c49c597e6f24f2ab9a3
2026-06-08 18:16:44,437 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 441e60c3e01fc9fab6f6e164e2321942fd792b00324f79630b53419c86796ec8
2026-06-08 18:16:44,437 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 9224c4e2adc062f5b74badedea349c4a67a471e7e3e168dca7bd4c7184c564ec
2026-06-08 18:16:44,437 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: d8980e92192fb2d0c201eca488ace31a85738b0c9dcfb0bac2468b9a21b55e5b
2026-06-08 18:16:44,437 DEBUG (repo._init_root_role): Collecting roles for 'root' metadata.
2026-06-08 18:16:44,438 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: 242b338df5b35e92b94c44d6caf379f0917fd8d1e05fffc5091fa570b520fad0
2026-06-08 18:16:44,438 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: 98b7d9bce205e28f9be866f5059e7d6e3d8e2cc4273f6c49c597e6f24f2ab9a3
2026-06-08 18:16:44,438 DEBUG (repo._get_repo_roles_for_root_role): Setting 'root' signature threshold to 1.
2026-06-08 18:16:44,438 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'timestamp' role with KeyID: 441e60c3e01fc9fab6f6e164e2321942fd792b00324f79630b53419c86796ec8
2026-06-08 18:16:44,439 DEBUG (repo._get_repo_roles_for_root_role): Setting 'timestamp' signature threshold to 1.
2026-06-08 18:16:44,439 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'snapshot' role with KeyID: 9224c4e2adc062f5b74badedea349c4a67a471e7e3e168dca7bd4c7184c564ec
2026-06-08 18:16:44,439 DEBUG (repo._get_repo_roles_for_root_role): Setting 'snapshot' signature threshold to 1.
2026-06-08 18:16:44,440 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'targets' role with KeyID: d8980e92192fb2d0c201eca488ace31a85738b0c9dcfb0bac2468b9a21b55e5b
2026-06-08 18:16:44,440 DEBUG (repo._get_repo_roles_for_root_role): Setting 'targets' signature threshold to 1.
2026-06-08 18:16:44,440 DEBUG (repo.update_metadata_expiry): Setting 'root' metadata expiry to 31536000.
2026-06-08 18:16:44,441 DEBUG (repo._init_root_role): Initialized 'root' metadata.
2026-06-08 18:16:44,441 DEBUG (repo.__init__): Instantiated repository.
2026-06-08 18:16:44,443 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'root' role from '/var/rugged/tuf_repo/metadata/1.root.json'.
2026-06-08 18:16:44,443 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'targets' role from '/var/rugged/tuf_repo/metadata/targets.json'.
2026-06-08 18:16:44,445 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'snapshot' role from '/var/rugged/tuf_repo/metadata/snapshot.json'.
2026-06-08 18:16:44,445 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'timestamp' role from '/var/rugged/tuf_repo/metadata/timestamp.json'.
2026-06-08 18:16:44,446 DEBUG (repo.load): Loaded all metadata.
2026-06-08 18:16:44,446 DEBUG (target_files.get_inbound_targets): Scanning for inbound targets in '/var/rugged/incoming_targets'
2026-06-08 18:16:44,447 DEBUG (target_files.get_inbound_targets): Found target: test3.txt
2026-06-08 18:16:44,448 DEBUG (target_files.move_inbound_target_to_targets_dir): Moved '/var/rugged/incoming_targets/test3.txt' to '/var/rugged/tuf_repo/targets/test3.txt'
2026-06-08 18:16:44,449 INFO (target_files.move_inbound_target_to_targets_dir): Moved inbound target 'test3.txt' to targets directory.
2026-06-08 18:16:44,449 INFO (repo.add_target_to_metadata): Added target 'test3.txt' to 'targets' role.
2026-06-08 18:16:44,450 DEBUG (repo.update_metadata_expiry): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:16:44,451 DEBUG (repo.sign_metadata): Signed 'targets' metadata with 'targets' key.
2026-06-08 18:16:44,451 INFO (repo.update_targets): Updated targets metadata.
2026-06-08 18:16:44,454 DEBUG (metadata_files.write_metadata_to_file): Wrote 'targets' metadata to file '/var/rugged/tuf_repo/metadata/targets.json'.
2026-06-08 18:16:44,454 DEBUG (targets.delete_empty_inbound_target_dirs): Scanning for empty directories in inbound targets: '/var/rugged/incoming_targets'
2026-06-08 18:16:44,455 DEBUG (base_worker.print_memory_usage): == Memory allocation for: add_targets_task ==
2026-06-08 18:16:44,456 DEBUG (base_worker.print_memory_usage): Peak memory allocation: 111.09KiB
2026-06-08 18:16:44,456 DEBUG (base_worker.print_memory_usage): Final memory allocation: 15.01KiB
------
(Exception)
| test4.txt | test4 | bin_2 | 28abdea4bd1be487ef90bc9fba5667abea260d2009ca8ae5fd788757ded9ce39 |
Failed step: Then I should get:
'Hash of 'test4.txt': 28abdea4bd1be487ef90bc9fba5667abea260d2009ca8ae5fd788757ded9ce39' was not found in command output:
------
=== Log for targets-worker: /var/log/rugged/rugged.log ===
2026-06-08 18:16:49,036 DEBUG (base_worker.start_tracing_memory_usage): Starting trace of memory allocation.
2026-06-08 18:16:49,036 INFO (targets-worker.add_targets_task): Received add-targets task.
2026-06-08 18:16:49,036 DEBUG (target_files.get_inbound_targets): Scanning for inbound targets in '/var/rugged/incoming_targets'
2026-06-08 18:16:49,037 DEBUG (target_files.get_inbound_targets): Found target: test4.txt
2026-06-08 18:16:49,037 DEBUG (repo._add_key_to_keychain): Adding 'root' key to keychain.
2026-06-08 18:16:49,038 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root'.
2026-06-08 18:16:49,038 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root.pub'.
2026-06-08 18:16:49,039 DEBUG (key_manager.load_keys): Loaded 'root' verification key for 'root' role.
2026-06-08 18:16:49,039 DEBUG (repo._add_key_to_keychain): Adding 'root1' key to keychain.
2026-06-08 18:16:49,039 DEBUG (key_manager.load_signing_key): Loading signing key for 'root' role from '/var/rugged/signing_keys/root/root1'.
2026-06-08 18:16:49,039 DEBUG (key_manager.load_verification_key): Loading verification key for 'root' role from '/var/rugged/verification_keys/root/root1.pub'.
2026-06-08 18:16:49,040 DEBUG (key_manager.load_keys): Loaded 'root1' verification key for 'root' role.
2026-06-08 18:16:49,040 DEBUG (repo._add_key_to_keychain): Adding 'timestamp' key to keychain.
2026-06-08 18:16:49,040 DEBUG (key_manager.load_signing_key): Loading signing key for 'timestamp' role from '/var/rugged/signing_keys/timestamp/timestamp'.
2026-06-08 18:16:49,040 DEBUG (key_manager.load_verification_key): Loading verification key for 'timestamp' role from '/var/rugged/verification_keys/timestamp/timestamp.pub'.
2026-06-08 18:16:49,041 DEBUG (key_manager.load_keys): Loaded 'timestamp' verification key for 'timestamp' role.
2026-06-08 18:16:49,041 DEBUG (repo._add_key_to_keychain): Adding 'snapshot' key to keychain.
2026-06-08 18:16:49,041 DEBUG (key_manager.load_signing_key): Loading signing key for 'snapshot' role from '/var/rugged/signing_keys/snapshot/snapshot'.
2026-06-08 18:16:49,041 DEBUG (key_manager.load_verification_key): Loading verification key for 'snapshot' role from '/var/rugged/verification_keys/snapshot/snapshot.pub'.
2026-06-08 18:16:49,042 DEBUG (key_manager.load_keys): Loaded 'snapshot' verification key for 'snapshot' role.
2026-06-08 18:16:49,042 DEBUG (repo._add_key_to_keychain): Adding 'targets' key to keychain.
2026-06-08 18:16:49,042 DEBUG (key_manager.load_signing_key): Loading signing key for 'targets' role from '/var/rugged/signing_keys/targets/targets'.
2026-06-08 18:16:49,042 DEBUG (key_manager.load_keys): Loaded 'targets' signing key for 'targets' role.
2026-06-08 18:16:49,042 DEBUG (repo._init_targets_role): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:16:49,043 DEBUG (repo._init_targets_role): Initialized 'targets' metadata.
2026-06-08 18:16:49,043 DEBUG (repo._init_snapshot_role): Setting 'snapshot' metadata expiry to 604800.
2026-06-08 18:16:49,043 DEBUG (repo._init_snapshot_role): Initialized 'snapshot' metadata.
2026-06-08 18:16:49,043 DEBUG (repo._init_timestamp_role): Setting 'timestamp' metadata expiry to 86400.
2026-06-08 18:16:49,044 DEBUG (repo._init_timestamp_role): Initialized 'timestamp' metadata.
2026-06-08 18:16:49,044 DEBUG (repo._init_root_role): Collecting keys for 'root' metadata.
2026-06-08 18:16:49,044 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 94aa51aa10728d221a1b45da784bed5bd71bacf4334d857fcfd0a5d4b372fa0c
2026-06-08 18:16:49,044 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: bf356c76064f66b88adc590f3f049198aca93c00a3c64f80c2af219479ce43b6
2026-06-08 18:16:49,045 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: b9a040122e19fb286480f9b57a03833bf94bb2dc129b30bf4d6abab70908046d
2026-06-08 18:16:49,045 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 7c455e18da0a17f028dd9c5c25b5088a8359d41da9a4c634839d3605763f06bf
2026-06-08 18:16:49,045 DEBUG (repo._get_repo_keys_for_root_role): Loading key with ID: 40380a1983844738c904e2141d9d62e4d49395d24c5cbf2a335579e5647d7084
2026-06-08 18:16:49,045 DEBUG (repo._init_root_role): Collecting roles for 'root' metadata.
2026-06-08 18:16:49,045 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: 94aa51aa10728d221a1b45da784bed5bd71bacf4334d857fcfd0a5d4b372fa0c
2026-06-08 18:16:49,045 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'root' role with KeyID: bf356c76064f66b88adc590f3f049198aca93c00a3c64f80c2af219479ce43b6
2026-06-08 18:16:49,046 DEBUG (repo._get_repo_roles_for_root_role): Setting 'root' signature threshold to 1.
2026-06-08 18:16:49,046 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'timestamp' role with KeyID: b9a040122e19fb286480f9b57a03833bf94bb2dc129b30bf4d6abab70908046d
2026-06-08 18:16:49,046 DEBUG (repo._get_repo_roles_for_root_role): Setting 'timestamp' signature threshold to 1.
2026-06-08 18:16:49,046 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'snapshot' role with KeyID: 7c455e18da0a17f028dd9c5c25b5088a8359d41da9a4c634839d3605763f06bf
2026-06-08 18:16:49,046 DEBUG (repo._get_repo_roles_for_root_role): Setting 'snapshot' signature threshold to 1.
2026-06-08 18:16:49,046 DEBUG (repo._get_repo_roles_for_root_role): Adding 'key_name' key to 'targets' role with KeyID: 40380a1983844738c904e2141d9d62e4d49395d24c5cbf2a335579e5647d7084
2026-06-08 18:16:49,047 DEBUG (repo._get_repo_roles_for_root_role): Setting 'targets' signature threshold to 1.
2026-06-08 18:16:49,047 DEBUG (repo.update_metadata_expiry): Setting 'root' metadata expiry to 31536000.
2026-06-08 18:16:49,047 DEBUG (repo._init_root_role): Initialized 'root' metadata.
2026-06-08 18:16:49,047 DEBUG (repo.__init__): Instantiated repository.
2026-06-08 18:16:49,048 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'root' role from '/var/rugged/tuf_repo/metadata/1.root.json'.
2026-06-08 18:16:49,049 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'targets' role from '/var/rugged/tuf_repo/metadata/targets.json'.
2026-06-08 18:16:49,050 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'snapshot' role from '/var/rugged/tuf_repo/metadata/snapshot.json'.
2026-06-08 18:16:49,051 DEBUG (metadata_files.load_metadata_from_file): Loaded metadata for 'timestamp' role from '/var/rugged/tuf_repo/metadata/timestamp.json'.
2026-06-08 18:16:49,051 DEBUG (repo.load): Loaded all metadata.
2026-06-08 18:16:49,052 DEBUG (target_files.get_inbound_targets): Scanning for inbound targets in '/var/rugged/incoming_targets'
2026-06-08 18:16:49,052 DEBUG (target_files.get_inbound_targets): Found target: test4.txt
2026-06-08 18:16:49,053 DEBUG (target_files.move_inbound_target_to_targets_dir): Moved '/var/rugged/incoming_targets/test4.txt' to '/var/rugged/tuf_repo/targets/test4.txt'
2026-06-08 18:16:49,053 INFO (target_files.move_inbound_target_to_targets_dir): Moved inbound target 'test4.txt' to targets directory.
2026-06-08 18:16:49,054 INFO (repo.add_target_to_metadata): Added target 'test4.txt' to 'targets' role.
2026-06-08 18:16:49,054 DEBUG (repo.update_metadata_expiry): Setting 'targets' metadata expiry to 604800.
2026-06-08 18:16:49,055 DEBUG (repo.sign_metadata): Signed 'targets' metadata with 'targets' key.
2026-06-08 18:16:49,055 INFO (repo.update_targets): Updated targets metadata.
2026-06-08 18:16:49,057 DEBUG (metadata_files.write_metadata_to_file): Wrote 'targets' metadata to file '/var/rugged/tuf_repo/metadata/targets.json'.
2026-06-08 18:16:49,058 DEBUG (targets.delete_empty_inbound_target_dirs): Scanning for empty directories in inbound targets: '/var/rugged/incoming_targets'
2026-06-08 18:16:49,059 DEBUG (base_worker.print_memory_usage): == Memory allocation for: add_targets_task ==
2026-06-08 18:16:49,059 DEBUG (base_worker.print_memory_usage): Peak memory allocation: 111.03KiB
2026-06-08 18:16:49,059 DEBUG (base_worker.print_memory_usage): Final memory allocation: 15.01KiB
------
(Exception)
Scenario Outline: Target files are removed from the proper hashed bin metadata.
Given I run "sudo cp features/fixtures/config/enable_hashed_bins.yaml /var/rugged/.config/rugged/config.yaml"
And I run the Rugged command "rugged generate-keys --local"
And I run the Rugged command "rugged initialize --local"
And I am in the "/var/rugged/incoming_targets" directory
And file "<filename>" contains "<contents>"
And I run the Rugged command "rugged add-targets"
And I run the Rugged command "rugged logs --worker=targets-worker --limit=0"
And the file "/var/rugged/tuf_repo/metadata/<bin_name>.json" contains:
"""
"targets": {
"<filename>"
"""
When I run the Rugged command "rugged --debug remove-targets <filename>"
And I run the Rugged command "rugged logs --worker=targets-worker --limit=0"
Then I should get:
"""
Hash of '<filename>': <hash>
Removed target '<filename>' from the '<bin_name>' role.
Updating hashed bin '<bin_name>' metadata to version '3'.
Signed '<bin_name>' metadata with 'targets' key.
Updated hashed bins '<bin_name>' metadata.
"""
And the file "/var/rugged/tuf_repo/metadata/<bin_name>.json" should contain:
"""
"targets": {},
"""
And the file "/var/rugged/tuf_repo/metadata/<bin_name>.json" does not contain:
"""
"<filename>"
"""
Examples:
| filename | contents | bin_name | hash |
| test0.txt | test0 | bin_2 | 23d5e8cadf33c45706d0572fd8b966388e18f5218848ba15cc4c7891c40e26c3 |
Failed step: And the file "/var/rugged/tuf_repo/metadata/bin_2.json" contains:
'"test0.txt"' was not found in '/var/rugged/tuf_repo/metadata/bin_2.json'. (RuntimeException)
| test1.txt | test1 | bin_5 | 53387ed7b30d46708e40d0022cd0c0c0c8c812d77236c45e5c29a312e92ad848 |
Failed step: And the file "/var/rugged/tuf_repo/metadata/bin_5.json" contains:
'"test1.txt"' was not found in '/var/rugged/tuf_repo/metadata/bin_5.json'. (RuntimeException)
| test2.txt | test2 | bin_1 | 13e29841e34bc141f8f31eead2f50ce21fd3d09dcf406776d844f6e65b80527c |
Failed step: And the file "/var/rugged/tuf_repo/metadata/bin_1.json" contains:
'"test2.txt"' was not found in '/var/rugged/tuf_repo/metadata/bin_1.json'. (RuntimeException)
| test3.txt | test3 | bin_3 | 36e6fe047847ce478368a46cc151c5762ff461fddd68e2c2bb0250c499be3e97 |
Failed step: And the file "/var/rugged/tuf_repo/metadata/bin_3.json" contains:
'"test3.txt"' was not found in '/var/rugged/tuf_repo/metadata/bin_3.json'. (RuntimeException)
| test4.txt | test4 | bin_2 | 28abdea4bd1be487ef90bc9fba5667abea260d2009ca8ae5fd788757ded9ce39 |
Failed step: And the file "/var/rugged/tuf_repo/metadata/bin_2.json" contains:
'"test4.txt"' was not found in '/var/rugged/tuf_repo/metadata/bin_2.json'. (RuntimeException)
Scenario: Status command works with hashed bins enabled.
Given I run "sudo cp features/fixtures/config/enable_hashed_bins.yaml /var/rugged/.config/rugged/config.yaml"
And I run the Rugged command "rugged generate-keys"
When I run the Rugged command "rugged initialize"
And I run the Rugged command "rugged status"
The command "'bash' '-c' 'sudo sudo -u rugged rugged status'" failed.
Exit Code: 1(General error)
Working directory: /var/www/html
Output:
================
Error Output:
================
error: StorageError thrown in load_metadata: Can't open /var/rugged/tuf_repo/metadata/bins.json
error: Error loading 'bins' metadata from storage.
error: RuggedStorageError thrown in load: Error loading 'bins' metadata from storage.
error: Failed to load 'root' metadata.
error: RuggedMetadataError thrown in status_cmd: Failed to load 'root' metadata.
error: Failed to instantiate repository.
Check the logs for more detailed error reporting.
(Symfony\Component\Process\Exception\ProcessFailedException)
--- Failed scenarios:
features/tuf/hashed_bins_root.feature:17
features/tuf/hashed_bins_root.feature:124
features/tuf/hashed_bins_root.feature:144
features/tuf/hashed_bins_root.feature:199
features/tuf/hashed_bins_root.feature:200
features/tuf/hashed_bins_root.feature:201
features/tuf/hashed_bins_root.feature:202
features/tuf/hashed_bins_root.feature:203
features/tuf/hashed_bins_root.feature:238
features/tuf/hashed_bins_root.feature:239
features/tuf/hashed_bins_root.feature:240
features/tuf/hashed_bins_root.feature:241
features/tuf/hashed_bins_root.feature:242
features/tuf/hashed_bins_root.feature:244
14 scenarios (14 failed)
168 steps (108 passed, 14 failed, 46 skipped)