Beispiel #1
0
    def clean_alias2(self):
        alias = self.cleaned_data['alias2'].lower()

        if alias != '':
            if re.search(r'^[a-z][a-z0-9-]{0,23}[a-z0-9]$', alias) is None:
                raise forms.ValidationError("L'alias {} ne correspond pas à la forme attendue.".format(alias))
            else:
                if re.search(r'enst-bretagne', alias):
                    raise forms.ValidationError("L'alias ne doit pas contenir le nom de l'école.")
                if re.search(r'resel', alias):
                    raise forms.ValidationError("L'alias ne doit pas contenir le nom resel.")
                if search("ou=machines,dc=resel,dc=enst-bretagne,dc=fr", "(|(host={})(hostAlias={}))".format(alias, alias)) is not None:
                    raise forms.ValidationError("L'alias choisi est déjà utilisé pour une machine de notre réseau.")
        else:
            alias = None

        return alias
Beispiel #2
0
    def clean_alias2(self):
        alias = self.cleaned_data['alias2'].lower()

        if alias != '':
            if re.search(r'^[a-z][a-z0-9-]{0,23}[a-z0-9]$', alias) is None:
                raise forms.ValidationError("The chosen alias {} does not match with the expected pattern.".format(alias))
            else:
                if re.search(r'enst-bretagne', alias):
                    raise forms.ValidationError("The alias can't contain enst-bretagne.")
                if re.search(r'resel', alias):
                    raise forms.ValidationError("The alias can't contain resel.")
                if search("ou=machines,dc=resel,dc=enst-bretagne,dc=fr", "(hostAlias={})".format(alias)) is not None:
                    raise forms.ValidationError("The chosen alias {} already exists".format(alias))
        else:
            alias = None

        return alias
Beispiel #3
0
def get_free_ip(low, high):
    """
    Récupère une IP libre pour une nouvelle machine à partir du LDAP
    """
    rang = low - 1
    again = True

    while ((rang < high) and again):
        rang += 1
        item = 2

        while ((item < 254) and again):
            item +=1
            if search("ou=machines,dc=resel,dc=enst-bretagne,dc=fr", "(ipHostNumber={}.{})".format(rang, item)) is None:
                again = False

    return "{}.{}".format(rang, item)