Closed mameijeiras closed 5 months ago
@mameijeiras
Veig que el JSON de splitters ha canviat al teu exemple...:
"elements":{
"splitters":[
{
"fibers_in":[
{
"number":0,
"id":799,
"name":"Splitter 1x2 - Port Downstream"
}
],
Suposo que has canviat el que fins ara era l'index
pel number
? Ho dic perquè això impactarà una mica, ja que hi ha varis canvis a fer si es vol canviar el nom del camp.
@mguellsegarra abans s'enviava el camp index
? No em sona... Si ha de fer la mateixa funció, et puc enviar el number
com a index
i llestos
@mguellsegarra abans s'enviava el camp
index
? No em sona... Si ha de fer la mateixa funció, et puc enviar elnumber
com aindex
i llestos
L'index
sempre s'enviava, almenys quan el component de fibra actualitzava el json que es guarda a l'ERP.
Hi ha algun canvi d'aquesta feature que afecti als splitters per això?
No. En principi als splitters els ports d'entrada tenen el number 0
i els de sortida el number 1
si no recordo malament. De totes maneres no crec que afecti massa ja que el JSON sempre arriba ordenat, és només per assegurar el cas dels Patch Panels que es pugui veure quina entrada correspon a cada sortida.
Hola @mguellsegarra, finalment hi ha canvis en la creació de Patch Panels i queda més simplificat. En lloc de fer servir els camps n_rows
i n_columns
es fa servir el "Nombre de ports simple" (n_ports_simple
):
Aquest valor representa el total de ports entre entrades i sortides, pel que a la pràctica equival 6 in_count
i 6 out_count
.
Per últim, els Patch Panels haurien de ser de color negre per distingir-se dels Splitters. Ho afegeixo al missatge principal de la issue.
Perfecte! Li faig una ullada el més aviat possible. Merci :)
Ja he actualitzat el post. Sobre aquest punt:
Com a novetats, ara cada "device" conté el seu model, ja sigui Splitter o Patch Panel. Els valors possibles a hores d'ara són:
('giscedata.network.fo.splitter', 'Splitter')
('giscedata.network.fo.patch.panel', 'Patch Panel')
Això ho faig bàsicament per simplificar la creació de nous elements i evitar duplicar codi específic dels splitters per als patch panels. La meva idea és fer el backend el més genèric possible per facilitar possibles nous tipus d'elements que s'afegeixin en un futur. No sé com veuries unificar el JSON i en lloc de separar splitters
i patch_panels
tenir únicament devices
i distingir-los pel camp model
. Així dintre d'un CTO tenim connexions i elements, i dintre d'aquests elements, cables i dispositius.
Ja em comentes què et sembla. Qualsevol dubte sobre això o sobre la resta em dius. Moltes gràcies!
@mameijeiras
1- Entenc que al JSON li falta el nivell pare de res
, és així, o ha cambiat?
2- Al JSON d'exemple no hi ha camps de id
que identifiqui splitters o patch panels, és normal?
2- El camp model
necessites que el retorni al JSON de l'editor? A nivell de UI no es fa servir.
Quins valors possibles pot tenir un patch panel a nivell d'entrades/sortides?
6, 12, 24, 48 ?
@mguellsegarra
ids
dels ports, com fins ara, que és la informació rellevant per connectar.model
és necessari per identificar des de l'ERP si s'està afegint un nou Patch Panel o un Splitter. També la idea és fer-ho el més genèric possible per si en un futur hi ha més tipus de "dispositius".Pel que fa a la mida dels Patch Panels, des de l'ERP no hi ha cap mena de limitació, ha de ser un nombre enter, però els valors amb què hem vist que treballen els nostres clients són: 12, 24, 36, 48 (nombre total de ports, això a nivell d'entrades/sortides és entre dos).
@mameijeiras
No, de cada Splitter o Patch Panel apareixen els ids dels ports, com fins ara, que és la informació rellevant per connectar.
Així doncs el JSON d'exemple hauria de tenir els id
's oi?
Sí, el camp model és necessari per identificar des de l'ERP si s'està afegint un nou Patch Panel o un Splitter. També la idea és fer-ho el més genèric possible per si en un futur hi ha més tipus de "dispositius".
Per identificar si és un patch panel o un splitter ho pots sapiguer sense aquest camp, ja que estan en dos arrays diferents de elements
: splitters
i patch_panels
. Més que res, perquè a l'hora d'afegir nous splitters o patch panels des de l'editor, hauria d'informar el camp model amb el valor corresponent, i això afegeix complexitat.
@mguellsegarra
Així doncs el JSON d'exemple hauria de tenir els
id
's oi?
Ja els té:
"patch_panels":[
{
"fibers_in":[
{
"number":1,
"id":913,
"name":"Patch Panel 2x3 - CTO A - Port Downstream 1"
},
{
"number":2,
"id":914,
"name":"Patch Panel 2x3 - CTO A - Port Downstream 2"
},
(...)
Per identificar si és un patch panel o un splitter ho pots sapiguer sense aquest camp, ja que estan en dos arrays diferents de
elements
:splitters
ipatch_panels
. Més que res, perquè a l'hora d'afegir nous splitters o patch panels des de l'editor, hauria d'informar el camp model amb el valor corresponent, i això afegeix complexitat.
Si és molt complicat, fes-ho de la manera que sigui més fàcil per tu i ja adapto el backend, cap problema. Però si s'afegeixen més elements diferents potser sí que s'hauria de plantejar unificar/simplificar el JSON.
Ja els té:
No veig quina id té el patch panel, ni quina id té l'splitter. No parlo dels id's de les fibres.
És que on posa fibers_in
són els ports d'entrada, realment no són fibres. Això és com està ara mateix funcionant amb els Splitters.
No m'explico bé segurament: Quin id
té l'splitter del teu JSON d'exemple, i quin id
té el patch panel?
és una informació que ara mateix no s'està enviant. Realment no fa falta, perquè només es poden eliminar splitters (o patch panels) si no s'han persistit, l'únic que modifica aquesta vista són les connexions i aquestes s'identifiquen amb l'id del port
En quin moment ha canviat això? És a dir, a nivell d'editor, des del primer dia que es contemplava que els splitters tinguessin id
, de fet, en tots els exemples de l'storybook hi consta l'id.
Sense id
, com es veu aquí, no hi ha forma de poder identificar els splitters els uns dels altres, veuràs que surten els dos seleccionats, perquè la id
no arriba.
@mguellsegarra la veritat que no ho sé, que jo recordi mai hi ha hagut id
, però cap problema en enviar-lo. Pensava que com s'enviaven com a objectes diferents dins de l'array ja era suficient per distingir-los els uns dels altres
@mameijeiras
Bones!
he pujat una nova build a alpha
, v3.0.0-alpha.50
Aquesta ja permet tenir patch panels, afegir-ne, eliminar-ne, i fer-hi connexions.
El que tinc apuntat, i crec que hauriem de parlar, és com abordar el tema de canviar l'ordre, ho vam comentar a la reunió, però no sé si heu pogut avançar amb el client, a veure quina seria la forma més còmode per ells.
Feu-hi una ullada, i ho comentem.
Només un dubte @mguellsegarra, perquè això funcioni les dades han d'arribar amb el nou format (https://github.com/gisce/fiber-diagram/issues/26) o com fins ara amb Patch Panels i Splitters per separat?
Només un dubte @mguellsegarra, perquè això funcioni les dades han d'arribar amb el nou format (#26) o com fins ara amb Patch Panels i Splitters per separat?
Com fins ara
Validat! :rocket: :raised_hands:
Només un apunt, faltaria canviar el literal del formulari quan es crea un Patch Panel:
Hauria de posar "Nombre de ports simple" o simplement "Number of ports".
Genial, he canviat els textos pel número de ports.
Vigent a v3.0.0-alpha.52 :=)
Validat! :rocket: Per part meva ja es podria integrar!
@mameijeiras genial!
Es pot traspassar a tots els entorns? Ho dic per si hi ha canvis als ERP's que s'hagin d'aplicar pel tema dels patch panels.
@mguellsegarra Es pot passar a tots els entorns, és compatible amb versions anteriors de l'ERP, l'únic que fins que no actualitzem l'ERP a tot arreu no podran treballar amb els Patch Panels, però sí seguir treballant amb Splitters i Cables com fins ara
@mguellsegarra Es pot passar a tots els entorns, és compatible amb versions anteriors de l'ERP, l'únic que fins que no actualitzem l'ERP a tot arreu no podran treballar amb els Patch Panels, però sí seguir treballant amb Splitters i Cables com fins ara
Ok, ho dic perquè en els entorns on no hi hagi l'ERP preparat pels patch panels, l'editor de fibra tindrà igualment les opcions per afegir un patch panel, però al guardar entenc que l'ERP no ho suportarà.
Si ho veieu bé, ho integro!
@mguellsegarra exacte, és així! Per mi endavant! @ecarreras
Endavant!
Traspassat! Vigent a v2.2.15
Descripció
Cal afegir un nou model de Patch Panel, que servirà per connectar fibres dintre d'un CTO de manera molt similar al que fa actualment l'Splitter. La particularitat del Patch Panel és que té el mateix nombre d'entrades que de sortides. Aquest nou model ja es troba disponible a l'entorn de Telecos (Telecomunicacions -> Fibra Òptica -> Manteniment -> Inventari de Patch Panels). Un exemple de definició del JSON de connexions és el següent, que és el que es troba al CTO A.
Exemple JSON amb Patch Panels
JSON connexions CTO A
``` { "connections":{ "fibers":[ { "fiber_out":903, "fiber_in":800 }, { "fiber_out":897, "fiber_in":4 }, { "fiber_out":799, "fiber_in":18 } ] }, "elements":{ "splitters":[ { "fibers_in":[ { "number":0, "id":799, "name":"Splitter 1x2 - Port Downstream" } ], "fibers_out":[ { "number":1, "id":800, "name":"Splitter 1x2 - Port Upstream" }, { "number":1, "id":801, "name":"Splitter 1x2 - Port Upstream" } ], "model":[ "giscedata.network.fo.splitter", "Splitter" ] } ], "wires":[ { "tubes":[ { "color":"#FFFFFF", "fibers":[ { "color":"#00FF00", "id":2, "name":"Cable 1 - Tube 1 - Fiber 1" }, { "color":"#FF0000", "id":4, "name":"Cable 1 - Tube 1 - Fiber 2" } ], "id":1, "name":"Cable 1 - Tube 1" } ], "id":1, "disposition":"LEFT", "name":"Cable 1" }, { "tubes":[ { "color":"#FFFFFF", "fibers":[ { "color":"#00FF00", "id":6, "name":"Cable 2 - Tube 1 - Fiber 1" }, { "color":"#FF0000", "id":8, "name":"Cable 2 - Tube 1 - Fiber 2" }, { "color":"#0000FF", "id":10, "name":"Cable 2 - Tube 1 - Fiber 3" }, { "color":"#FFFF00", "id":12, "name":"Cable 2 - Tube 1 - Fiber 4" }, { "color":"#888888", "id":14, "name":"Cable 2 - Tube 1 - Fiber 5" }, { "color":"#8800FF", "id":16, "name":"Cable 2 - Tube 1 - Fiber 6" } ], "id":2, "name":"Cable 2 - Tube 1" }, { "color":"#FFFFFF", "fibers":[ { "color":"#00FF00", "id":18, "name":"Cable 2 - Tube 2 - Fiber 1" }, { "color":"#FF0000", "id":20, "name":"Cable 2 - Tube 2 - Fiber 2" }, { "color":"#0000FF", "id":22, "name":"Cable 2 - Tube 2 - Fiber 3" }, { "color":"#FFFF00", "id":24, "name":"Cable 2 - Tube 2 - Fiber 4" }, { "color":"#888888", "id":26, "name":"Cable 2 - Tube 2 - Fiber 5" }, { "color":"#8800FF", "id":28, "name":"Cable 2 - Tube 2 - Fiber 6" } ], "id":3, "name":"Cable 2 - Tube 2" }, { "color":"#FF0000", "fibers":[ { "color":"#00FF00", "id":30, "name":"Cable 2 - Tube 3 - Fiber 1" }, { "color":"#FF0000", "id":32, "name":"Cable 2 - Tube 3 - Fiber 2" }, { "color":"#0000FF", "id":34, "name":"Cable 2 - Tube 3 - Fiber 3" }, { "color":"#FFFF00", "id":36, "name":"Cable 2 - Tube 3 - Fiber 4" }, { "color":"#888888", "id":38, "name":"Cable 2 - Tube 3 - Fiber 5" }, { "color":"#8800FF", "id":40, "name":"Cable 2 - Tube 3 - Fiber 6" } ], "id":4, "name":"Cable 2 - Tube 3" }, { "color":"#FF0000", "fibers":[ { "color":"#00FF00", "id":42, "name":"Cable 2 - Tube 4 - Fiber 1" }, { "color":"#FF0000", "id":44, "name":"Cable 2 - Tube 4 - Fiber 2" }, { "color":"#0000FF", "id":46, "name":"Cable 2 - Tube 4 - Fiber 3" }, { "color":"#FFFF00", "id":48, "name":"Cable 2 - Tube 4 - Fiber 4" }, { "color":"#888888", "id":50, "name":"Cable 2 - Tube 4 - Fiber 5" }, { "color":"#8800FF", "id":52, "name":"Cable 2 - Tube 4 - Fiber 6" } ], "id":5, "name":"Cable 2 - Tube 4" } ], "id":2, "disposition":"LEFT", "name":"Cable 2" }, { "tubes":[ { "color":"#FFFFFF", "fibers":[ { "color":"#FFFFFF", "id":889, "name":"Cable 3 - Tube 1 - Fiber 1" }, { "color":"#FFFFFF", "id":891, "name":"Cable 3 - Tube 1 - Fiber 2" }, { "color":"#FF0000", "id":893, "name":"Cable 3 - Tube 1 - Fiber 3" }, { "color":"#FF0000", "id":895, "name":"Cable 3 - Tube 1 - Fiber 4" }, { "color":"#0000FF", "id":897, "name":"Cable 3 - Tube 1 - Fiber 5" }, { "color":"#0000FF", "id":899, "name":"Cable 3 - Tube 1 - Fiber 6" } ], "id":71, "name":"Cable 3 - Tube 1" }, { "color":"#000000", "fibers":[ { "color":"#FFFFFF", "id":901, "name":"Cable 3 - Tube 2 - Fiber 1" }, { "color":"#FFFFFF", "id":903, "name":"Cable 3 - Tube 2 - Fiber 2" }, { "color":"#FF0000", "id":905, "name":"Cable 3 - Tube 2 - Fiber 3" }, { "color":"#FF0000", "id":907, "name":"Cable 3 - Tube 2 - Fiber 4" }, { "color":"#0000FF", "id":909, "name":"Cable 3 - Tube 2 - Fiber 5" }, { "color":"#0000FF", "id":911, "name":"Cable 3 - Tube 2 - Fiber 6" } ], "id":72, "name":"Cable 3 - Tube 2" } ], "id":3, "disposition":"RIGHT", "name":"Cable 3" } ], "patch_panels":[ { "fibers_in":[ { "number":1, "id":913, "name":"Patch Panel 2x3 - CTO A - Port Downstream 1" }, { "number":2, "id":914, "name":"Patch Panel 2x3 - CTO A - Port Downstream 2" }, { "number":3, "id":915, "name":"Patch Panel 2x3 - CTO A - Port Downstream 3" }, { "number":4, "id":916, "name":"Patch Panel 2x3 - CTO A - Port Downstream 4" }, { "number":5, "id":917, "name":"Patch Panel 2x3 - CTO A - Port Downstream 5" }, { "number":6, "id":918, "name":"Patch Panel 2x3 - CTO A - Port Downstream 6" } ], "fibers_out":[ { "number":1, "id":919, "name":"Patch Panel 2x3 - CTO A - Port Upstream 1" }, { "number":2, "id":920, "name":"Patch Panel 2x3 - CTO A - Port Upstream 2" }, { "number":3, "id":921, "name":"Patch Panel 2x3 - CTO A - Port Upstream 3" }, { "number":4, "id":922, "name":"Patch Panel 2x3 - CTO A - Port Upstream 4" }, { "number":5, "id":923, "name":"Patch Panel 2x3 - CTO A - Port Upstream 5" }, { "number":6, "id":924, "name":"Patch Panel 2x3 - CTO A - Port Upstream 6" } ], "model":[ "giscedata.network.fo.patch.panel", "Patch Panel" ] } ] } } ```Especificacions
n_ports_simple
). Per exemple, un Patch Panel de 12 ports té 6 entrades i 6 sortides.model
, ja sigui Splitter o Patch Panel. Els valors possibles a hores d'ara són:('giscedata.network.fo.splitter', 'Splitter')
('giscedata.network.fo.patch.panel', 'Patch Panel')
number
, ja que en el cas dels Patch Panels és important a nivell topològic per saber amb quina sortida està relacionada cada entrada.PRs relacionades ERP