Skip to content

Commit

Permalink
add metadata back
Browse files Browse the repository at this point in the history
  • Loading branch information
badra001 committed Jan 2, 2026
1 parent 0b560ec commit dc354d0
Showing 1 changed file with 23 additions and 18 deletions.
41 changes: 23 additions & 18 deletions local-app/python-tools/cross-organization/org_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ def run(self):
try:
master_aliases = iam_client.list_account_aliases()['AccountAliases']
master_alias = master_aliases[0] if master_aliases else "None"
except: master_alias = "Unknown"
except: master_alias = "Unknown (Check Permissions)"

tasks, check_info = [], []
if self.args.enable_checks:
Expand All @@ -117,9 +117,17 @@ def run(self):

print("-" * 100)
print(f"AWS ORG TASK RUNNER - v{__version__}")
print(f" Profile: {self.args.profile or 'default'}")
print(f" Region: {self.args.region}")
print(f" Caller Identity: {caller['Arn']}")
print(f" Organization ID: {self.org_id}")
print(f" Management ID: {master_id} ({master_alias})")
print("-" * 100)
print(f" Target Role: {self.args.role_name}")
print(f" Max Workers: {self.args.max_workers}")
print(f" Enabled Checks: {', '.join(check_info) if check_info else 'None'}")
print(f" Accounts Found: {len(all_accounts)}")
print("-" * 100)

with ThreadPoolExecutor(max_workers=self.args.max_workers) as executor:
futures = {executor.submit(self.process_account, acc, partition, tasks): acc for acc in all_accounts}
Expand All @@ -138,6 +146,7 @@ def run(self):
w = csv.DictWriter(f, fieldnames=["org_id", "account_id", "account_name", "alias", "ou_path", "ou_id"])
w.writeheader()
w.writerows([r['metadata'] for r in self.full_results])
self.created_files.extend([f"{acc_base}.csv"])

# CHECK SPECIFIC FILES
for mod_name, _ in tasks:
Expand All @@ -150,7 +159,6 @@ def run(self):
for key, fields in mod_data.items():
if key == "account_summary": continue

# Parse Region and Resource
if ":" in key:
region_part, resource_part = key.split(":", 1)
else:
Expand All @@ -159,27 +167,24 @@ def run(self):

for k, v in fields.items():
if k == "resource": continue
w.writerow([
self.org_id,
res["metadata"]["account_id"],
res["metadata"]["alias"],
region_part,
resource_part,
k,
v
])
w.writerow([self.org_id, res["metadata"]["account_id"], res["metadata"]["alias"], region_part, resource_part, k, v])

with open(f"{chk_base}.json", 'w') as f:
json.dump([{
"org_id": self.org_id,
"account_id": r["metadata"]["account_id"],
"alias": r["metadata"]["alias"],
"ou_path": r["metadata"]["ou_path"],
"ou_id": r["metadata"]["ou_id"],
"data": r["task_data"].get(mod_name, {})
"org_id": self.org_id, "account_id": r["metadata"]["account_id"],
"alias": r["metadata"]["alias"], "ou_path": r["metadata"]["ou_path"],
"ou_id": r["metadata"]["ou_id"], "data": r["task_data"].get(mod_name, {})
} for r in self.full_results], f, indent=2)

self.created_files.extend([f"{chk_base}.csv", f"{chk_base}.json"])

print(f"\nTime: {round(time.perf_counter() - self.start_time, 2)}s")
# RESTORED FOOTER
print("-" * 100)
print(f"COMPLETED: {round(time.perf_counter() - self.start_time, 2)}s elapsed")
print(f"FILES CREATED:")
for f in self.created_files:
print(f" - {f}")
print("-" * 100)

if __name__ == "__main__":
p = argparse.ArgumentParser()
Expand Down

0 comments on commit dc354d0

Please sign in to comment.