From 390e60860e24ace17282f2d7ea410ca13e2de330 Mon Sep 17 00:00:00 2001 From: Virgil Date: Tue, 31 Mar 2026 05:08:09 +0000 Subject: [PATCH] refactor(node): remove legacy AX aliases Co-Authored-By: Virgil --- node/bench_test.go | 4 +-- node/controller.go | 15 ---------- node/controller_test.go | 64 ++++++++++++++++++++-------------------- node/identity.go | 5 ---- node/identity_test.go | 18 +++++------ node/integration_test.go | 50 +++++++++++++++---------------- node/peer.go | 25 ---------------- node/peer_test.go | 56 +++++++++++++++++------------------ node/protocol.go | 5 ---- node/protocol_test.go | 10 +++---- node/transport.go | 10 ------- node/transport_test.go | 50 +++++++++++++++---------------- node/worker_test.go | 42 +++++++++++++------------- 13 files changed, 147 insertions(+), 207 deletions(-) diff --git a/node/bench_test.go b/node/bench_test.go index f5b0518..b6872b8 100644 --- a/node/bench_test.go +++ b/node/bench_test.go @@ -36,7 +36,7 @@ func BenchmarkDeriveSharedSecret(b *testing.B) { nm2, _ := NewNodeManagerFromPaths(testJoinPath(dir2, "k"), testJoinPath(dir2, "n")) nm2.GenerateIdentity("node2", RoleDual) - peerPubKey := nm2.Identity().PublicKey + peerPubKey := nm2.GetIdentity().PublicKey b.ReportAllocs() b.ResetTimer() @@ -151,7 +151,7 @@ func BenchmarkSMSGEncryptDecrypt(b *testing.B) { nm2, _ := NewNodeManagerFromPaths(testJoinPath(dir2, "k"), testJoinPath(dir2, "n")) nm2.GenerateIdentity("node2", RoleDual) - sharedSecret, _ := nm1.DeriveSharedSecret(nm2.Identity().PublicKey) + sharedSecret, _ := nm1.DeriveSharedSecret(nm2.GetIdentity().PublicKey) password := base64.StdEncoding.EncodeToString(sharedSecret) // Prepare a message to encrypt diff --git a/node/controller.go b/node/controller.go index 3a72e4c..2bec4d5 100644 --- a/node/controller.go +++ b/node/controller.go @@ -146,11 +146,6 @@ func (c *Controller) GetRemoteStats(peerID string) (*StatsPayload, error) { return &stats, nil } -// RemoteStats is a deprecated compatibility alias for GetRemoteStats. -func (c *Controller) RemoteStats(peerID string) (*StatsPayload, error) { - return c.GetRemoteStats(peerID) -} - // StartRemoteMiner requests a remote peer to start a miner with a given profile. // // err := controller.StartRemoteMiner("worker-1", "xmrig", "profile-1", nil) @@ -259,11 +254,6 @@ func (c *Controller) GetRemoteLogs(peerID, minerName string, lines int) ([]strin return logs.Lines, nil } -// RemoteLogs is a deprecated compatibility alias for GetRemoteLogs. -func (c *Controller) RemoteLogs(peerID, minerName string, lines int) ([]string, error) { - return c.GetRemoteLogs(peerID, minerName, lines) -} - // GetAllStats fetches stats from all connected peers. // // statsByPeerID := controller.GetAllStats() @@ -295,11 +285,6 @@ func (c *Controller) GetAllStats() map[string]*StatsPayload { return results } -// AllStats is a deprecated compatibility alias for GetAllStats. -func (c *Controller) AllStats() map[string]*StatsPayload { - return c.GetAllStats() -} - // PingPeer sends a ping to a peer and refreshes that peer's metrics. // // rttMS, err := controller.PingPeer("worker-1") diff --git a/node/controller_test.go b/node/controller_test.go index 03b121e..aa6ede8 100644 --- a/node/controller_test.go +++ b/node/controller_test.go @@ -75,7 +75,7 @@ func makeWorkerServer(t *testing.T) (*NodeManager, string, *Transport) { func TestController_RequestResponseCorrelation_Good(t *testing.T) { controller, _, tp := setupControllerPair(t) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID // Send a ping request via the controller; the server-side worker // replies with MessagePong, setting ReplyTo to the original message ID. @@ -97,8 +97,8 @@ func TestController_RequestTimeout_Bad(t *testing.T) { tp.connectClient(t) time.Sleep(50 * time.Millisecond) - serverID := tp.ServerNode.Identity().ID - clientID := tp.ClientNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID + clientID := tp.ClientNode.GetIdentity().ID // Use sendRequest directly with a short deadline (PingPeer uses 5s internally). msg, err := NewMessage(MessagePing, clientID, serverID, PingPayload{ @@ -126,7 +126,7 @@ func TestController_AutoConnect_Good(t *testing.T) { controller := NewController(tp.ClientNode, tp.ClientReg, tp.Client) // Add the server peer to the client registry so auto-connect can resolve it. - serverIdentity := tp.ServerNode.Identity() + serverIdentity := tp.ServerNode.GetIdentity() peer := &Peer{ ID: serverIdentity.ID, Name: "server", @@ -159,7 +159,7 @@ func TestController_AllStats_Good(t *testing.T) { for i := range numWorkers { nm, addr, _ := makeWorkerServer(t) - wID := nm.Identity().ID + wID := nm.GetIdentity().ID workerIDs[i] = wID peer := &Peer{ @@ -179,7 +179,7 @@ func TestController_AllStats_Good(t *testing.T) { controller := NewController(controllerNM, controllerReg, controllerTransport) // AllStats fetches stats from all connected peers in parallel. - stats := controller.AllStats() + stats := controller.GetAllStats() assert.Len(t, stats, numWorkers, "should get stats from all connected workers") for _, wID := range workerIDs { @@ -194,10 +194,10 @@ func TestController_AllStats_Good(t *testing.T) { func TestController_PingPeerRTT_Good(t *testing.T) { controller, _, tp := setupControllerPair(t) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID // Record initial peer metrics. - peerBefore := tp.ClientReg.Peer(serverID) + peerBefore := tp.ClientReg.GetPeer(serverID) require.NotNil(t, peerBefore, "server peer should exist in the client registry") initialPingMS := peerBefore.PingMS @@ -208,7 +208,7 @@ func TestController_PingPeerRTT_Good(t *testing.T) { assert.Less(t, rtt, 1000.0, "RTT on loopback should be well under 1000ms") // Verify the peer registry was updated with the measured latency. - peerAfter := tp.ClientReg.Peer(serverID) + peerAfter := tp.ClientReg.GetPeer(serverID) require.NotNil(t, peerAfter, "server peer should still exist after ping") assert.NotEqual(t, initialPingMS, peerAfter.PingMS, "PingMS should be updated after a successful ping") @@ -228,7 +228,7 @@ func TestController_ConcurrentRequests_Ugly(t *testing.T) { for i := range numPeers { nm, addr, _ := makeWorkerServer(t) - pID := nm.Identity().ID + pID := nm.GetIdentity().ID peerIDs[i] = pID peer := &Peer{ @@ -279,8 +279,8 @@ func TestController_DeadPeerCleanup_Good(t *testing.T) { tp.connectClient(t) time.Sleep(50 * time.Millisecond) - serverID := tp.ServerNode.Identity().ID - clientID := tp.ClientNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID + clientID := tp.ClientNode.GetIdentity().ID // Fire off a request that will time out. msg, err := NewMessage(MessagePing, clientID, serverID, PingPayload{ @@ -308,7 +308,7 @@ func TestController_DeadPeerCleanup_Good(t *testing.T) { func TestController_MultipleSequentialPings_Good(t *testing.T) { // Ensures sequential requests to the same peer are correctly correlated. controller, _, tp := setupControllerPair(t) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID for i := range 5 { rtt, err := controller.PingPeer(serverID) @@ -321,7 +321,7 @@ func TestController_ConcurrentRequestsSamePeer_Ugly(t *testing.T) { // Multiple goroutines sending requests to the SAME peer simultaneously. // Tests concurrent pending-map insertions/deletions under contention. controller, _, tp := setupControllerPair(t) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID const goroutines = 10 var wg sync.WaitGroup @@ -343,9 +343,9 @@ func TestController_ConcurrentRequestsSamePeer_Ugly(t *testing.T) { func TestController_RemoteStats_Good(t *testing.T) { controller, _, tp := setupControllerPair(t) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID - stats, err := controller.RemoteStats(serverID) + stats, err := controller.GetRemoteStats(serverID) require.NoError(t, err, "RemoteStats should succeed") require.NotNil(t, stats) @@ -366,7 +366,7 @@ func TestController_ConnectToPeerUnknown_Bad(t *testing.T) { func TestController_DisconnectFromPeer_Good(t *testing.T) { controller, _, tp := setupControllerPair(t) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID assert.Equal(t, 1, tp.Client.ConnectedPeerCount(), "should have 1 connection") @@ -387,7 +387,7 @@ func TestController_SendRequestPeerNotFound_Bad(t *testing.T) { tp := setupTestTransportPair(t) controller := NewController(tp.ClientNode, tp.ClientReg, tp.Client) - clientID := tp.ClientNode.Identity().ID + clientID := tp.ClientNode.GetIdentity().ID msg, err := NewMessage(MessagePing, clientID, "ghost-peer", PingPayload{ SentAt: time.Now().UnixMilli(), }) @@ -530,7 +530,7 @@ func (m *mockMinerFull) ConsoleHistory(lines int) []string { return m.GetConsole func TestController_StartRemoteMiner_Good(t *testing.T) { controller, _, tp := setupControllerPairWithMiner(t) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID configOverride := RawMessage(`{"pool":"pool.example.com:3333"}`) err := controller.StartRemoteMiner(serverID, "xmrig", "profile-1", configOverride) @@ -539,7 +539,7 @@ func TestController_StartRemoteMiner_Good(t *testing.T) { func TestController_StartRemoteMiner_WithConfig_Good(t *testing.T) { controller, _, tp := setupControllerPairWithMiner(t) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID configOverride := RawMessage(`{"pool":"custom-pool:3333","threads":4}`) err := controller.StartRemoteMiner(serverID, "xmrig", "", configOverride) @@ -548,7 +548,7 @@ func TestController_StartRemoteMiner_WithConfig_Good(t *testing.T) { func TestController_StartRemoteMiner_EmptyType_Bad(t *testing.T) { controller, _, tp := setupControllerPairWithMiner(t) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID err := controller.StartRemoteMiner(serverID, "", "profile-1", nil) require.Error(t, err, "StartRemoteMiner with empty miner type should fail") @@ -572,7 +572,7 @@ func TestController_StartRemoteMiner_NoIdentity_Bad(t *testing.T) { func TestController_StopRemoteMiner_Good(t *testing.T) { controller, _, tp := setupControllerPairWithMiner(t) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID err := controller.StopRemoteMiner(serverID, "running-miner") require.NoError(t, err, "StopRemoteMiner should succeed for existing miner") @@ -580,7 +580,7 @@ func TestController_StopRemoteMiner_Good(t *testing.T) { func TestController_StopRemoteMiner_NotFound_Bad(t *testing.T) { controller, _, tp := setupControllerPairWithMiner(t) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID err := controller.StopRemoteMiner(serverID, "non-existent-miner") require.Error(t, err, "StopRemoteMiner should fail for non-existent miner") @@ -601,9 +601,9 @@ func TestController_StopRemoteMiner_NoIdentity_Bad(t *testing.T) { func TestController_RemoteLogs_Good(t *testing.T) { controller, _, tp := setupControllerPairWithMiner(t) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID - lines, err := controller.RemoteLogs(serverID, "running-miner", 10) + lines, err := controller.GetRemoteLogs(serverID, "running-miner", 10) require.NoError(t, err, "RemoteLogs should succeed") require.NotNil(t, lines) assert.Len(t, lines, 3, "should return all 3 console history lines") @@ -612,9 +612,9 @@ func TestController_RemoteLogs_Good(t *testing.T) { func TestController_RemoteLogs_LimitedLines_Good(t *testing.T) { controller, _, tp := setupControllerPairWithMiner(t) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID - lines, err := controller.RemoteLogs(serverID, "running-miner", 1) + lines, err := controller.GetRemoteLogs(serverID, "running-miner", 1) require.NoError(t, err, "RemoteLogs with limited lines should succeed") assert.Len(t, lines, 1, "should return only 1 line") } @@ -627,16 +627,16 @@ func TestController_RemoteLogs_NoIdentity_Bad(t *testing.T) { controller := NewController(nmNoID, tp.ClientReg, tp.Client) - _, err = controller.RemoteLogs("some-peer", "any-miner", 10) + _, err = controller.GetRemoteLogs("some-peer", "any-miner", 10) require.Error(t, err) assert.Contains(t, err.Error(), "identity not initialized") } func TestController_RemoteStats_WithMiners_Good(t *testing.T) { controller, _, tp := setupControllerPairWithMiner(t) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID - stats, err := controller.RemoteStats(serverID) + stats, err := controller.GetRemoteStats(serverID) require.NoError(t, err, "RemoteStats should succeed") require.NotNil(t, stats) assert.NotEmpty(t, stats.NodeID) @@ -654,7 +654,7 @@ func TestController_RemoteStats_NoIdentity_Bad(t *testing.T) { controller := NewController(nmNoID, tp.ClientReg, tp.Client) - _, err = controller.RemoteStats("some-peer") + _, err = controller.GetRemoteStats("some-peer") require.Error(t, err) assert.Contains(t, err.Error(), "identity not initialized") } @@ -668,7 +668,7 @@ func TestController_ConnectToPeer_Success_Good(t *testing.T) { controller := NewController(tp.ClientNode, tp.ClientReg, tp.Client) // Add the server peer to the client registry. - serverIdentity := tp.ServerNode.Identity() + serverIdentity := tp.ServerNode.GetIdentity() peer := &Peer{ ID: serverIdentity.ID, Name: "server", diff --git a/node/identity.go b/node/identity.go index 4acdd74..fc2aa2d 100644 --- a/node/identity.go +++ b/node/identity.go @@ -147,11 +147,6 @@ func (n *NodeManager) GetIdentity() *NodeIdentity { return &identity } -// Identity is a deprecated compatibility alias for GetIdentity. -func (n *NodeManager) Identity() *NodeIdentity { - return n.GetIdentity() -} - // GenerateIdentity writes a new node identity for the given name and role. // // err := nodeManager.GenerateIdentity("worker-1", RoleWorker) diff --git a/node/identity_test.go b/node/identity_test.go index d4be4cb..f72d8ef 100644 --- a/node/identity_test.go +++ b/node/identity_test.go @@ -35,7 +35,7 @@ func TestIdentity_NodeIdentity_Good(t *testing.T) { t.Error("node manager should have identity after generation") } - identity := nm.Identity() + identity := nm.GetIdentity() if identity == nil { t.Fatal("identity should not be nil") } @@ -72,8 +72,8 @@ func TestIdentity_NodeIdentity_Good(t *testing.T) { t.Fatalf("failed to generate identity: %v", err) } - originalID := nm1.Identity().ID - originalPubKey := nm1.Identity().PublicKey + originalID := nm1.GetIdentity().ID + originalPubKey := nm1.GetIdentity().PublicKey // Create a new manager - should load existing identity nm2, err := NewNodeManagerFromPaths(keyPath, configPath) @@ -85,7 +85,7 @@ func TestIdentity_NodeIdentity_Good(t *testing.T) { t.Error("second node manager should have loaded existing identity") } - identity := nm2.Identity() + identity := nm2.GetIdentity() if identity.ID != originalID { t.Errorf("expected ID '%s', got '%s'", originalID, identity.ID) } @@ -121,12 +121,12 @@ func TestIdentity_NodeIdentity_Good(t *testing.T) { } // Derive shared secrets - should be identical - secret1, err := nm1.DeriveSharedSecret(nm2.Identity().PublicKey) + secret1, err := nm1.DeriveSharedSecret(nm2.GetIdentity().PublicKey) if err != nil { t.Fatalf("failed to derive shared secret from node 1: %v", err) } - secret2, err := nm2.DeriveSharedSecret(nm1.Identity().PublicKey) + secret2, err := nm2.DeriveSharedSecret(nm1.GetIdentity().PublicKey) if err != nil { t.Fatalf("failed to derive shared secret from node 2: %v", err) } @@ -315,8 +315,8 @@ func TestIdentity_ChallengeResponse_Good(t *testing.T) { } // Both derive the same shared secret - secret1, _ := nm1.DeriveSharedSecret(nm2.Identity().PublicKey) - secret2, _ := nm2.DeriveSharedSecret(nm1.Identity().PublicKey) + secret1, _ := nm1.DeriveSharedSecret(nm2.GetIdentity().PublicKey) + secret2, _ := nm2.DeriveSharedSecret(nm1.GetIdentity().PublicKey) // Responder signs challenge with their derived secret response := SignChallenge(challenge, secret2) @@ -341,7 +341,7 @@ func TestIdentity_NodeManager_DeriveSharedSecret_NoIdentity_Bad(t *testing.T) { func TestIdentity_NodeManager_Identity_NilWhenNoIdentity_Bad(t *testing.T) { nm := newTestNodeManagerWithoutIdentity(t) - identity := nm.Identity() + identity := nm.GetIdentity() if identity != nil { t.Error("expected nil identity before generation") } diff --git a/node/integration_test.go b/node/integration_test.go index 9eadf12..f523457 100644 --- a/node/integration_test.go +++ b/node/integration_test.go @@ -34,8 +34,8 @@ func TestIntegration_FullNodeLifecycle_Good(t *testing.T) { controllerNM := newTestNodeManager(t, "integration-controller", RoleController) workerNM := newTestNodeManager(t, "integration-worker", RoleWorker) - controllerIdentity := controllerNM.Identity() - workerIdentity := workerNM.Identity() + controllerIdentity := controllerNM.GetIdentity() + workerIdentity := workerNM.GetIdentity() require.NotNil(t, controllerIdentity, "controller identity should be initialised") require.NotNil(t, workerIdentity, "worker identity should be initialised") assert.NotEmpty(t, controllerIdentity.ID, "controller ID should be non-empty") @@ -122,8 +122,8 @@ func TestIntegration_FullNodeLifecycle_Good(t *testing.T) { "worker should have 1 connected peer") // Verify the peer's real identity is stored. - serverPeerID := workerNM.Identity().ID - conn := controllerTransport.Connection(serverPeerID) + serverPeerID := workerNM.GetIdentity().ID + conn := controllerTransport.GetConnection(serverPeerID) require.NotNil(t, conn, "controller should hold a connection keyed by server's real ID") assert.Equal(t, "integration-worker", conn.Peer.Name) @@ -136,14 +136,14 @@ func TestIntegration_FullNodeLifecycle_Good(t *testing.T) { assert.Less(t, rtt, 1000.0, "RTT on loopback should be well under 1s") // Verify registry metrics were updated. - peerAfterPing := controllerReg.Peer(serverPeerID) + peerAfterPing := controllerReg.GetPeer(serverPeerID) require.NotNil(t, peerAfterPing) assert.Greater(t, peerAfterPing.PingMS, 0.0, "PingMS should be updated") // ---------------------------------------------------------------- // Step 5: Encrypted message exchange — RemoteStats // ---------------------------------------------------------------- - stats, err := controller.RemoteStats(serverPeerID) + stats, err := controller.GetRemoteStats(serverPeerID) require.NoError(t, err, "RemoteStats should succeed") require.NotNil(t, stats) assert.Equal(t, workerIdentity.ID, stats.NodeID) @@ -242,8 +242,8 @@ func TestIntegration_SharedSecretAgreement_Good(t *testing.T) { nodeA := newTestNodeManager(t, "secret-node-a", RoleDual) nodeB := newTestNodeManager(t, "secret-node-b", RoleDual) - pubKeyA := nodeA.Identity().PublicKey - pubKeyB := nodeB.Identity().PublicKey + pubKeyA := nodeA.GetIdentity().PublicKey + pubKeyB := nodeB.GetIdentity().PublicKey secretFromA, err := nodeA.DeriveSharedSecret(pubKeyB) require.NoError(t, err) @@ -260,7 +260,7 @@ func TestIntegration_SharedSecretAgreement_Good(t *testing.T) { // can send and receive encrypted messages after the handshake. func TestIntegration_TwoNodeBidirectionalMessages_Good(t *testing.T) { controller, _, tp := setupControllerPair(t) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID // Controller -> Worker: Ping rtt, err := controller.PingPeer(serverID) @@ -268,7 +268,7 @@ func TestIntegration_TwoNodeBidirectionalMessages_Good(t *testing.T) { assert.Greater(t, rtt, 0.0) // Controller -> Worker: GetStats - stats, err := controller.RemoteStats(serverID) + stats, err := controller.GetRemoteStats(serverID) require.NoError(t, err) require.NotNil(t, stats) assert.NotEmpty(t, stats.NodeID) @@ -294,7 +294,7 @@ func TestIntegration_MultiPeerTopology_Good(t *testing.T) { for i := range numWorkers { nm, addr, _ := makeWorkerServer(t) - wID := nm.Identity().ID + wID := nm.GetIdentity().ID workerIDs[i] = wID peer := &Peer{ @@ -335,7 +335,7 @@ func TestIntegration_MultiPeerTopology_Good(t *testing.T) { } // Fetch stats from all workers in parallel. - allStats := controller.AllStats() + allStats := controller.GetAllStats() assert.Len(t, allStats, numWorkers, "should get stats from all workers") } @@ -350,7 +350,7 @@ func TestIntegration_IdentityPersistenceAndReload_Good(t *testing.T) { require.NoError(t, err) require.NoError(t, nm1.GenerateIdentity("persistent-node", RoleDual)) - original := nm1.Identity() + original := nm1.GetIdentity() require.NotNil(t, original) // Reload from disk. @@ -358,7 +358,7 @@ func TestIntegration_IdentityPersistenceAndReload_Good(t *testing.T) { require.NoError(t, err) require.True(t, nm2.HasIdentity(), "identity should be loaded from disk") - reloaded := nm2.Identity() + reloaded := nm2.GetIdentity() require.NotNil(t, reloaded) assert.Equal(t, original.ID, reloaded.ID, "ID should persist") @@ -390,7 +390,7 @@ func stmfGenerateKeyPair(dir string) (string, error) { if err := nm.GenerateIdentity("temp-peer", RoleWorker); err != nil { return "", err } - return nm.Identity().PublicKey, nil + return nm.GetIdentity().PublicKey, nil } // TestIntegration_UEPSFullRoundTrip exercises a complete UEPS packet @@ -399,7 +399,7 @@ func TestIntegration_UEPSFullRoundTrip_Ugly(t *testing.T) { nodeA := newTestNodeManager(t, "ueps-node-a", RoleController) nodeB := newTestNodeManager(t, "ueps-node-b", RoleWorker) - bPubKey := nodeB.Identity().PublicKey + bPubKey := nodeB.GetIdentity().PublicKey sharedSecret, err := nodeA.DeriveSharedSecret(bPubKey) require.NoError(t, err, "shared secret derivation should succeed") require.Len(t, sharedSecret, 32, "shared secret should be 32 bytes (SHA-256)") @@ -414,7 +414,7 @@ func TestIntegration_UEPSFullRoundTrip_Ugly(t *testing.T) { require.NotEmpty(t, wireData) // Node B derives the same shared secret from A's public key. - aPubKey := nodeA.Identity().PublicKey + aPubKey := nodeA.GetIdentity().PublicKey sharedSecretB, err := nodeB.DeriveSharedSecret(aPubKey) require.NoError(t, err) assert.Equal(t, sharedSecret, sharedSecretB, @@ -450,7 +450,7 @@ func TestIntegration_UEPSIntegrityFailure_Bad(t *testing.T) { nodeA := newTestNodeManager(t, "integrity-a", RoleController) nodeB := newTestNodeManager(t, "integrity-b", RoleWorker) - bPubKey := nodeB.Identity().PublicKey + bPubKey := nodeB.GetIdentity().PublicKey sharedSecret, err := nodeA.DeriveSharedSecret(bPubKey) require.NoError(t, err) @@ -463,7 +463,7 @@ func TestIntegration_UEPSIntegrityFailure_Bad(t *testing.T) { copy(tampered, wireData) tampered[len(tampered)-1] ^= 0xFF - aPubKey := nodeA.Identity().PublicKey + aPubKey := nodeA.GetIdentity().PublicKey sharedSecretB, err := nodeB.DeriveSharedSecret(aPubKey) require.NoError(t, err) @@ -500,7 +500,7 @@ func TestIntegration_AllowlistHandshakeRejection_Bad(t *testing.T) { t.Cleanup(func() { controllerTransport.Stop() }) peer := &Peer{ - ID: workerNM.Identity().ID, + ID: workerNM.GetIdentity().ID, Name: "worker", Address: u.Host, Role: RoleWorker, @@ -522,7 +522,7 @@ func TestIntegration_AllowlistHandshakeAccepted_Good(t *testing.T) { controllerNM := newTestNodeManager(t, "allowed-controller", RoleController) controllerReg := newTestPeerRegistry(t) - workerReg.AllowPublicKey(controllerNM.Identity().PublicKey) + workerReg.AllowPublicKey(controllerNM.GetIdentity().PublicKey) workerTransport := NewTransport(workerNM, workerReg, DefaultTransportConfig()) worker := NewWorker(workerNM, workerTransport) @@ -542,7 +542,7 @@ func TestIntegration_AllowlistHandshakeAccepted_Good(t *testing.T) { t.Cleanup(func() { controllerTransport.Stop() }) peer := &Peer{ - ID: workerNM.Identity().ID, + ID: workerNM.GetIdentity().ID, Name: "worker", Address: u.Host, Role: RoleWorker, @@ -611,7 +611,7 @@ func TestIntegration_MessageSerialiseDeserialise_Good(t *testing.T) { tp := setupTestTransportPair(t) pc := tp.connectClient(t) - original, err := NewMessage(MessageStats, tp.ClientNode.Identity().ID, tp.ServerNode.Identity().ID, StatsPayload{ + original, err := NewMessage(MessageStats, tp.ClientNode.GetIdentity().ID, tp.ServerNode.GetIdentity().ID, StatsPayload{ NodeID: "test-node", NodeName: "test-name", Miners: []MinerStatsItem{ @@ -664,9 +664,9 @@ func TestIntegration_RemoteStats_EndToEnd_Good(t *testing.T) { tp.connectClient(t) time.Sleep(100 * time.Millisecond) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID - stats, err := controller.RemoteStats(serverID) + stats, err := controller.GetRemoteStats(serverID) require.NoError(t, err, "RemoteStats should succeed end-to-end") require.NotNil(t, stats) assert.Equal(t, serverID, stats.NodeID) diff --git a/node/peer.go b/node/peer.go index c17c55b..8d7458a 100644 --- a/node/peer.go +++ b/node/peer.go @@ -179,11 +179,6 @@ func (r *PeerRegistry) GetAuthMode() PeerAuthMode { return r.authMode } -// AuthMode is a deprecated compatibility alias for GetAuthMode. -func (r *PeerRegistry) AuthMode() PeerAuthMode { - return r.GetAuthMode() -} - // AllowPublicKey adds a public key to the allowlist. func (r *PeerRegistry) AllowPublicKey(publicKey string) { r.allowedPublicKeyMu.Lock() @@ -345,11 +340,6 @@ func (r *PeerRegistry) GetPeer(id string) *Peer { return &peerCopy } -// Peer is a deprecated compatibility alias for GetPeer. -func (r *PeerRegistry) Peer(id string) *Peer { - return r.GetPeer(id) -} - // ListPeers returns all registered peers. func (r *PeerRegistry) ListPeers() []*Peer { return slices.Collect(r.Peers()) @@ -431,11 +421,6 @@ func (r *PeerRegistry) SetConnected(id string, connected bool) { } } -// MarkConnected is a deprecated compatibility alias for SetConnected. -func (r *PeerRegistry) MarkConnected(id string, connected bool) { - r.SetConnected(id, connected) -} - // Score adjustment constants const ( ScoreSuccessIncrement = 1.0 // Increment for successful interaction @@ -526,11 +511,6 @@ func (r *PeerRegistry) GetPeersByScore() []*Peer { return peers } -// PeersSortedByScore is a deprecated compatibility alias for GetPeersByScore. -func (r *PeerRegistry) PeersSortedByScore() []*Peer { - return r.GetPeersByScore() -} - // PeersByScore returns an iterator over peers sorted by score (highest first). func (r *PeerRegistry) PeersByScore() iter.Seq[*Peer] { return func(yield func(*Peer) bool) { @@ -603,11 +583,6 @@ func (r *PeerRegistry) GetConnectedPeers() []*Peer { return slices.Collect(r.ConnectedPeers()) } -// ConnectedPeerList is a deprecated compatibility alias for GetConnectedPeers. -func (r *PeerRegistry) ConnectedPeerList() []*Peer { - return r.GetConnectedPeers() -} - // ConnectedPeers returns an iterator over all currently connected peers. // Each peer is a copy to prevent mutation. func (r *PeerRegistry) ConnectedPeers() iter.Seq[*Peer] { diff --git a/node/peer_test.go b/node/peer_test.go index e6799be..6a79c79 100644 --- a/node/peer_test.go +++ b/node/peer_test.go @@ -86,7 +86,7 @@ func TestPeer_Registry_Peer_Good(t *testing.T) { pr.AddPeer(peer) - retrieved := pr.Peer("get-test-peer") + retrieved := pr.GetPeer("get-test-peer") if retrieved == nil { t.Fatal("failed to retrieve peer") } @@ -96,7 +96,7 @@ func TestPeer_Registry_Peer_Good(t *testing.T) { } // Non-existent peer - nonExistent := pr.Peer("non-existent") + nonExistent := pr.GetPeer("non-existent") if nonExistent != nil { t.Error("expected nil for non-existent peer") } @@ -173,7 +173,7 @@ func TestPeer_Registry_UpdateMetrics_Good(t *testing.T) { t.Fatalf("failed to update metrics: %v", err) } - updated := pr.Peer("metrics-test") + updated := pr.GetPeer("metrics-test") if updated == nil { t.Fatal("expected peer to exist") } @@ -205,7 +205,7 @@ func TestPeer_Registry_UpdateScore_Good(t *testing.T) { t.Fatalf("failed to update score: %v", err) } - updated := pr.Peer("score-test") + updated := pr.GetPeer("score-test") if updated == nil { t.Fatal("expected peer to exist") } @@ -219,7 +219,7 @@ func TestPeer_Registry_UpdateScore_Good(t *testing.T) { t.Fatalf("failed to update score: %v", err) } - updated = pr.Peer("score-test") + updated = pr.GetPeer("score-test") if updated == nil { t.Fatal("expected peer to exist") } @@ -233,7 +233,7 @@ func TestPeer_Registry_UpdateScore_Good(t *testing.T) { t.Fatalf("failed to update score: %v", err) } - updated = pr.Peer("score-test") + updated = pr.GetPeer("score-test") if updated == nil { t.Fatal("expected peer to exist") } @@ -254,9 +254,9 @@ func TestPeer_Registry_MarkConnected_Good(t *testing.T) { pr.AddPeer(peer) - pr.MarkConnected("connect-test", true) + pr.SetConnected("connect-test", true) - updated := pr.Peer("connect-test") + updated := pr.GetPeer("connect-test") if updated == nil { t.Fatal("expected peer to exist") } @@ -267,8 +267,8 @@ func TestPeer_Registry_MarkConnected_Good(t *testing.T) { t.Error("LastSeen should be set when connected") } - pr.MarkConnected("connect-test", false) - updated = pr.Peer("connect-test") + pr.SetConnected("connect-test", false) + updated = pr.GetPeer("connect-test") if updated == nil { t.Fatal("expected peer to exist") } @@ -291,10 +291,10 @@ func TestPeer_Registry_ConnectedPeerList_Good(t *testing.T) { pr.AddPeer(p) } - pr.MarkConnected("conn-1", true) - pr.MarkConnected("conn-3", true) + pr.SetConnected("conn-1", true) + pr.SetConnected("conn-3", true) - connected := pr.ConnectedPeerList() + connected := pr.GetConnectedPeers() if len(connected) != 2 { t.Errorf("expected 2 connected peers, got %d", len(connected)) } @@ -382,7 +382,7 @@ func TestPeer_Registry_Persistence_Good(t *testing.T) { t.Errorf("expected 1 peer after reload, got %d", pr2.Count()) } - loaded := pr2.Peer("persist-test") + loaded := pr2.GetPeer("persist-test") if loaded == nil { t.Fatal("peer should exist after reload") } @@ -399,20 +399,20 @@ func TestPeer_Registry_AuthMode_Good(t *testing.T) { defer cleanup() // Default should be Open - if pr.AuthMode() != PeerAuthOpen { - t.Errorf("expected default auth mode to be Open, got %d", pr.AuthMode()) + if pr.GetAuthMode() != PeerAuthOpen { + t.Errorf("expected default auth mode to be Open, got %d", pr.GetAuthMode()) } // Set to Allowlist pr.SetAuthMode(PeerAuthAllowlist) - if pr.AuthMode() != PeerAuthAllowlist { - t.Errorf("expected auth mode to be Allowlist after setting, got %d", pr.AuthMode()) + if pr.GetAuthMode() != PeerAuthAllowlist { + t.Errorf("expected auth mode to be Allowlist after setting, got %d", pr.GetAuthMode()) } // Set back to Open pr.SetAuthMode(PeerAuthOpen) - if pr.AuthMode() != PeerAuthOpen { - t.Errorf("expected auth mode to be Open after resetting, got %d", pr.AuthMode()) + if pr.GetAuthMode() != PeerAuthOpen { + t.Errorf("expected auth mode to be Open after resetting, got %d", pr.GetAuthMode()) } } @@ -563,7 +563,7 @@ func TestPeer_Registry_ScoreRecording_Good(t *testing.T) { for range 5 { pr.RecordSuccess("score-record-test") } - updated := pr.Peer("score-record-test") + updated := pr.GetPeer("score-record-test") if updated.Score <= 50 { t.Errorf("score should increase after successes, got %f", updated.Score) } @@ -573,7 +573,7 @@ func TestPeer_Registry_ScoreRecording_Good(t *testing.T) { for range 3 { pr.RecordFailure("score-record-test") } - updated = pr.Peer("score-record-test") + updated = pr.GetPeer("score-record-test") if updated.Score >= initialScore { t.Errorf("score should decrease after failures, got %f (was %f)", updated.Score, initialScore) } @@ -581,7 +581,7 @@ func TestPeer_Registry_ScoreRecording_Good(t *testing.T) { // Record timeouts - score should decrease initialScore = updated.Score pr.RecordTimeout("score-record-test") - updated = pr.Peer("score-record-test") + updated = pr.GetPeer("score-record-test") if updated.Score >= initialScore { t.Errorf("score should decrease after timeout, got %f (was %f)", updated.Score, initialScore) } @@ -590,7 +590,7 @@ func TestPeer_Registry_ScoreRecording_Good(t *testing.T) { for range 100 { pr.RecordSuccess("score-record-test") } - updated = pr.Peer("score-record-test") + updated = pr.GetPeer("score-record-test") if updated.Score > ScoreMaximum { t.Errorf("score should be clamped to max %f, got %f", ScoreMaximum, updated.Score) } @@ -598,7 +598,7 @@ func TestPeer_Registry_ScoreRecording_Good(t *testing.T) { for range 100 { pr.RecordFailure("score-record-test") } - updated = pr.Peer("score-record-test") + updated = pr.GetPeer("score-record-test") if updated.Score < ScoreMinimum { t.Errorf("score should be clamped to min %f, got %f", ScoreMinimum, updated.Score) } @@ -619,7 +619,7 @@ func TestPeer_Registry_PeersSortedByScore_Good(t *testing.T) { pr.AddPeer(p) } - sorted := pr.PeersSortedByScore() + sorted := pr.GetPeersByScore() if len(sorted) != 3 { t.Fatalf("expected 3 peers, got %d", len(sorted)) } @@ -726,7 +726,7 @@ func TestPeer_Registry_UpdatePeer_Good(t *testing.T) { t.Fatalf("failed to update peer: %v", err) } - updated := pr.Peer("update-test") + updated := pr.GetPeer("update-test") if updated == nil { t.Fatal("expected peer to exist after update") } @@ -805,7 +805,7 @@ func TestPeer_Registry_MarkConnected_NonExistent_Bad(t *testing.T) { defer cleanup() // Should not panic for non-existent peer - pr.MarkConnected("ghost-peer", true) + pr.SetConnected("ghost-peer", true) } func TestPeer_Registry_Close_NoDirtyData_Ugly(t *testing.T) { diff --git a/node/protocol.go b/node/protocol.go index 1476294..bc11502 100644 --- a/node/protocol.go +++ b/node/protocol.go @@ -97,8 +97,3 @@ func GetProtocolErrorCode(err error) int { } return 0 } - -// ProtocolErrorCode is a deprecated compatibility alias for GetProtocolErrorCode. -func ProtocolErrorCode(err error) int { - return GetProtocolErrorCode(err) -} diff --git a/node/protocol_test.go b/node/protocol_test.go index d609d9f..5598c55 100644 --- a/node/protocol_test.go +++ b/node/protocol_test.go @@ -27,8 +27,8 @@ func TestProtocol_ResponseHandler_ValidateResponse_Good(t *testing.T) { t.Errorf("Expected ProtocolError, got %T", err) } - if ProtocolErrorCode(err) != ErrorCodeOperationFailed { - t.Errorf("Expected code %d, got %d", ErrorCodeOperationFailed, ProtocolErrorCode(err)) + if GetProtocolErrorCode(err) != ErrorCodeOperationFailed { + t.Errorf("Expected code %d, got %d", ErrorCodeOperationFailed, GetProtocolErrorCode(err)) } }) @@ -131,8 +131,8 @@ func TestProtocol_Error_Bad(t *testing.T) { t.Error("IsProtocolError should return true") } - if ProtocolErrorCode(err) != 1001 { - t.Errorf("Expected code 1001, got %d", ProtocolErrorCode(err)) + if GetProtocolErrorCode(err) != 1001 { + t.Errorf("Expected code 1001, got %d", GetProtocolErrorCode(err)) } } @@ -156,7 +156,7 @@ func TestProtocol_ConvenienceFunctions_Good(t *testing.T) { func TestProtocol_ProtocolErrorCode_NonProtocolError_Bad(t *testing.T) { err := core.NewError("regular error") - if ProtocolErrorCode(err) != 0 { + if GetProtocolErrorCode(err) != 0 { t.Error("Expected 0 for non-ProtocolError") } } diff --git a/node/transport.go b/node/transport.go index 4d2ec85..d92dc29 100644 --- a/node/transport.go +++ b/node/transport.go @@ -533,11 +533,6 @@ func (t *Transport) GetConnection(peerID string) *PeerConnection { return t.connections[peerID] } -// Connection is a deprecated compatibility alias for GetConnection. -func (t *Transport) Connection(peerID string) *PeerConnection { - return t.GetConnection(peerID) -} - // handleWSUpgrade handles incoming WebSocket connections. func (t *Transport) handleWSUpgrade(w http.ResponseWriter, r *http.Request) { userAgent := r.Header.Get("User-Agent") @@ -1085,8 +1080,3 @@ func (t *Transport) ConnectedPeerCount() int { defer t.mutex.RUnlock() return len(t.connections) } - -// ConnectedPeers is a deprecated compatibility alias for ConnectedPeerCount. -func (t *Transport) ConnectedPeers() int { - return t.ConnectedPeerCount() -} diff --git a/node/transport_test.go b/node/transport_test.go index 6416995..424da51 100644 --- a/node/transport_test.go +++ b/node/transport_test.go @@ -102,7 +102,7 @@ func (tp *testTransportPair) connectClient(t *testing.T) *PeerConnection { t.Helper() peer := &Peer{ - ID: tp.ServerNode.Identity().ID, + ID: tp.ServerNode.GetIdentity().ID, Name: "server", Address: tp.ServerAddr, Role: RoleWorker, @@ -227,8 +227,8 @@ func TestTransport_FullHandshake_Good(t *testing.T) { } // Verify peer identity was exchanged correctly - serverID := tp.ServerNode.Identity().ID - serverConn := tp.Client.Connection(serverID) + serverID := tp.ServerNode.GetIdentity().ID + serverConn := tp.Client.GetConnection(serverID) if serverConn == nil { t.Fatal("client should have connection to server by server ID") } @@ -267,7 +267,7 @@ func TestTransport_ConnectSendsAgentUserAgent_Good(t *testing.T) { serverAddr := u.Host peer := &Peer{ - ID: serverNM.Identity().ID, + ID: serverNM.GetIdentity().ID, Name: "server", Address: serverAddr, Role: RoleWorker, @@ -286,14 +286,14 @@ func TestTransport_ConnectSendsAgentUserAgent_Good(t *testing.T) { if !strings.HasPrefix(ua, agentUserAgentPrefix) { t.Fatalf("user-agent prefix: got %q, want prefix %q", ua, agentUserAgentPrefix) } - if !strings.Contains(ua, "id="+clientNM.Identity().ID) { + if !strings.Contains(ua, "id="+clientNM.GetIdentity().ID) { t.Fatalf("user-agent should include client identity, got %q", ua) } if pc.UserAgent != ua { t.Fatalf("client connection user-agent: got %q, want %q", pc.UserAgent, ua) } - serverConn := serverTransport.Connection(clientNM.Identity().ID) + serverConn := serverTransport.GetConnection(clientNM.GetIdentity().ID) if serverConn == nil { t.Fatal("server should retain the accepted connection") } @@ -313,7 +313,7 @@ func TestTransport_HandshakeRejectWrongVersion_Bad(t *testing.T) { } defer conn.Close() - clientIdentity := tp.ClientNode.Identity() + clientIdentity := tp.ClientNode.GetIdentity() payload := HandshakePayload{ Identity: *clientIdentity, Version: "99.99", // Unsupported @@ -351,7 +351,7 @@ func TestTransport_HandshakeRejectAllowlist_Bad(t *testing.T) { tp.ServerReg.SetAuthMode(PeerAuthAllowlist) peer := &Peer{ - ID: tp.ServerNode.Identity().ID, + ID: tp.ServerNode.GetIdentity().ID, Name: "server", Address: tp.ServerAddr, Role: RoleWorker, @@ -378,8 +378,8 @@ func TestTransport_EncryptedMessageRoundTrip_Ugly(t *testing.T) { pc := tp.connectClient(t) // Send an encrypted message from client to server - clientID := tp.ClientNode.Identity().ID - serverID := tp.ServerNode.Identity().ID + clientID := tp.ClientNode.GetIdentity().ID + serverID := tp.ServerNode.GetIdentity().ID sentMsg, _ := NewMessage(MessagePing, clientID, serverID, PingPayload{ SentAt: time.Now().UnixMilli(), }) @@ -420,8 +420,8 @@ func TestTransport_MessageDedup_Good(t *testing.T) { pc := tp.connectClient(t) - clientID := tp.ClientNode.Identity().ID - serverID := tp.ServerNode.Identity().ID + clientID := tp.ClientNode.GetIdentity().ID + serverID := tp.ServerNode.GetIdentity().ID msg, _ := NewMessage(MessagePing, clientID, serverID, PingPayload{SentAt: time.Now().UnixMilli()}) // Send the same message twice @@ -450,8 +450,8 @@ func TestTransport_RateLimiting_Good(t *testing.T) { pc := tp.connectClient(t) - clientID := tp.ClientNode.Identity().ID - serverID := tp.ServerNode.Identity().ID + clientID := tp.ClientNode.GetIdentity().ID + serverID := tp.ServerNode.GetIdentity().ID // Send 150 messages rapidly (rate limiter burst = 100) for range 150 { @@ -498,7 +498,7 @@ func TestTransport_MaxConnectionsEnforcement_Good(t *testing.T) { client1Transport := NewTransport(client1NM, client1Reg, DefaultTransportConfig()) t.Cleanup(func() { client1Transport.Stop() }) - peer1 := &Peer{ID: serverNM.Identity().ID, Name: "server", Address: serverAddr, Role: RoleWorker} + peer1 := &Peer{ID: serverNM.GetIdentity().ID, Name: "server", Address: serverAddr, Role: RoleWorker} client1Reg.AddPeer(peer1) _, err := client1Transport.Connect(peer1) @@ -515,7 +515,7 @@ func TestTransport_MaxConnectionsEnforcement_Good(t *testing.T) { client2Transport := NewTransport(client2NM, client2Reg, DefaultTransportConfig()) t.Cleanup(func() { client2Transport.Stop() }) - peer2 := &Peer{ID: serverNM.Identity().ID, Name: "server", Address: serverAddr, Role: RoleWorker} + peer2 := &Peer{ID: serverNM.GetIdentity().ID, Name: "server", Address: serverAddr, Role: RoleWorker} client2Reg.AddPeer(peer2) _, err = client2Transport.Connect(peer2) @@ -545,9 +545,9 @@ func TestTransport_KeepaliveTimeout_Bad(t *testing.T) { // Close the underlying WebSocket on the client side to simulate network failure. // The server's readLoop will detect the broken connection and clean up. - clientID := tp.ClientNode.Identity().ID - serverPeerID := tp.ServerNode.Identity().ID - clientConn := tp.Client.Connection(serverPeerID) + clientID := tp.ClientNode.GetIdentity().ID + serverPeerID := tp.ServerNode.GetIdentity().ID + clientConn := tp.Client.GetConnection(serverPeerID) if clientConn == nil { t.Fatal("client should have connection to server") } @@ -562,7 +562,7 @@ func TestTransport_KeepaliveTimeout_Bad(t *testing.T) { default: if tp.Server.ConnectedPeerCount() == 0 { // Verify registry updated - peer := tp.ServerReg.Peer(clientID) + peer := tp.ServerReg.GetPeer(clientID) if peer != nil && peer.Connected { t.Error("registry should show peer as disconnected") } @@ -618,8 +618,8 @@ func TestTransport_ConcurrentSends_Ugly(t *testing.T) { pc := tp.connectClient(t) - clientID := tp.ClientNode.Identity().ID - serverID := tp.ServerNode.Identity().ID + clientID := tp.ClientNode.GetIdentity().ID + serverID := tp.ServerNode.GetIdentity().ID // Spawn 10 goroutines each sending 5 messages concurrently const goroutines = 10 @@ -667,7 +667,7 @@ func TestTransport_Broadcast_Good(t *testing.T) { counter.Add(1) }) - wID := nm.Identity().ID + wID := nm.GetIdentity().ID peer := &Peer{ ID: wID, Name: "worker", @@ -685,7 +685,7 @@ func TestTransport_Broadcast_Good(t *testing.T) { time.Sleep(100 * time.Millisecond) // Broadcast a message from the controller - controllerID := controllerNM.Identity().ID + controllerID := controllerNM.GetIdentity().ID msg, _ := NewMessage(MessagePing, controllerID, "", PingPayload{ SentAt: time.Now().UnixMilli(), }) @@ -721,7 +721,7 @@ func TestTransport_BroadcastExcludesSender_Good(t *testing.T) { // The server has a connection to the client, but msg.From matches the client's // connection peer ID check, not the server's own ID. Let's verify sender exclusion // by broadcasting from the server with its own ID. - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID msg, _ := NewMessage(MessagePing, serverID, "", PingPayload{SentAt: time.Now().UnixMilli()}) // This broadcasts from server to all connected peers (the client). diff --git a/node/worker_test.go b/node/worker_test.go index 24b39fe..5915b33 100644 --- a/node/worker_test.go +++ b/node/worker_test.go @@ -131,7 +131,7 @@ func TestWorker_HandlePing_Good(t *testing.T) { worker.DeploymentDirectory = t.TempDir() // Create a ping message - identity := nm.Identity() + identity := nm.GetIdentity() if identity == nil { t.Fatal("expected identity to be generated") } @@ -192,7 +192,7 @@ func TestWorker_HandleStats_Good(t *testing.T) { worker.DeploymentDirectory = t.TempDir() // Create a stats request message. - identity := nm.Identity() + identity := nm.GetIdentity() if identity == nil { t.Fatal("expected identity to be generated") } @@ -252,7 +252,7 @@ func TestWorker_HandleStartMiner_NoManager_Bad(t *testing.T) { worker.DeploymentDirectory = t.TempDir() // Create a start_miner message - identity := nm.Identity() + identity := nm.GetIdentity() if identity == nil { t.Fatal("expected identity to be generated") } @@ -292,7 +292,7 @@ func TestWorker_HandleStopMiner_NoManager_Bad(t *testing.T) { worker.DeploymentDirectory = t.TempDir() // Create a stop_miner message - identity := nm.Identity() + identity := nm.GetIdentity() if identity == nil { t.Fatal("expected identity to be generated") } @@ -332,7 +332,7 @@ func TestWorker_HandleLogs_NoManager_Bad(t *testing.T) { worker.DeploymentDirectory = t.TempDir() // Create a logs request message. - identity := nm.Identity() + identity := nm.GetIdentity() if identity == nil { t.Fatal("expected identity to be generated") } @@ -372,7 +372,7 @@ func TestWorker_HandleDeploy_Profile_Good(t *testing.T) { worker.DeploymentDirectory = t.TempDir() // Create a deploy message for profile - identity := nm.Identity() + identity := nm.GetIdentity() if identity == nil { t.Fatal("expected identity to be generated") } @@ -416,7 +416,7 @@ func TestWorker_HandleDeploy_UnknownType_Bad(t *testing.T) { worker.DeploymentDirectory = t.TempDir() // Create a deploy message with unknown type - identity := nm.Identity() + identity := nm.GetIdentity() if identity == nil { t.Fatal("expected identity to be generated") } @@ -629,7 +629,7 @@ func TestWorker_HandleStartMiner_WithManager_Good(t *testing.T) { mmFull := &mockMinerManagerWithStart{} worker.SetMinerManager(mmFull) - identity := nm.Identity() + identity := nm.GetIdentity() t.Run("ConfigOverride", func(t *testing.T) { payload := StartMinerPayload{ @@ -788,7 +788,7 @@ func TestWorker_HandleStopMiner_WithManager_Good(t *testing.T) { transport := NewTransport(nm, pr, DefaultTransportConfig()) worker := NewWorker(nm, transport) worker.DeploymentDirectory = t.TempDir() - identity := nm.Identity() + identity := nm.GetIdentity() t.Run("Success", func(t *testing.T) { worker.SetMinerManager(&mockMinerManager{}) @@ -852,7 +852,7 @@ func TestWorker_HandleLogs_WithManager_Good(t *testing.T) { transport := NewTransport(nm, pr, DefaultTransportConfig()) worker := NewWorker(nm, transport) worker.DeploymentDirectory = t.TempDir() - identity := nm.Identity() + identity := nm.GetIdentity() t.Run("Success", func(t *testing.T) { mm := &mockMinerManager{ @@ -959,7 +959,7 @@ func TestWorker_HandleStats_WithMinerManager_Good(t *testing.T) { transport := NewTransport(nm, pr, DefaultTransportConfig()) worker := NewWorker(nm, transport) worker.DeploymentDirectory = t.TempDir() - identity := nm.Identity() + identity := nm.GetIdentity() // Set miner manager with miners that have real stats mm := &mockMinerManager{ @@ -1021,7 +1021,7 @@ func TestWorker_HandleMessage_UnknownType_Bad(t *testing.T) { worker := NewWorker(nm, transport) worker.DeploymentDirectory = t.TempDir() - identity := nm.Identity() + identity := nm.GetIdentity() msg, _ := NewMessage("unknown_type", "sender-id", identity.ID, nil) // HandleMessage with unknown type should return silently (no panic) @@ -1051,7 +1051,7 @@ func TestWorker_HandleDeploy_ProfileWithManager_Good(t *testing.T) { pm := &mockProfileManagerFull{profiles: make(map[string]any)} worker.SetProfileManager(pm) - identity := nm.Identity() + identity := nm.GetIdentity() // Create an unencrypted profile bundle for deploy profileJSON := []byte(`{"id": "deploy-test", "name": "Test Profile"}`) @@ -1104,7 +1104,7 @@ func TestWorker_HandleDeploy_ProfileSaveFails_Bad(t *testing.T) { worker.DeploymentDirectory = t.TempDir() worker.SetProfileManager(&mockProfileManagerFailing{}) - identity := nm.Identity() + identity := nm.GetIdentity() profileJSON := []byte(`{"id": "fail-test"}`) bundle, _ := CreateProfileBundleUnencrypted(profileJSON, "fail-test") @@ -1151,7 +1151,7 @@ func TestWorker_HandleDeploy_MinerBundle_Good(t *testing.T) { pm := &mockProfileManagerFull{profiles: make(map[string]any)} worker.SetProfileManager(pm) - identity := nm.Identity() + identity := nm.GetIdentity() tmpDir := t.TempDir() minerPath := testJoinPath(tmpDir, "test-miner") @@ -1213,7 +1213,7 @@ func TestWorker_HandleDeploy_FullBundle_Good(t *testing.T) { worker := NewWorker(nm, transport) worker.DeploymentDirectory = t.TempDir() - identity := nm.Identity() + identity := nm.GetIdentity() tmpDir := t.TempDir() minerPath := testJoinPath(tmpDir, "test-miner") @@ -1272,7 +1272,7 @@ func TestWorker_HandleDeploy_MinerBundle_ProfileManager_Good(t *testing.T) { // Set a failing profile manager to exercise the warn-and-continue path worker.SetProfileManager(&mockProfileManagerFailing{}) - identity := nm.Identity() + identity := nm.GetIdentity() tmpDir := t.TempDir() minerPath := testJoinPath(tmpDir, "test-miner") @@ -1321,7 +1321,7 @@ func TestWorker_HandleDeploy_InvalidPayload_Bad(t *testing.T) { transport := NewTransport(nm, pr, DefaultTransportConfig()) worker := NewWorker(nm, transport) worker.DeploymentDirectory = t.TempDir() - identity := nm.Identity() + identity := nm.GetIdentity() // Create a message with invalid payload msg, _ := NewMessage(MessageDeploy, "sender-id", identity.ID, "invalid-payload-not-struct") @@ -1366,7 +1366,7 @@ func TestWorker_HandleMessage_IntegrationViaWebSocket_Good(t *testing.T) { tp.connectClient(t) time.Sleep(50 * time.Millisecond) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID // Send start_miner which will fail because no manager is set. // The worker should send an error response via the connection. @@ -1405,9 +1405,9 @@ func TestWorker_HandleMessage_Stats_IntegrationViaWebSocket_Good(t *testing.T) { tp.connectClient(t) time.Sleep(50 * time.Millisecond) - serverID := tp.ServerNode.Identity().ID + serverID := tp.ServerNode.GetIdentity().ID - stats, err := controller.RemoteStats(serverID) + stats, err := controller.GetRemoteStats(serverID) if err != nil { t.Fatalf("RemoteStats failed: %v", err) }