List the storage accounts that are not having containers,tables,queues,fileshares using python sdk on azure automation account python version 3.8. Below is the script which im trying to get the same but getting error **as containers = list(storage_client.blob_containers.list(resource_group_name, account_name))TypeError: 'ListContainerItems' object is not iterable **
from azure.common.credentials import ServicePrincipalCredentials
from azure.mgmt.compute import ComputeManagementClient
from azure.mgmt.storage import StorageManagementClient
client_id = 'XXX'
tenant_id = 'XXX'
client_secret = 'XXX'
subscription_id = ('subscription_id')
credentials = ServicePrincipalCredentials(client_id, client_secret, tenant=tenant_id)
from azure.mgmt.storage import StorageManagementClient
storage_client = StorageManagementClient(credentials, subscription_id)
# Get a list of all storage accounts in the subscription
storage_accounts = storage_client.storage_accounts.list()
# Loop through each storage account and check if it has containers, tables, queues, or file shares
for account in storage_accounts:
account_name = account.name
resource_group_name = account.id.split("/")[4]
# Check if the storage account has containers
containers = list(storage_client.blob_containers.list(resource_group_name, account_name))
#print(containers)
if containers:
continue
# Check if the storage account has tables
tables = list(storage_client.table.list(resource_group_name, account_name))
if tables:
continue
# Check if the storage account has queues
queues = list(storage_client.queue.list(resource_group_name, account_name))
if queues:
continue
# Check if the storage account has file shares
file_shares = list(storage_client.file_shares.list(resource_group_name, account_name))
if file_shares:
continue
# If none of the above resources are found, print the storage account name as orphan
print(f"Orphaned Storage account name {account_name}.")