8
0
Fork 0
mirror of https://gitlab2.federez.net/re2o/re2o synced 2024-11-26 06:32:26 +00:00

Gestion des switchs à provisioner automatiquement

This commit is contained in:
Gabriel Detraz 2018-07-09 21:05:50 +02:00 committed by Alexandre Iooss
parent e62554263d
commit fb613d304c
4 changed files with 41 additions and 2 deletions

View file

@ -45,7 +45,6 @@ from .models import (
) )
from topologie.models import Switch from topologie.models import Switch
class EditOptionalUserForm(ModelForm): class EditOptionalUserForm(ModelForm):
"""Formulaire d'édition des options de l'user. (solde, telephone..)""" """Formulaire d'édition des options de l'user. (solde, telephone..)"""
class Meta: class Meta:
@ -96,7 +95,14 @@ class EditOptionalMachineForm(ModelForm):
class EditOptionalTopologieForm(ModelForm): class EditOptionalTopologieForm(ModelForm):
"""Options de topologie, formulaire d'edition (vlan par default etc)""" """Options de topologie, formulaire d'edition (vlan par default etc)
On rajoute un champ automatic provision switchs pour gérer facilement
l'ajout de switchs au provisionning automatique"""
automatic_provision_switchs = forms.ModelMultipleChoiceField(
Switch.objects.all(),
required=False
)
class Meta: class Meta:
model = OptionalTopologie model = OptionalTopologie
fields = '__all__' fields = '__all__'
@ -114,6 +120,14 @@ class EditOptionalTopologieForm(ModelForm):
self.fields['vlan_decision_nok'].label = _("VLAN for machines rejected" self.fields['vlan_decision_nok'].label = _("VLAN for machines rejected"
" by RADIUS") " by RADIUS")
self.initial['automatic_provision_switchs'] = Switch.objects.filter(automatic_provision=True)
def save(self, commit=True):
instance = super().save(commit)
Switch.objects.all().update(automatic_provision=False)
self.cleaned_data['automatic_provision_switchs'].update(automatic_provision=True)
return instance
class EditGeneralOptionForm(ModelForm): class EditGeneralOptionForm(ModelForm):
"""Options générales (affichages de résultats de recherche, etc)""" """Options générales (affichages de résultats de recherche, etc)"""

View file

@ -34,6 +34,7 @@ from django.forms import ValidationError
from django.utils.translation import ugettext_lazy as _ from django.utils.translation import ugettext_lazy as _
import machines.models import machines.models
from re2o.mixins import AclMixin from re2o.mixins import AclMixin
from re2o.aes_field import AESEncryptedField from re2o.aes_field import AESEncryptedField
from datetime import timedelta from datetime import timedelta

View file

@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.10.7 on 2018-09-20 16:28
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('topologie', '0063_auto_20180919_2225'),
]
operations = [
migrations.AddField(
model_name='switch',
name='automatic_provision',
field=models.BooleanField(default=False, help_text='Provision automatique de ce switch'),
),
]

View file

@ -247,6 +247,10 @@ class Switch(AclMixin, Machine):
on_delete=models.PROTECT, on_delete=models.PROTECT,
help_text="Identifiant de management de ce switch" help_text="Identifiant de management de ce switch"
) )
automatic_provision = models.BooleanField(
default=False,
help_text='Provision automatique de ce switch',
)
class Meta: class Meta:
unique_together = ('stack', 'stack_member_id') unique_together = ('stack', 'stack_member_id')