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

Ca me broute donc je fais simple

This commit is contained in:
Gabriel Detraz 2018-04-25 18:38:40 +02:00 committed by chirac
parent 2c02a9fb6b
commit 9f153c49d8
2 changed files with 37 additions and 21 deletions

View file

@ -160,21 +160,3 @@ class AclMixin(object):
)
class SwitchPluggedMixin(object):
"""Mixin to get building.switch where the device is plugged"""
def switch(self):
"""Return the switch where this is plugged"""
return Switch.objects.filter(
ports__machine_interface__machine=self
)
def building(self):
"""Return the building of the AP/Server (building of the switchs connected to...)"""
return Building.objects.filter(
switchbay__switch=self.switch()
)
@cached_property
def short_name(self):
return str(self.interface_set.first().domain.name)

View file

@ -49,7 +49,9 @@ from django.db import transaction
from reversion import revisions as reversion
from machines.models import Machine, regen
from re2o.mixins import AclMixin, RevMixin, SwitchPluggedMixin
from re2o.mixins import AclMixin, RevMixin
class Stack(AclMixin, RevMixin, models.Model):
@ -85,7 +87,7 @@ class Stack(AclMixin, RevMixin, models.Model):
inférieure à l'id minimale"})
class AccessPoint(AclMixin, SwitchPluggedMixin, Machine):
class AccessPoint(AclMixin, Machine):
"""Define a wireless AP. Inherit from machines.interfaces
Definition pour une borne wifi , hérite de machines.interfaces
@ -104,6 +106,22 @@ class AccessPoint(AclMixin, SwitchPluggedMixin, Machine):
("view_accesspoint", "Peut voir une borne"),
)
def switch(self):
"""Return the switch where this is plugged"""
return Switch.objects.filter(
ports__machine_interface__machine=self
)
def building(self):
"""Return the building of the AP/Server (building of the switchs connected to...)"""
return Building.objects.filter(
switchbay__switch=self.switch()
)
@cached_property
def short_name(self):
return str(self.interface_set.first().domain.name)
@classmethod
def all_ap_in(cls, building_instance):
"""Get a building as argument, returns all ap of a building"""
@ -113,12 +131,28 @@ class AccessPoint(AclMixin, SwitchPluggedMixin, Machine):
return str(self.interface_set.first())
class Server(Machine, SwitchPluggedMixin):
class Server(Machine):
"""Dummy class, to retrieve servers of a building, or get switch of a server"""
class Meta:
proxy = True
def switch(self):
"""Return the switch where this is plugged"""
return Switch.objects.filter(
ports__machine_interface__machine=self
)
def building(self):
"""Return the building of the AP/Server (building of the switchs connected to...)"""
return Building.objects.filter(
switchbay__switch=self.switch()
)
@cached_property
def short_name(self):
return str(self.interface_set.first().domain.name)
@classmethod
def all_server_in(cls, building_instance):
"""Get a building as argument, returns all server of a building"""