mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-12-27 09:23:47 +00:00
Merge branch 'fix_migrations_dev' into 'dev'
Fix migrations dev See merge request federez/re2o!214
This commit is contained in:
commit
f4099611d6
9 changed files with 23 additions and 226 deletions
|
@ -470,10 +470,10 @@ class SwitchPortSerializer(NamespacedHMSerializer):
|
||||||
class Meta:
|
class Meta:
|
||||||
model = topologie.Port
|
model = topologie.Port
|
||||||
fields = ('switch', 'port', 'room', 'machine_interface', 'related',
|
fields = ('switch', 'port', 'room', 'machine_interface', 'related',
|
||||||
'radius', 'vlan_force', 'details', 'api_url')
|
'custom_profile', 'state', 'details', 'api_url')
|
||||||
extra_kwargs = {
|
extra_kwargs = {
|
||||||
'related': {'view_name': 'switchport-detail'},
|
'related': {'view_name': 'switchport-detail'},
|
||||||
'api_url': {'view_name': 'switchport-detail'}
|
'api_url': {'view_name': 'switchport-detail'},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -485,6 +485,18 @@ class RoomSerializer(NamespacedHMSerializer):
|
||||||
fields = ('name', 'details', 'api_url')
|
fields = ('name', 'details', 'api_url')
|
||||||
|
|
||||||
|
|
||||||
|
class PortProfileSerializer(NamespacedHMSerializer):
|
||||||
|
vlan_untagged = VlanSerializer(read_only=True)
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = topologie.PortProfile
|
||||||
|
fields = ('name', 'profil_default', 'vlan_untagged', 'vlan_tagged',
|
||||||
|
'radius_type', 'radius_mode', 'speed', 'mac_limit',
|
||||||
|
'flow_control', 'dhcp_snooping', 'dhcpv6_snooping',
|
||||||
|
'arp_protect', 'ra_guard', 'loop_protect', 'vlan_untagged',
|
||||||
|
'vlan_tagged')
|
||||||
|
|
||||||
|
|
||||||
# USERS
|
# USERS
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -81,8 +81,9 @@ router.register_viewset(r'topologie/modelswitch', views.ModelSwitchViewSet)
|
||||||
router.register_viewset(r'topologie/constructorswitch', views.ConstructorSwitchViewSet)
|
router.register_viewset(r'topologie/constructorswitch', views.ConstructorSwitchViewSet)
|
||||||
router.register_viewset(r'topologie/switchbay', views.SwitchBayViewSet)
|
router.register_viewset(r'topologie/switchbay', views.SwitchBayViewSet)
|
||||||
router.register_viewset(r'topologie/building', views.BuildingViewSet)
|
router.register_viewset(r'topologie/building', views.BuildingViewSet)
|
||||||
router.register_viewset(r'topologie/switchport', views.SwitchPortViewSet, base_name='switchport')
|
router.register(r'topologie/switchport', views.SwitchPortViewSet, base_name='switchport')
|
||||||
router.register_viewset(r'topologie/room', views.RoomViewSet)
|
router.register_viewset(r'topologie/room', views.RoomViewSet)
|
||||||
|
router.register(r'topologie/portprofile', views.PortProfileViewSet)
|
||||||
# USERS
|
# USERS
|
||||||
router.register_viewset(r'users/user', views.UserViewSet)
|
router.register_viewset(r'users/user', views.UserViewSet)
|
||||||
router.register_viewset(r'users/club', views.ClubViewSet)
|
router.register_viewset(r'users/club', views.ClubViewSet)
|
||||||
|
|
|
@ -403,6 +403,12 @@ class RoomViewSet(viewsets.ReadOnlyModelViewSet):
|
||||||
serializer_class = serializers.RoomSerializer
|
serializer_class = serializers.RoomSerializer
|
||||||
|
|
||||||
|
|
||||||
|
class PortProfileViewSet(viewsets.ReadOnlyModelViewSet):
|
||||||
|
"""Exposes list and details of `topologie.models.PortProfile` objects.
|
||||||
|
"""
|
||||||
|
queryset = topologie.PortProfile.objects.all()
|
||||||
|
serializer_class = serializers.PortProfileSerializer
|
||||||
|
|
||||||
# USER
|
# USER
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.10.7 on 2018-06-26 23:23
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('topologie', '0061_portprofile'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='portprofile',
|
|
||||||
name='radius_mode',
|
|
||||||
field=models.CharField(choices=[('STRICT', 'STRICT'), ('COMMON', 'COMMON')], default='COMMON', help_text="En cas d'auth par mac, auth common ou strcit sur le port", max_length=32, verbose_name='RADIUS mode'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='portprofile',
|
|
||||||
name='radius_type',
|
|
||||||
field=models.CharField(choices=[('NO', 'NO'), ('802.1X', '802.1X'), ('MAC-radius', 'MAC-radius')], help_text="Choix du type d'authentification radius : non actif, mac ou 802.1X", max_length=32, verbose_name='RADIUS type'),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,21 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.10.7 on 2018-06-28 07:49
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
import django.db.models.deletion
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('topologie', '0062_auto_20180627_0123'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='port',
|
|
||||||
name='custom_profil',
|
|
||||||
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.PROTECT, to='topologie.PortProfile'),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,53 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.10.7 on 2017-12-31 19:53
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations
|
|
||||||
|
|
||||||
|
|
||||||
def transfer_profil(apps, schema_editor):
|
|
||||||
db_alias = schema_editor.connection.alias
|
|
||||||
port = apps.get_model("topologie", "Port")
|
|
||||||
profil = apps.get_model("topologie", "PortProfile")
|
|
||||||
vlan = apps.get_model("machines", "Vlan")
|
|
||||||
port_list = port.objects.using(db_alias).all()
|
|
||||||
profil_nothing = profil.objects.using(db_alias).create(name='nothing', profil_default='nothing', radius_type='NO')
|
|
||||||
profil_uplink = profil.objects.using(db_alias).create(name='uplink', profil_default='uplink', radius_type='NO')
|
|
||||||
profil_machine = profil.objects.using(db_alias).create(name='asso_machine', profil_default='asso_machine', radius_type='NO')
|
|
||||||
profil_room = profil.objects.using(db_alias).create(name='room', profil_default='room', radius_type='NO')
|
|
||||||
profil_borne = profil.objects.using(db_alias).create(name='accesspoint', profil_default='accesspoint', radius_type='NO')
|
|
||||||
for vlan_instance in vlan.objects.using(db_alias).all():
|
|
||||||
if port.objects.using(db_alias).filter(vlan_force=vlan_instance):
|
|
||||||
custom_profil = profil.objects.using(db_alias).create(name='vlan-force-' + str(vlan_instance.vlan_id), radius_type='NO', vlan_untagged=vlan_instance)
|
|
||||||
port.objects.using(db_alias).filter(vlan_force=vlan_instance).update(custom_profil=custom_profil)
|
|
||||||
if port.objects.using(db_alias).filter(room__isnull=False).filter(radius='STRICT').count() > port.objects.using(db_alias).filter(room__isnull=False).filter(radius='NO').count() and port.objects.using(db_alias).filter(room__isnull=False).filter(radius='STRICT').count() > port.objects.using(db_alias).filter(room__isnull=False).filter(radius='COMMON').count():
|
|
||||||
profil_room.radius_type = 'MAC-radius'
|
|
||||||
profil_room.radius_mode = 'STRICT'
|
|
||||||
common_profil = profil.objects.using(db_alias).create(name='mac-radius-common', radius_type='MAC-radius', radius_mode='COMMON')
|
|
||||||
no_rad_profil = profil.objects.using(db_alias).create(name='no-radius', radius_type='NO')
|
|
||||||
port.objects.using(db_alias).filter(room__isnull=False).filter(radius='COMMON').update(custom_profil=common_profil)
|
|
||||||
port.objects.using(db_alias).filter(room__isnull=False).filter(radius='NO').update(custom_profil=no_rad_profil)
|
|
||||||
elif port.objects.using(db_alias).filter(room__isnull=False).filter(radius='COMMON').count() > port.objects.using(db_alias).filter(room__isnull=False).filter(radius='NO').count() and port.objects.using(db_alias).filter(room__isnull=False).filter(radius='COMMON').count() > port.objects.using(db_alias).filter(room__isnull=False).filter(radius='STRICT').count():
|
|
||||||
profil_room.radius_type = 'MAC-radius'
|
|
||||||
profil_room.radius_mode = 'COMMON'
|
|
||||||
strict_profil = profil.objects.using(db_alias).create(name='mac-radius-strict', radius_type='MAC-radius', radius_mode='STRICT')
|
|
||||||
no_rad_profil = profil.objects.using(db_alias).create(name='no-radius', radius_type='NO')
|
|
||||||
port.objects.using(db_alias).filter(room__isnull=False).filter(radius='STRICT').update(custom_profil=strict_profil)
|
|
||||||
port.objects.using(db_alias).filter(room__isnull=False).filter(radius='NO').update(custom_profil=no_rad_profil)
|
|
||||||
else:
|
|
||||||
strict_profil = profil.objects.using(db_alias).create(name='mac-radius-strict', radius_type='MAC-radius', radius_mode='STRICT')
|
|
||||||
common_profil = profil.objects.using(db_alias).create(name='mac-radius-common', radius_type='MAC-radius', radius_mode='COMMON')
|
|
||||||
port.objects.using(db_alias).filter(room__isnull=False).filter(radius='STRICT').update(custom_profil=strict_profil)
|
|
||||||
port.objects.using(db_alias).filter(room__isnull=False).filter(radius='NO').update(custom_profil=common_profil)
|
|
||||||
profil_room.save()
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('topologie', '0063_port_custom_profil'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RunPython(transfer_profil),
|
|
||||||
]
|
|
|
@ -1,23 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.10.7 on 2018-06-30 15:03
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('topologie', '0064_createprofil'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='port',
|
|
||||||
name='radius',
|
|
||||||
),
|
|
||||||
migrations.RemoveField(
|
|
||||||
model_name='port',
|
|
||||||
name='vlan_force',
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,25 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.10.7 on 2018-06-30 16:55
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('topologie', '0065_auto_20180630_1703'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.AddField(
|
|
||||||
model_name='port',
|
|
||||||
name='state',
|
|
||||||
field=models.BooleanField(default=True, help_text='Etat du port Actif', verbose_name='Etat du port Actif'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='portprofile',
|
|
||||||
name='profil_default',
|
|
||||||
field=models.CharField(blank=True, choices=[('room', 'room'), ('accespoint', 'accesspoint'), ('uplink', 'uplink'), ('asso_machine', 'asso_machine'), ('nothing', 'nothing')], max_length=32, null=True, unique=True, verbose_name='profil default'),
|
|
||||||
),
|
|
||||||
]
|
|
|
@ -1,75 +0,0 @@
|
||||||
# -*- coding: utf-8 -*-
|
|
||||||
# Generated by Django 1.10.7 on 2018-06-30 22:16
|
|
||||||
from __future__ import unicode_literals
|
|
||||||
|
|
||||||
from django.db import migrations, models
|
|
||||||
|
|
||||||
|
|
||||||
class Migration(migrations.Migration):
|
|
||||||
|
|
||||||
dependencies = [
|
|
||||||
('topologie', '0066_auto_20180630_1855'),
|
|
||||||
]
|
|
||||||
|
|
||||||
operations = [
|
|
||||||
migrations.RenameField(
|
|
||||||
model_name='port',
|
|
||||||
old_name='custom_profil',
|
|
||||||
new_name='custom_profile',
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='port',
|
|
||||||
name='state',
|
|
||||||
field=models.BooleanField(default=True, help_text='Port state Active', verbose_name='Port State Active'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='portprofile',
|
|
||||||
name='arp_protect',
|
|
||||||
field=models.BooleanField(default=False, help_text='Check if ip is dhcp assigned', verbose_name='Arp protect'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='portprofile',
|
|
||||||
name='dhcp_snooping',
|
|
||||||
field=models.BooleanField(default=False, help_text='Protect against rogue dhcp', verbose_name='Dhcp snooping'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='portprofile',
|
|
||||||
name='dhcpv6_snooping',
|
|
||||||
field=models.BooleanField(default=False, help_text='Protect against rogue dhcpv6', verbose_name='Dhcpv6 snooping'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='portprofile',
|
|
||||||
name='flow_control',
|
|
||||||
field=models.BooleanField(default=False, help_text='Flow control', verbose_name='Flow control'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='portprofile',
|
|
||||||
name='loop_protect',
|
|
||||||
field=models.BooleanField(default=False, help_text='Protect again loop', verbose_name='Loop Protect'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='portprofile',
|
|
||||||
name='mac_limit',
|
|
||||||
field=models.IntegerField(blank=True, help_text='Limit of mac-address on this port', null=True, verbose_name='Mac limit'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='portprofile',
|
|
||||||
name='ra_guard',
|
|
||||||
field=models.BooleanField(default=False, help_text='Protect against rogue ra', verbose_name='Ra guard'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='portprofile',
|
|
||||||
name='radius_mode',
|
|
||||||
field=models.CharField(choices=[('STRICT', 'STRICT'), ('COMMON', 'COMMON')], default='COMMON', help_text='In case of mac-auth : mode common or strict on this port', max_length=32, verbose_name='RADIUS mode'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='portprofile',
|
|
||||||
name='radius_type',
|
|
||||||
field=models.CharField(choices=[('NO', 'NO'), ('802.1X', '802.1X'), ('MAC-radius', 'MAC-radius')], help_text='Type of radius auth : inactive, mac-address or 802.1X', max_length=32, verbose_name='RADIUS type'),
|
|
||||||
),
|
|
||||||
migrations.AlterField(
|
|
||||||
model_name='portprofile',
|
|
||||||
name='speed',
|
|
||||||
field=models.CharField(choices=[('10-half', '10-half'), ('100-half', '100-half'), ('10-full', '10-full'), ('100-full', '100-full'), ('1000-full', '1000-full'), ('auto', 'auto'), ('auto-10', 'auto-10'), ('auto-100', 'auto-100')], default='auto', help_text='Port speed limit', max_length=32, verbose_name='Speed'),
|
|
||||||
),
|
|
||||||
]
|
|
Loading…
Reference in a new issue