FIX: print child accounts at all levels

This commit is contained in:
xpk 2022-05-15 10:10:26 +08:00
parent a05c21d63f
commit 79638991c8
Signed by: xpk
GPG Key ID: CD4FF6793F09AB86
1 changed files with 15 additions and 6 deletions

View File

@ -7,14 +7,23 @@ import boto3
def recurseChildren(ouid, level):
children = client.list_organizational_units_for_parent(ParentId=ouid).get('OrganizationalUnits')
if len(children) == 0:
childAccounts = client.list_accounts_for_parent(ParentId=ouid).get('Accounts')
for c in childAccounts:
print('.' * level, c.get('Name'), c.get('Id'))
printChildAccounts(ouid, level)
return
else:
for c in children:
print('.' * level, c.get('Name'), c.get('Id'))
recurseChildren(c.get('Id'), level + 1)
if ouid.startswith('r'):
printChildAccounts(ouid, level)
for ou in children:
print('.' * level, ou.get('Name'), ou.get('Id'))
if ouid.startswith('ou'):
printChildAccounts(ouid, level)
recurseChildren(ou.get('Id'), level + 1)
def printChildAccounts(ouid, level):
childAccounts = client.list_accounts_for_parent(ParentId=ouid).get('Accounts')
for account in childAccounts:
print('.' * level, account.get('Name'), account.get('Id'))
return
client = boto3.client('organizations')