From 85a8857938f5b175ac48d2a955322e25154ada1d Mon Sep 17 00:00:00 2001 From: mr Date: Mon, 26 Jan 2026 12:34:04 +0100 Subject: [PATCH] oclib -> Generate Peer ID --- entrypoint.go | 21 +++++++++++++++++++++ models/resources/tests/resource_test.go | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) diff --git a/entrypoint.go b/entrypoint.go index 5b89858..a1721cf 100644 --- a/entrypoint.go +++ b/entrypoint.go @@ -6,6 +6,7 @@ import ( "errors" "fmt" "net/http" + "os" "strings" "runtime/debug" @@ -30,6 +31,7 @@ import ( "cloud.o-forge.io/core/oc-lib/tools" beego "github.com/beego/beego/v2/server/web" "github.com/beego/beego/v2/server/web/context" + "github.com/google/uuid" "github.com/goraz/onion" "github.com/rs/zerolog" ) @@ -60,6 +62,25 @@ const ( NATIVE_TOOL = tools.NATIVE_TOOL ) +func GenerateNodeID() (string, error) { + folderStatic := "/var/lib/opencloud-node" + if _, err := os.Stat(folderStatic); err == nil { + os.MkdirAll(folderStatic, 0644) + } + folderStatic += "/node_id" + if _, err := os.Stat(folderStatic); os.IsNotExist(err) { + hostname, err := os.Hostname() + if err != nil { + return "", err + } + id := uuid.NewSHA1(uuid.NameSpaceOID, []byte("oc-"+hostname)) + err = os.WriteFile(folderStatic, []byte(id.String()), 0644) + return id.String(), err + } + data, err := os.ReadFile(folderStatic) + return string(data), err +} + // will turn into standards api hostnames func (d LibDataEnum) API() string { return tools.DefaultAPI[d] diff --git a/models/resources/tests/resource_test.go b/models/resources/tests/resource_test.go index 8ab2b9b..945952f 100644 --- a/models/resources/tests/resource_test.go +++ b/models/resources/tests/resource_test.go @@ -36,7 +36,7 @@ type MockPartner struct { groups map[string][]string } -func (abs *MockPartner) RefineResourceByPartnership(peerID string) (resources.ResourceInstanceITF, bool) { +func (abs *MockPartner) RefineResourceByPartnership(peerID string) (resources.ResourcePartnerITF, bool) { return nil, false }