import json
from consumer import Consumer,ERROR,MSG,DATA

# Crear un consumidor de Cloudian
consumer = Consumer(usr='sysadmin',password=r'')
consumer.createSesion(verifySSL=False, proxyString='')
#consumer.createSesion(verifySSL=False)

# Data para la creación de un grupo

""" groupData = {
    "active": "true",
    "groupId" : "daas-demo-test-3",
    "groupName": "",
    "ldapEnabled": False,
    "s3endpointshttp": ["ALL"],
    "s3endpointshttps": ["ALL"],
    "s3websiteendpoints": ["ALL"]
}

extractGroupId = {k:v for k,v in groupData.items() if k in ['groupId']}
print(extractGroupId)
createdGroup = consumer.put(method='group',data=groupData)

if 'error' in createdGroup:
    print(createdGroup[ERROR])
    exit()
print(createdGroup[MSG])

deleteGroup = consumer.delete(method='group',data=extractGroupId)
if 'error' in deleteGroup:
    print(deleteGroup[ERROR])
    exit()
print(deleteGroup[MSG]) """

# Busqueda por prefijo OPCIONAL
data={
    "prefix":"daas",
}

# Listar los grupos
groups = consumer.get(method='group/list',data=data ,elementOfset="groupId")
if 'error' in groups:
    print(groups[ERROR])
    exit()


print(f'Grupos encontrados: "{len(groups[DATA])}"')
for group in groups[DATA]: # Limitado a los primeros 10 grupos para efecto de pruebas
    # Parametros de Busqueda de Usuarios
    data={
        'userType':'all',
        'userStatus':'active',
        'groupId':group['groupId']
        }
    
    # Obtención de Usuarios de un grupo en especifico
    users = consumer.get(method='user/list', data=data,elementOfset="userId")
    if 'error' in users:
        print(users[ERROR])
        exit()
    print(f'Usuarios encontrados en el grupo "{group['groupId']}": "{len(users[DATA])}"')
    for user in users[DATA]:
        print(json.dumps(user, indent=2))

