From d10b72cd96caa20489c99baef4527f7da9903d7c Mon Sep 17 00:00:00 2001 From: Guillaume Date: Thu, 10 Oct 2024 13:09:14 +0200 Subject: [PATCH 1/4] Feat: added lyon cluster map Signed-off-by: Guillaume --- web/ui/src/lib/clustersMap/campus/lyon.ts | 97 +++++++++++++++++++++++ 1 file changed, 97 insertions(+) create mode 100644 web/ui/src/lib/clustersMap/campus/lyon.ts diff --git a/web/ui/src/lib/clustersMap/campus/lyon.ts b/web/ui/src/lib/clustersMap/campus/lyon.ts new file mode 100644 index 00000000..f182fa78 --- /dev/null +++ b/web/ui/src/lib/clustersMap/campus/lyon.ts @@ -0,0 +1,97 @@ +import { Campus } from '../campus'; +import { Cluster } from '../cluster'; +import { ICampus } from '../types'; + +// +export class Lyon extends Campus implements ICampus { + emoji = (): string => '🇫🇷'; + + name = (): string => 'Lyon'; + + extractorRegexp = (): RegExp => + /(?(?\d+))(?(?\w))(?(?\d+))/i; + + clusters(): Cluster[] { + return [ + new Cluster({ + identifier: 'io-z1', + name: 'z1', + //prettier-ignore + map:[ + ['T:r1' , 'PW' , 'W:z1r1p4' , 'PW' , 'PW' , 'PW' , 'T:r1' ], + ['T:r2' , 'PW' , 'PW' , 'PW' , 'PW' , 'PW' , 'T:r2' ], + ['T:r3' , 'W:z1r3p5' , 'W:z1r3p4' , 'PW' , 'W:z1r3p2' , 'W:z1r3p1' , 'T:r3' ], + ['T:r4' , 'W:z1r4p5' , 'W:z1r4p4' , 'W:z1r4p3' , 'W:z1r4p2' , 'PW' , 'T:r4' ], + ['T:r5' , 'W:z1r5p5' , 'W:z1r5p4' , 'PW' , 'W:z1r5p2' , 'W:z1r5p1' , 'T:r5' ], + ['T:r6' , 'W:z1r6p5' , 'W:z1r6p4' , 'W:z1r6p3' , 'W:z1r6p2' , 'W:z1r6p1' , 'T:r6' ], + ['T:r7' , 'W:z1r7p5' , 'W:z1r7p4' , 'W:z1r7p3' , 'W:z1r7p2' , 'W:z1r7p1' , 'T:r7' ], + ['T:r8' , 'W:z1r8p5' , 'W:z1r8p4' , 'W:z1r8p3' , 'W:z1r8p2' , 'W:z1r8p1' , 'T:r8' ], + ['T:r9' , 'W:z1r9p5' , 'W:z1r9p4' , 'PW' , 'W:z1r9p2' , 'W:z1r9p1' , 'T:r9' ], + ['T:r10', 'W:z1r10p5', 'W:z1r10p4', 'W:z1r10p3', 'W:z1r10p2', 'W:z1r10p1', 'T:r10'], + ['T:r11', 'W:z1r11p5', 'W:z1r11p4', 'W:z1r11p3', 'W:z1r11p2', 'W:z1r11p1', 'T:r11'], + ['T:r12', 'W:z1r12p5', 'PW' , 'W:z1r12p3', 'PW' , 'W:z1r12p1', 'T:r12'], + ], + }), + new Cluster({ + identifier: 'io-z2', + name: 'z2', + //prettier-ignore + map:[ + ['T:r1' , 'W:z2r1p8' , 'W:z2r1p7' , 'PW' , 'PW' , 'PW' , 'PW' , 'PW' , 'PW' , 'T:r1' ], + ['T:r2' , 'W:z2r2p8' , 'W:z2r2p7' , 'W:z2r2p6' , 'W:z2r2p5' , 'W:z2r2p4' , 'W:z2r2p3' , 'W:z2r2p2' , 'W:z2r2p1' , 'T:r2' ], + ['T:r3' , 'W:z2r3p8' , 'W:z2r3p7' , 'W:z2r3p6' , 'W:z2r3p5' , 'W:z2r3p4' , 'W:z2r3p3' , 'W:z2r3p2' , 'W:z2r3p1' , 'T:r3' ], + ['T:r4' , 'W:z2r4p8' , 'W:z2r4p7' , 'W:z2r4p6' , 'W:z2r4p5' , 'W:z2r4p4' , 'W:z2r4p3' , 'W:z2r4p2' , 'W:z2r4p1' , 'T:r4' ], + ['T:r5' , 'W:z2r5p8' , 'W:z2r5p7' , 'W:z2r5p6' , 'W:z2r5p5' , 'PW' , 'W:z2r5p3' , 'W:z2r5p2' , 'W:z2r5p1' , 'T:r5' ], + ['T:r6' , 'W:z2r6p8' , 'W:z2r6p7' , 'W:z2r6p6' , 'W:z2r6p5' , 'W:z2r6p4' , 'W:z2r6p3' , 'W:z2r6p2' , 'W:z2r6p1' , 'T:r6' ], + ['T:r7' , 'PW' , 'PW' , 'W:z2r7p6' , 'PW' , 'W:z2r7p4' , 'PW' , 'PW' , 'PW' , 'T:r7' ], + ['T:r8' , 'W:z2r8p8' , 'W:z2r8p7' , 'W:z2r8p6' , 'W:z2r8p5' , 'W:z2r8p4' , 'W:z2r8p3' , 'W:z2r8p2' , 'PW' , 'T:r8' ], + ['T:r9' , 'W:z2r9p8' , 'W:z2r9p7' , 'W:z2r9p6' , 'W:z2r9p5' , 'PW' , 'W:z2r9p3' , 'W:z2r9p2' , 'W:z2r9p1' , 'T:r9' ], + ['T:r10', 'W:z2r10p8', 'W:z2r10p7', 'W:z2r10p6', 'W:z2r10p5', 'W:z2r10p4', 'PW' , 'W:z2r10p2', 'W:z2r10p1', 'T:r10'], + ['T:r11', null , 'PW' , 'W:z2r11p6', 'PW' , 'W:z2r11p4', 'PW' , 'W:z2r11p2', 'PW' , 'T:r11'], + ['T:r12', null , 'PW' , 'W:z2r12p6', 'PW' , 'W:z2r12p4', 'PW' , 'W:z2r12p2', 'PW' , 'T:r12'], + ], + }), + new Cluster({ + identifier: 'discovery-z3', + name: 'z3', + //prettier-ignore + map:[ + ['T:r1' , null , null , 'PW' , 'PW' , 'PW' , 'PW' , 'T:r1' ], + ['T:r2' , 'W:z3r2p6' , 'W:z3r2p5' , 'W:z3r2p4' , 'W:z3r2p3' , 'W:z3r2p2' , 'W:z3r2p1' , 'T:r2' ], + ['T:r3' , 'W:z3r3p6' , 'W:z3r3p5' , 'W:z3r3p4' , 'W:z3r3p3' , 'W:z3r3p2' , 'W:z3r3p1' , 'T:r3' ], + ['T:r4' , 'W:z3r4p6' , 'W:z3r4p5' , 'W:z3r4p4' , 'W:z3r4p3' , 'W:z3r4p2' , 'W:z3r4p1' , 'T:r4' ], + ['T:r5' , 'W:z3r5p6' , 'W:z3r5p5' , 'W:z3r5p4' , 'PW' , 'W:z3r5p2' , 'W:z3r5p1' , 'T:r5' ], + ['T:r6' , 'W:z3r6p6' , 'W:z3r6p5' , 'W:z3r6p4' , 'W:z3r6p3' , 'W:z3r6p2' , 'W:z3r6p1' , 'T:r6' ], + ['T:r7' , 'PW' , 'PW' , 'PW' , 'PW' , 'PW' , 'PW' , 'T:r7' ], + ['T:r8' , 'W:z3r8p6' , 'W:z3r8p5' , 'W:z3r8p4' , 'W:z3r8p3' , 'W:z3r8p2' , 'W:z3r8p1' , 'T:r8' ], + ['T:r9' , 'W:z3r9p6' , 'W:z3r9p5' , 'W:z3r9p4' , 'PW' , 'W:z3r9p2' , 'W:z3r9p1' , 'T:r9' ], + ['T:r10', 'W:z3r10p6', 'PW' , 'PW' , 'W:z3r10p3', 'PW' , 'W:z3r10p1', 'T:r10'], + ['T:r11', 'PW' , 'W:z3r11p5', 'PW' , 'W:z3r11p3', 'PW' , 'W:z3r11p1', 'T:r11'], + ['T:r12', 'PW' , 'W:z3r12p5', 'PW' , 'W:z3r12p3', 'PW' , 'W:z3r12p1', 'T:r12'], + ['T:r13', null , null , null , 'W:z3r13p3', 'PW' , 'W:z3r13p1', 'T:r13'], + ], + }), + new Cluster({ + identifier: 'discovery-z4', + name: 'z4', + //prettier-ignore + map:[ + ['T:rx' , 'W:z4rxp7' , 'W:z4rxp6' , 'W:z4rxp5' , 'W:z4rxp4' , 'W:z4rxp3' , 'W:z4rxp2' , 'W:z4rxp1' , 'T:rx' ], + ['T:r1' , 'W:z4r1p7' , 'PW' , 'W:z4r1p5' , 'PW' , 'PW' , 'PW' , 'W:z4r1p1' , 'T:r1' ], + ['T:r2' , 'W:z4r2p7' , 'W:z4r2p6' , 'W:z4r2p5' , 'W:z4r2p4' , 'W:z4r2p3' , 'W:z4r2p2' , 'W:z4r2p1' , 'T:r2' ], + ['T:r3' , 'W:z4r3p7' , 'W:z4r3p6' , 'W:z4r3p5' , 'W:z4r3p4' , 'W:z4r3p3' , 'W:z4r3p2' , 'W:z4r3p1' , 'T:r3' ], + ['T:r4' , 'W:z4r4p7' , 'W:z4r4p6' , 'W:z4r4p5' , 'W:z4r4p4' , 'W:z4r4p3' , 'W:z4r4p2' , 'W:z4r4p1' , 'T:r4' ], + ['T:r5' , 'W:z4r5p7' , 'PW' , 'W:z4r5p5' , 'PW' , 'PW' , 'W:z4r5p2' , 'PW' , 'T:r5' ], + ['T:r6' , 'W:z4r6p7' , 'W:z4r6p6' , 'W:z4r6p5' , 'W:z4r6p4' , 'W:z4r6p3' , 'W:z4r6p2' , 'W:z4r6p1' , 'T:r6' ], + ['T:r7' , 'PW' , 'PW' , 'PW' , 'PW' , 'PW' , 'PW' , 'PW' , 'T:r7' ], + ['T:r8' , 'W:z4r8p7' , 'PW' , 'W:z4r8p5' , 'PW' , 'W:z4r8p3' , 'PW' , 'W:z4r8p1' , 'T:r8' ], + ['T:r9' , 'W:z4r9p7' , 'PW' , 'W:z4r9p5' , 'PW' , 'PW' , 'PW' , 'W:z4r9p1' , 'T:r9' ], + ['T:r10', 'W:z4r10p7', 'PW' , 'W:z4r10p5', 'PW' , 'W:z4r10p3', 'PW' , 'W:z4r10p1', 'T:r10'], + ['T:r11', 'W:z4r11p7', 'PW' , 'W:z4r11p5', 'PW' , 'W:z4r11p3', 'PW' , 'PW' , 'T:r11'], + ['T:r12', null , 'PW' , 'W:z4r12p5', 'PW' , 'W:z4r12p3', 'PW' , 'W:z4r12p1', 'T:r12'], + ['T:r13', null , 'PW' , 'W:z4r13p5', 'PW' , 'PW' , 'PW' , 'PW' , 'T:r13'], + ], + }), + ]; + } +} From d1a77b74f436db0b283ade393494671e1cbf4b32 Mon Sep 17 00:00:00 2001 From: Guillaume Date: Thu, 10 Oct 2024 13:10:39 +0200 Subject: [PATCH 2/4] Update types.generated.d.ts Signed-off-by: Guillaume --- web/ui/src/lib/clustersMap/types.generated.d.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/web/ui/src/lib/clustersMap/types.generated.d.ts b/web/ui/src/lib/clustersMap/types.generated.d.ts index 7fb11219..ea06ae14 100644 --- a/web/ui/src/lib/clustersMap/types.generated.d.ts +++ b/web/ui/src/lib/clustersMap/types.generated.d.ts @@ -10,6 +10,7 @@ export type CampusIdentifier = | 'angouleme' | 'helsinki' | 'lausanne' + | 'lyon' | 'madrid' | 'malaga' | 'mulhouse' From 3210d4df58ce5201affa8357bd19fc6462aa3373 Mon Sep 17 00:00:00 2001 From: Guillaume Date: Thu, 10 Oct 2024 13:11:14 +0200 Subject: [PATCH 3/4] Update campuses.generated.ts Signed-off-by: Guillaume --- web/ui/src/lib/clustersMap/campuses.generated.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/web/ui/src/lib/clustersMap/campuses.generated.ts b/web/ui/src/lib/clustersMap/campuses.generated.ts index 15468a7f..17568b64 100644 --- a/web/ui/src/lib/clustersMap/campuses.generated.ts +++ b/web/ui/src/lib/clustersMap/campuses.generated.ts @@ -7,6 +7,7 @@ import { CampusIdentifier } from './types.generated'; import { Angouleme } from './campus/angouleme'; import { Helsinki } from './campus/helsinki'; import { Lausanne } from './campus/lausanne'; +import { Lyon } from './campus/lyon'; import { Madrid } from './campus/madrid'; import { Malaga } from './campus/malaga'; import { Mulhouse } from './campus/mulhouse'; @@ -30,6 +31,7 @@ export const Campuses: Record = { angouleme: new Angouleme(), helsinki: new Helsinki(), lausanne: new Lausanne(), + lyon: new Lyon(), madrid: new Madrid(), malaga: new Malaga(), mulhouse: new Mulhouse(), From e750cc14d712823ad734068f346d5e6204aca024 Mon Sep 17 00:00:00 2001 From: Guillaume Date: Thu, 10 Oct 2024 13:58:35 +0200 Subject: [PATCH 4/4] Update web/ui/src/lib/clustersMap/campus/lyon.ts Co-authored-by: Atomys Signed-off-by: Guillaume --- web/ui/src/lib/clustersMap/campus/lyon.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/web/ui/src/lib/clustersMap/campus/lyon.ts b/web/ui/src/lib/clustersMap/campus/lyon.ts index f182fa78..872da94e 100644 --- a/web/ui/src/lib/clustersMap/campus/lyon.ts +++ b/web/ui/src/lib/clustersMap/campus/lyon.ts @@ -9,7 +9,7 @@ export class Lyon extends Campus implements ICampus { name = (): string => 'Lyon'; extractorRegexp = (): RegExp => - /(?(?\d+))(?(?\w))(?(?\d+))/i; + /(?z(?\d+))(?r(?\d+))(?p(?\d+))/i; clusters(): Cluster[] { return [