Skip to content

Commit 2d6a8e9

Browse files
committed
Last touches to interface schema
1 parent e69bfa6 commit 2d6a8e9

File tree

2 files changed

+78
-95
lines changed

2 files changed

+78
-95
lines changed

base/dcim.yml

Lines changed: 44 additions & 95 deletions
Original file line numberDiff line numberDiff line change
@@ -159,31 +159,31 @@ generics:
159159
- name: provisioning
160160
label: Provisioning
161161
description: "Interface is being provisioned."
162-
color: "#A9DFBF" # light pastel green
162+
color: "#A9DFBF" # light pastel green
163163
- name: free
164164
label: Free
165165
description: "Interface is unused."
166-
color: "#CDEACC" # slightly darker pastel green
166+
color: "#CDEACC" # slightly darker pastel green
167167
- name: active
168168
label: Active
169169
description: "Interface is active and operational."
170-
color: "#A9CCE3" # pastel blue
170+
color: "#A9CCE3" # pastel blue
171171
- name: maintenance
172172
label: Maintenance
173173
description: "Interface is under maintenance."
174-
color: "#FFF2CC" # pastel yellow
174+
color: "#FFF2CC" # pastel yellow
175175
- name: disabled
176176
label: Disabled
177177
description: "Interface has been disabled."
178-
color: "#D3D3D3" # light grey
178+
color: "#D3D3D3" # light grey
179179
- name: deleted
180180
label: Deleted
181181
description: "Interface has been deleted."
182-
color: "#FAD7A0" # pastel orange
182+
color: "#FAD7A0" # pastel orange
183183
- name: outage
184184
label: Outage
185185
description: "Interface is currently experiencing an outage."
186-
color: "#F4CCCC" # pastel red
186+
color: "#F4CCCC" # pastel red
187187
default_value: "active"
188188
order_weight: 1200
189189
- name: role
@@ -194,31 +194,31 @@ generics:
194194
- name: lag
195195
label: Lag
196196
description: "Interface LAG."
197-
color: "#A9DFBF" # light pastel green
197+
color: "#A9DFBF" # light pastel green
198198
- name: core
199199
label: Core Interface
200200
description: "Central part of the network."
201-
color: "#A9CCE3" # pastel blue
201+
color: "#A9CCE3" # pastel blue
202202
- name: cust
203203
label: Customer Interface
204204
description: "Interface dedicated to customer connections."
205-
color: "#D2B4DE" # pastel purple
205+
color: "#D2B4DE" # pastel purple
206206
- name: access
207207
label: Access Interfaces
208208
description: "Interface connecting endpoint devices."
209-
color: "#B4E0DC" # pastel teal
209+
color: "#B4E0DC" # pastel teal
210210
- name: management
211211
label: Management Interface
212212
description: "Interface dedicated to device management."
213-
color: "#E3DAC9" # pastel cream
213+
color: "#E3DAC9" # pastel cream
214214
- name: peering
215215
label: Peering Interface
216216
description: "Interface dedicated to peering with other networks."
217-
color: "#C4B7E6" # pastel purple
217+
color: "#C4B7E6" # pastel purple
218218
- name: upstream
219219
label: Upstream Interface
220220
description: "Interface dedicated to upstream traffic between networks."
221-
color: "#B2D4E6" # pastel sky blue
221+
color: "#B2D4E6" # pastel sky blue
222222
order_weight: 1250
223223
relationships:
224224
- name: device
@@ -285,6 +285,21 @@ generics:
285285
description: "List of IP addresses associated with the interface"
286286
order_weight: 1150
287287

288+
- name: HasSubInterface
289+
namespace: Interface
290+
description: A generic interface that can have sub-interfaces
291+
include_in_menu: false
292+
relationships:
293+
- name: sub_interfaces
294+
label: "Sub-interface(s)"
295+
peer: InterfaceVirtual
296+
direction: outbound
297+
identifier: "sub__interface"
298+
optional: true
299+
cardinality: many
300+
kind: Attribute
301+
description: "Sub-interfaces of this interface"
302+
order_weight: 1750
288303

289304
nodes:
290305
# -------------------- Device (Types, Platforms, Device, Interfaces ) --------------------
@@ -476,50 +491,16 @@ nodes:
476491
- InterfaceLayer2
477492
- InterfaceLayer3
478493
- DcimEndpoint
494+
- InterfaceHasSubInterface
479495
include_in_menu: false
480-
attributes:
481-
- name: breakout_capability
482-
kind: Boolean
483-
optional: false
484-
default_value: false
485-
description: "Indicates if the port supports breakout capability"
486496
relationships:
487-
- name: breakout_interfaces
488-
peer: InterfacePhysical
489-
optional: true
490-
cardinality: many
491-
kind: Attribute
492-
identifier: "physcial__breakout"
493-
direction: outbound
494-
description: "Interfaces resulting from the breakout"
495-
order_weight: 1650
496-
- name: parent_interface
497-
peer: InterfacePhysical
498-
optional: true
499-
cardinality: one
500-
kind: Attribute
501-
identifier: "physcial__breakout"
502-
direction: inbound
503-
description: "Interface from which breakout is created"
504-
order_weight: 1700
505-
- name: children_interfaces
506-
label: Sub-interfaces
507-
peer: InterfaceSub
508-
optional: true
509-
cardinality: many
510-
kind: Attribute
511-
identifier: "interface__parent"
512-
direction: inbound
513-
description: "Sub-interfaces of the Physical interface"
514-
order_weight: 1750
515-
- name: lacp_parent
497+
- name: lag_parent
516498
label: "LAG"
517499
peer: InterfaceLag
518-
identifier: "lag__members"
519500
optional: true
520501
cardinality: one
521502
kind: Attribute
522-
description: "LACP Interface using this Physical interface"
503+
description: "LAG Interface using this Physical interface"
523504
order_weight: 1800
524505

