test-infra/cleanup_spanner_databases.py (26 lines of code) (raw):

import datetime from google.cloud import spanner def delete_old_spanner_databases(): spanner_client = spanner.Client() instance_ids = ["teleport", "teleport1", "teleport2", "teleport3", "teleport4"] for instance_id in instance_ids: instance = spanner_client.instance(instance_id) for database in instance.list_databases(): create_time = database.create_time if create_time: time_difference = datetime.datetime.now(datetime.UTC) - create_time if time_difference > datetime.timedelta(hours=20): print(f"Deleting database {database.name} in instance {instance_id}") try: database_id = database.name.split('/')[-1] instance.database(database_id).drop() print(f"Successfully deleted {database.name}") except Exception as e: print(f"Error deleting database {database.name}: {e}") else: print(f"Skipping database {database.name} in instance {instance_id} as it is not older than 5 hours") else: print(f"Could not determine create time for database {database.name}, skipping.") return "Completed database cleanup", 200 if __name__ == "__main__": delete_old_spanner_databases()