def get_default_base_dn(server_name: str) -> str:
    if not server_name or '.' not in server_name:
        return None
    values = server_name.split('.')
    # cannot calculated base dn should be server.domain.tld
    # remove 'server' in dn
    if len(values) < 3:
        return None
    domain = ['ou=' + domain for domain in values[1:-2]]
    domain.append(f'o={values[-2]},o={values[-1]}')
    return ','.join(domain)


def valid_base_dn(base_dn: str) -> None:
    for att in ['o', 'dc', 'ou']:
        if base_dn.startswith(att + '='):
            break
    else:
        raise ValueError('La racine doit débuter par une organisation (o=), une composante du domaine (dc=) ou une unité organisationnelle (ou=)')