From 9da08a1a9712eb1e0e085ce49c0f8f51c9702e46 Mon Sep 17 00:00:00 2001 From: mr Date: Mon, 9 Feb 2026 15:47:05 +0100 Subject: [PATCH] Nats Improve --- infrastructure/nats.go | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/infrastructure/nats.go b/infrastructure/nats.go index 5acda96..2e63eeb 100644 --- a/infrastructure/nats.go +++ b/infrastructure/nats.go @@ -6,10 +6,19 @@ import ( oclib "cloud.o-forge.io/core/oc-lib" "cloud.o-forge.io/core/oc-lib/config" + "cloud.o-forge.io/core/oc-lib/models/peer" "cloud.o-forge.io/core/oc-lib/models/resources" "cloud.o-forge.io/core/oc-lib/tools" ) +var ressourceCols = []oclib.LibDataEnum{ + oclib.LibDataEnum(oclib.COMPUTE_RESOURCE), + oclib.LibDataEnum(oclib.DATA_RESOURCE), + oclib.LibDataEnum(oclib.PROCESSING_RESOURCE), + oclib.LibDataEnum(oclib.STORAGE_RESOURCE), + oclib.LibDataEnum(oclib.WORKFLOW_RESOURCE), +} + var SearchStream = map[string]chan resources.ResourceInterface{} func EmitNATS(user string, message tools.PropalgationMessage) { @@ -51,6 +60,22 @@ func ListenNATS() { SearchStream[resp.User] <- p // TODO when do we update it in our catalog ? } }, + tools.CREATE_PEER: func(resp tools.NATSResponse) { + if resp.FromApp == config.GetAppName() { + return + } + var p peer.Peer + err := json.Unmarshal(resp.Payload, &p) + if err == nil && p.Relation == peer.BLACKLIST { + for _, col := range ressourceCols { + access := oclib.NewRequestAdmin(col, nil) + datas := access.Search(nil, p.UUID, false) + for _, data := range datas.Data { + access.DeleteOne(data.GetID()) + } + } + } + }, tools.CREATE_RESOURCE: func(resp tools.NATSResponse) { if resp.FromApp == config.GetAppName() { return