From 70db95392143d056cdeaec066485209a52eaa480 Mon Sep 17 00:00:00 2001 From: Jeff Schnitter Date: Tue, 18 Nov 2025 16:41:51 -0800 Subject: [PATCH] fix: initialize results and failed_count before directory check in import functions All _import_* functions now initialize results=[] and failed_count=0 before checking if directory exists. This prevents UnboundLocalError when importing partial exports that don't include all resource types. Fixed functions: - _import_catalog: Added results=[] and failed_count=0 - _import_plugins: Added results=[] and failed_count=0 - _import_scorecards: Added results=[] and failed_count=0 - _import_workflows: Added results=[] and failed_count=0 Fixes #171 --- cortexapps_cli/commands/backup.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cortexapps_cli/commands/backup.py b/cortexapps_cli/commands/backup.py index f5245de..0b39592 100644 --- a/cortexapps_cli/commands/backup.py +++ b/cortexapps_cli/commands/backup.py @@ -472,6 +472,8 @@ def import_relationships_file(file_info): return ("entity-relationships", len(results) - failed_count, [(fp, et, em) for rt, fp, et, em in results if et]) def _import_catalog(ctx, directory): + results = [] + failed_count = 0 if os.path.isdir(directory): print("Processing: " + directory) files = [(filename, os.path.join(directory, filename)) @@ -507,6 +509,8 @@ def import_catalog_file(file_info): return ("catalog", len(results) - failed_count, [(fp, et, em) for fn, fp, et, em in results if et]) def _import_plugins(ctx, directory): + results = [] + failed_count = 0 if os.path.isdir(directory): print("Processing: " + directory) files = [(filename, os.path.join(directory, filename)) @@ -543,6 +547,8 @@ def import_plugin_file(file_info): return ("plugins", len(results) - failed_count, [(fp, et, em) for fn, fp, et, em in results if et]) def _import_scorecards(ctx, directory): + results = [] + failed_count = 0 if os.path.isdir(directory): print("Processing: " + directory) files = [(filename, os.path.join(directory, filename)) @@ -579,6 +585,8 @@ def import_scorecard_file(file_info): return ("scorecards", len(results) - failed_count, [(fp, et, em) for fn, fp, et, em in results if et]) def _import_workflows(ctx, directory): + results = [] + failed_count = 0 if os.path.isdir(directory): print("Processing: " + directory) files = [(filename, os.path.join(directory, filename))