525506
- name: Virtual
@@ -530,38 +511,16 @@ nodes:
530511
- DcimInterface
531512
- InterfaceLayer2
532513
- InterfaceLayer3
533-
include_in_menu: false
534-
relationships:
535-
- name: children_interfaces
536-
label: "Sub-interface(s)"
537-
peer: InterfaceSub
538-
optional: true
539-
cardinality: many
540-
kind: Attribute
541-
description: "Sub-interfaces of the Virtual interface"
542-
order_weight: 1900
543-
544-
- name: Sub
545-
namespace: Interface
546-
label: Sub-Interface
547-
description: "Sub-interface for physical, logical, or aggregate interface"
548-
human_friendly_id:
549-
- "device__name__value"
550-
- "parent_interface__name__value"
551-
- "name__value"
552-
inherit_from:
553-
- DcimInterface
554-
- InterfaceLayer2
555-
- InterfaceLayer3
514+
- InterfaceHasSubInterface
556515
include_in_menu: false
557516
relationships:
558517
- name: parent_interface
559-
peer: DcimInterface
518+
peer: InterfaceHasSubInterface
560519
optional: false
561520
cardinality: one
562521
kind: Attribute
563-
identifier: "interface__parent"
564-
direction: outbound
522+
identifier: "sub__interface"
523+
direction: inbound
565524
description: "Parent interface to which this sub-interface belongs"
566525

567526
- name: Lag
@@ -572,6 +531,7 @@ nodes:
572531
- DcimInterface
573532
- InterfaceLayer2
574533
- InterfaceLayer3
534+
- InterfaceHasSubInterface
575535
include_in_menu: false
576536
attributes:
577537
- name: lacp_rate
@@ -580,10 +540,10 @@ nodes:
580540
choices:
581541
- name: slow
582542
label: Slow
583-
color: "#E6E6FA" # lavender
543+
color: "#E6E6FA" # lavender
584544
- name: fast
585545
label: Fast
586-
color: "#E6E6FA" # lavender
546+
color: "#E6E6FA" # lavender
587547
default_value: fast
588548
description: "LACP rate for the aggregated interface"
589549
order_weight: 1700
@@ -593,32 +553,21 @@ nodes:
593553
choices:
594554
- name: active
595555
label: Active
596-
color: "#E6E6FA" # lavender
556+
color: "#E6E6FA" # lavender
597557
- name: passive
598558
label: Passive
599-
color: "#E6E6FA" # lavender
559+
color: "#E6E6FA" # lavender
600560
- name: disabled
601561
label: Disabled
602-
color: "#E6E6FA" # lavender
562+
color: "#E6E6FA" # lavender
603563
description: "LACP mode for the aggregated interface"
604564
default_value: active
605565
order_weight: 1750
606566
relationships:
607-
- name: member_interfaces
567+
- name: lag_members
608568
label: "Member(s)"
609569
peer: InterfacePhysical
610-
identifier: "lag__members"
611570
cardinality: many
612571
kind: Attribute
613-
description: "Interfaces that are members of the aggregate"
572+
description: "Physical Interfaces that are members of this aggregate"
614573
order_weight: 1800
615-
- name: children_interfaces
616-
label: "Sub-interface(s)"
617-
peer: InterfaceSub
618-
optional: true
619-
cardinality: many
620-
kind: Attribute
621-
identifier: "interface__parent"
622-
direction: inbound
623-
description: "Sub-interfaces of the aggregated interface"
624-
order_weight: 1900
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
---
2+
# yaml-language-server: $schema=https://schema.infrahub.app/infrahub/schema/latest.json
3+
version: "1.0"
4+
5+
extensions:
6+
nodes:
7+
- kind: InterfacePhysical
8+
attributes:
9+
- name: breakout_capability
10+
kind: Boolean
11+
optional: false
12+
default_value: false
13+
description: "Indicates if the port supports breakout capability"
14+
relationships:
15+
- name: breakout_child_interfaces
16+
peer: InterfacePhysical
17+
label: "Breakout child interface(s)"
18+
optional: true
19+
cardinality: many
20+
kind: Attribute
21+
identifier: "physical__breakout"
22+
direction: outbound
23+
description: "Interfaces resulting from the breakout"
24+
order_weight: 1650
25+
- name: breakout_parent_interface
26+
peer: InterfacePhysical
27+
label: "Breakout parent interface"
28+
optional: true
29+
cardinality: one
30+
kind: Attribute
31+
identifier: "physical__breakout"
32+
direction: inbound
33+
description: "Interface from which breakout is created"
34+
order_weight: 1700

0 commit comments

Comments
 (0)