@@ -141,7 +141,7 @@ def targets(self) -> Optional[Metadata[Targets]]:
141
141
return self ._trusted_set .get ("targets" )
142
142
143
143
# Methods for updating metadata
144
- def update_root (self , data : bytes ) -> None :
144
+ def update_root (self , data : bytes ) -> Metadata [ Root ] :
145
145
"""Verifies and loads 'data' as new root metadata.
146
146
147
147
Note that an expired intermediate root is considered valid: expiry is
@@ -153,6 +153,9 @@ def update_root(self, data: bytes) -> None:
153
153
Raises:
154
154
RepositoryError: Metadata failed to load or verify. The actual
155
155
error type and content will contain more details.
156
+
157
+ Returns:
158
+ Deserialized and verified root Metadata object
156
159
"""
157
160
if self .timestamp is not None :
158
161
raise RuntimeError ("Cannot update root after timestamp" )
@@ -182,7 +185,9 @@ def update_root(self, data: bytes) -> None:
182
185
self ._trusted_set ["root" ] = new_root
183
186
logger .info ("Updated root v%d" , new_root .signed .version )
184
187
185
- def update_timestamp (self , data : bytes ) -> None :
188
+ return new_root
189
+
190
+ def update_timestamp (self , data : bytes ) -> Metadata [Timestamp ]:
186
191
"""Verifies and loads 'data' as new timestamp metadata.
187
192
188
193
Note that an intermediate timestamp is allowed to be expired:
@@ -199,6 +204,9 @@ def update_timestamp(self, data: bytes) -> None:
199
204
RepositoryError: Metadata failed to load or verify as final
200
205
timestamp. The actual error type and content will contain
201
206
more details.
207
+
208
+ Returns:
209
+ Deserialized and verified timestamp Metadata object
202
210
"""
203
211
if self .snapshot is not None :
204
212
raise RuntimeError ("Cannot update timestamp after snapshot" )
@@ -251,6 +259,8 @@ def update_timestamp(self, data: bytes) -> None:
251
259
# timestamp is loaded: raise if it is not valid _final_ timestamp
252
260
self ._check_final_timestamp ()
253
261
262
+ return new_timestamp
263
+
254
264
def _check_final_timestamp (self ) -> None :
255
265
"""Raise if timestamp is expired"""
256
266
@@ -260,7 +270,7 @@ def _check_final_timestamp(self) -> None:
260
270
261
271
def update_snapshot (
262
272
self , data : bytes , trusted : Optional [bool ] = False
263
- ) -> None :
273
+ ) -> Metadata [ Snapshot ] :
264
274
"""Verifies and loads 'data' as new snapshot metadata.
265
275
266
276
Note that an intermediate snapshot is allowed to be expired and version
@@ -282,6 +292,9 @@ def update_snapshot(
282
292
Raises:
283
293
RepositoryError: data failed to load or verify as final snapshot.
284
294
The actual error type and content will contain more details.
295
+
296
+ Returns:
297
+ Deserialized and verified snapshot Metadata object
285
298
"""
286
299
287
300
if self .timestamp is None :
@@ -347,6 +360,8 @@ def update_snapshot(
347
360
# snapshot is loaded, but we raise if it's not valid _final_ snapshot
348
361
self ._check_final_snapshot ()
349
362
363
+ return new_snapshot
364
+
350
365
def _check_final_snapshot (self ) -> None :
351
366
"""Raise if snapshot is expired or meta version does not match"""
352
367
@@ -361,7 +376,7 @@ def _check_final_snapshot(self) -> None:
361
376
f"got { self .snapshot .signed .version } "
362
377
)
363
378
364
- def update_targets (self , data : bytes ) -> None :
379
+ def update_targets (self , data : bytes ) -> Metadata [ Targets ] :
365
380
"""Verifies and loads 'data' as new top-level targets metadata.
366
381
367
382
Args:
@@ -370,12 +385,16 @@ def update_targets(self, data: bytes) -> None:
370
385
Raises:
371
386
RepositoryError: Metadata failed to load or verify. The actual
372
387
error type and content will contain more details.
388
+
389
+ Returns:
390
+ Deserialized and verified targets Metadata object
373
391
"""
374
- self .update_delegated_targets (data , "targets" , "root" )
392
+ targets = self .update_delegated_targets (data , "targets" , "root" )
393
+ return targets
375
394
376
395
def update_delegated_targets (
377
396
self , data : bytes , role_name : str , delegator_name : str
378
- ) -> None :
397
+ ) -> Metadata [ Targets ] :
379
398
"""Verifies and loads 'data' as new metadata for target 'role_name'.
380
399
381
400
Args:
@@ -386,6 +405,9 @@ def update_delegated_targets(
386
405
Raises:
387
406
RepositoryError: Metadata failed to load or verify. The actual
388
407
error type and content will contain more details.
408
+
409
+ Returns:
410
+ Deserialized and verified targets Metadata object
389
411
"""
390
412
if self .snapshot is None :
391
413
raise RuntimeError ("Cannot load targets before snapshot" )
@@ -438,6 +460,8 @@ def update_delegated_targets(
438
460
self ._trusted_set [role_name ] = new_delegate
439
461
logger .info ("Updated %s v%d" , role_name , version )
440
462
463
+ return new_delegate
464
+
441
465
def _load_trusted_root (self , data : bytes ) -> None :
442
466
"""Verifies and loads 'data' as trusted root metadata.
443
467
0 commit comments