34 lines
889 B
Python
34 lines
889 B
Python
|
import boto3
|
||
|
|
||
|
|
||
|
def recurseChildren(ouid, level):
|
||
|
children = client.list_organizational_units_for_parent(ParentId=ouid).get('OrganizationalUnits')
|
||
|
if len(children) == 0:
|
||
|
childAccounts = getChildAccunts(ouid)
|
||
|
for c in childAccounts:
|
||
|
print('.' * level, c[0], c[1])
|
||
|
return
|
||
|
else:
|
||
|
for c in children:
|
||
|
print('.' * level, c.get('Name'), c.get('Id'))
|
||
|
recurseChildren(c.get('Id'), level + 1)
|
||
|
|
||
|
|
||
|
def getChildAccunts(ouid):
|
||
|
childAccounts = client.list_accounts_for_parent(ParentId=ouid).get('Accounts')
|
||
|
reducedList = []
|
||
|
for a in childAccounts:
|
||
|
tempList = [a.get('Name'), a.get('Id')]
|
||
|
reducedList.append(tempList)
|
||
|
return reducedList
|
||
|
|
||
|
|
||
|
client = boto3.client('organizations')
|
||
|
response = client.list_roots()
|
||
|
|
||
|
for r in response.get('Roots'):
|
||
|
rootId = r.get('Id')
|
||
|
|
||
|
recurseChildren(rootId, 1)
|
||
|
|