Module rugged.lib.expiry
Functions
def expiry_is_imminent(current_expiry_timestamp: datetime.datetime)
-
Expand source code
def expiry_is_imminent(current_expiry_timestamp: datetime): """ Determine whether a given expiry datetime will expire imminently. """ log.debug(f"Time when metadata expires: {current_expiry_timestamp}") expiry_refresh_threshold = config['expiry_refresh_threshold'].get() log.debug(f"Expiry refresh threshold is {expiry_refresh_threshold} seconds.") expiry_imminent_timestamp = datetime.utcnow().replace(microsecond=0) + timedelta(seconds=expiry_refresh_threshold) log.debug(f"Time when refresh threshold is reached: {expiry_imminent_timestamp}") return current_expiry_timestamp < expiry_imminent_timestamp
Determine whether a given expiry datetime will expire imminently.
def get_expiring_metadata(role: str) ‑> tuple[bool, list]
-
Expand source code
def get_expiring_metadata(role: str) -> tuple[bool, list]: """ Return a list of metadata that will expire imminently. """ expiring_metadata = [] try: repo = RuggedRepository() repo.load_metadata(role) if expiry_is_imminent(repo.roles[role].signed.expires): log.debug(f"'{role}.json' metadata expiry is imminent.") expiring_metadata.append(role) return (True, expiring_metadata) except Exception as e: log_exception(e) message = f"Failure during attempt to get {role} metadata that will expire soon." log.error(message) return (False, expiring_metadata)
Return a list of metadata that will expire imminently.
def refresh_expiry(role: str) ‑> tuple[bool, str]
-
Expand source code
def refresh_expiry(role: str) -> tuple[bool, str]: """ Refresh metadata expiry period. """ try: repo = RuggedRepository() repo.load_metadata(role) repo.update_metadata_expiry(role) repo.roles[role].signatures.clear() repo.sign_metadata(role) if repo.write_metadata(role): message = f"Refreshed {role} metadata expiry period." log.info(message) return (True, message) else: message = f"Failed to refresh {role} metadata expiry period." log.error(message) return (False, message) except Exception as e: log_exception(e) message = f"Failure during attempt to refresh {role} expiry period." log.error(message) return (False, message)
Refresh metadata expiry period.