diff --git a/gemini_key_manager/actions.py b/gemini_key_manager/actions.py index aef9763..7178c9f 100644 --- a/gemini_key_manager/actions.py +++ b/gemini_key_manager/actions.py @@ -255,7 +255,7 @@ def process_project_for_action(project, creds, action, dry_run, db_lock, account logging.info(f"Completed processing {project_id}") -def process_account(email, creds, action, api_keys_data, dry_run=False, max_workers=5): +def process_account(email, creds, action, api_keys_data, schema, dry_run=False, max_workers=5): """Orchestrates account-level key management operations. Args: @@ -263,6 +263,7 @@ def process_account(email, creds, action, api_keys_data, dry_run=False, max_work creds (Credentials): Authenticated credentials action (str): 'create' or 'delete' action api_keys_data (dict): Database structure + schema (dict): The database schema. dry_run (bool): Simulation mode flag max_workers (int): Max concurrent operations """ @@ -325,3 +326,6 @@ def process_account(email, creds, action, api_keys_data, dry_run=False, max_work logging.error(f"Permission denied for {email}: {err}") except google_exceptions.GoogleAPICallError as err: logging.error(f"API error processing {email}: {err}") + + if not dry_run: + database.save_keys_to_json(api_keys_data, config.API_KEYS_DATABASE_FILE, schema) diff --git a/gemini_key_manager/main.py b/gemini_key_manager/main.py index 7ebf1bb..b005413 100644 --- a/gemini_key_manager/main.py +++ b/gemini_key_manager/main.py @@ -91,9 +91,6 @@ def main(): for email in emails_to_process: if email in creds_map: - actions.process_account(email, creds_map[email], args.action, api_keys_data, dry_run=args.dry_run, max_workers=args.max_workers) + actions.process_account(email, creds_map[email], args.action, api_keys_data, schema, dry_run=args.dry_run, max_workers=args.max_workers) else: logging.warning(f"Skipping account {email} because authentication was not successful.") - - if not args.dry_run: - database.save_keys_to_json(api_keys_data, config.API_KEYS_DATABASE_FILE, schema)