Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
R
re2o
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
1
Merge Requests
1
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Nounous
re2o
Commits
2c02a9fb
Commit
2c02a9fb
authored
Apr 25, 2018
by
Gabriel Detraz
Committed by
chirac
Apr 25, 2018
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Factorise + fonctions pour recup switch et building d'une machine
parent
e2f969f8
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
38 additions
and
17 deletions
+38
-17
re2o/mixins.py
re2o/mixins.py
+21
-0
topologie/models.py
topologie/models.py
+17
-17
No files found.
re2o/mixins.py
View file @
2c02a9fb
...
...
@@ -24,6 +24,7 @@ A set of mixins used all over the project to avoid duplicating code
"""
from
reversion
import
revisions
as
reversion
from
django.utils.functional
import
cached_property
class
RevMixin
(
object
):
...
...
@@ -157,3 +158,23 @@ class AclMixin(object):
),
u
"Vous n'avez pas le droit de voir des "
+
self
.
get_classname
()
)
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
)
topologie/models.py
View file @
2c02a9fb
...
...
@@ -49,7 +49,7 @@ from django.db import transaction
from
reversion
import
revisions
as
reversion
from
machines.models
import
Machine
,
regen
from
re2o.mixins
import
AclMixin
,
RevMixin
from
re2o.mixins
import
AclMixin
,
RevMixin
,
SwitchPluggedMixin
class
Stack
(
AclMixin
,
RevMixin
,
models
.
Model
):
...
...
@@ -85,7 +85,7 @@ class Stack(AclMixin, RevMixin, models.Model):
inférieure à l'id minimale"
})
class
AccessPoint
(
AclMixin
,
Machine
):
class
AccessPoint
(
AclMixin
,
SwitchPluggedMixin
,
Machine
):
"""Define a wireless AP. Inherit from machines.interfaces
Definition pour une borne wifi , hérite de machines.interfaces
...
...
@@ -104,18 +104,6 @@ class AccessPoint(AclMixin, 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 (building of the switchs connected to...)"""
return
Building
.
objects
.
filter
(
switchbay__switch
=
self
.
switch
()
)
@
classmethod
def
all_ap_in
(
cls
,
building_instance
):
"""Get a building as argument, returns all ap of a building"""
...
...
@@ -124,9 +112,21 @@ class AccessPoint(AclMixin, Machine):
def
__str__
(
self
):
return
str
(
self
.
interface_set
.
first
())
@
cached_property
def
short_name
(
self
):
return
str
(
self
.
interface_set
.
first
().
domain
.
name
)
class
Server
(
Machine
,
SwitchPluggedMixin
):
"""Dummy class, to retrieve servers of a building, or get switch of a server"""
class
Meta
:
proxy
=
True
@
classmethod
def
all_server_in
(
cls
,
building_instance
):
"""Get a building as argument, returns all server of a building"""
return
cls
.
objects
.
filter
(
interface__port__switch__switchbay__building
=
building_instance
).
exclude
(
accesspoint__isnull
=
False
)
def
__str__
(
self
):
return
str
(
self
.
interface_set
.
first
())
class
Switch
(
AclMixin
,
Machine
):
""" Definition d'un switch. Contient un nombre de ports (number),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment