#!/usr/bin/python3 import sys from lib.paheko import Paheko from lib.ldap import Ldap paheko = Paheko() categorie_membres = paheko.get_categorie_id("Membres") membres = paheko.get_users_in_categorie(categorie_membres) def test_quota(paheko_entry, ldap_entry): quota_disque = int(paheko_entry["quota_disque"].strip("'")) quota_cloud = int(ldap_entry[1]['nextcloudQuota'][0][:-3]) quota_mail = int(ldap_entry[1]['mailQuota'][0][:-1]) # if f"{quota_disque}G".encode() == ldap_entry[1]['mailQuota'][0]: # ok = True if quota_disque == quota_cloud and quota_disque == quota_mail: return True elif quota_disque == quota_cloud + quota_mail: return True else: return False def test_mail_secours(paheko_entry, ldap_entry): try: if paheko_entry["email_secours"]: return paheko_entry["email_secours"].strip("'").encode()== ldap_entry[1]['mailDeSecours'][0] else: return False except e: print(paheko_entry) print(ldap_entry) raise e with Ldap() as ldap: try: not_in_ldap = [] mail_secours = [] quota = [] for membre in membres: ldap_entry = ldap.get_email(membre["email"]) if ldap_entry: ldap_entry = ldap_entry[0] if not test_mail_secours(membre, ldap_entry): mail_secours.append(f"{membre['email']}: Paheko {membre['email_secours']}, LDAP {ldap_entry[1]['mailDeSecours'][0].decode()}") if not test_quota(membre, ldap_entry): quota.append(f"{membre['email']}: Paheko {membre['quota_disque']}, LDAP mail {ldap_entry[1]['mailQuota'][0].decode()} cloud {ldap_entry[1]['nextcloudQuota'][0].decode()}") else: not_in_ldap.append(f"{membre['email']} / id : {membre['id']}") except Exception as e: print(membre) print(ldap.get_email(membre["email"])) raise e print("Mails dans paheko mais pas dans le LDAP :") print("\n".join(not_in_ldap)) print("\nMails de secours pas ok dans le LDAP :") print("\n".join(mail_secours)) print("\nQuotas pas ok dans le LDAP :") print("\n".join(quota))