From 3c2de83ea725d0219c1ced57a181d666c6eddf7a Mon Sep 17 00:00:00 2001 From: Nikolay Edigaryev Date: Thu, 10 Apr 2025 22:15:13 +0200 Subject: [PATCH] Orchard Worker: don't forget to use localnetworkhelper in RPC and RPCv2 (#304) * Orchard Worker: don't forget to use localnetworkhelper in RPC and RPCv2 * Fix integration tests by not requiring an empty vm.StatusMessage --- internal/tests/integration_test.go | 3 --- internal/worker/rpc.go | 12 +++++++++++- internal/worker/rpcv2.go | 13 ++++++++++++- 3 files changed, 23 insertions(+), 5 deletions(-) diff --git a/internal/tests/integration_test.go b/internal/tests/integration_test.go index 9b2333a..152447f 100644 --- a/internal/tests/integration_test.go +++ b/internal/tests/integration_test.go @@ -61,7 +61,6 @@ func TestSingleVM(t *testing.T) { if err != nil { t.Fatal(err) } - assert.Empty(t, runningVM.StatusMessage) assert.Equal(t, v1.VMStatusRunning, runningVM.Status) assert.True(t, wait.Wait(2*time.Minute, func() bool { logLines, err := devClient.VMs().Logs(context.Background(), "test-vm") @@ -162,7 +161,6 @@ func TestPortForwarding(t *testing.T) { vm, err := devClient.VMs().Get(ctx, "test-vm") require.NoError(t, err) require.Equal(t, v1.VMStatusRunning, vm.Status) - require.Empty(t, vm.StatusMessage) t.Logf("Waiting for the VM to start, current status: %s", vm.Status) @@ -407,7 +405,6 @@ func TestHostDirs(t *testing.T) { return vm.Status == v1.VMStatusRunning || vm.Status == v1.VMStatusFailed }), "failed to start a VM") - require.Empty(t, vm.StatusMessage) require.Equal(t, v1.VMStatusRunning, vm.Status) var logLines []string diff --git a/internal/worker/rpc.go b/internal/worker/rpc.go index d04750b..2ed0b62 100644 --- a/internal/worker/rpc.go +++ b/internal/worker/rpc.go @@ -109,7 +109,17 @@ func (worker *Worker) handlePortForward( } // Connect to the VM's port - vmConn, err := net.Dial("tcp", fmt.Sprintf("%s:%d", host, portForwardAction.Port)) + var vmConn net.Conn + + if worker.localNetworkHelper != nil { + vmConn, err = worker.localNetworkHelper.PrivilegedDialContext(ctx, "tcp", + fmt.Sprintf("%s:%d", host, portForwardAction.Port)) + } else { + dialer := net.Dialer{} + + vmConn, err = dialer.DialContext(ctx, "tcp", + fmt.Sprintf("%s:%d", host, portForwardAction.Port)) + } if err != nil { worker.logger.Warnf("port forwarding failed: failed to connect to the VM: %v", err) diff --git a/internal/worker/rpcv2.go b/internal/worker/rpcv2.go index 0bfb397..453ec4b 100644 --- a/internal/worker/rpcv2.go +++ b/internal/worker/rpcv2.go @@ -89,7 +89,18 @@ func (worker *Worker) handlePortForwardV2Inner( } // Connect to the VM's port - vmConn, err := net.Dial("tcp", fmt.Sprintf("%s:%d", host, portForward.Port)) + + var vmConn net.Conn + + if worker.localNetworkHelper != nil { + vmConn, err = worker.localNetworkHelper.PrivilegedDialContext(ctx, "tcp", + fmt.Sprintf("%s:%d", host, portForward.Port)) + } else { + dialer := net.Dialer{} + + vmConn, err = dialer.DialContext(ctx, "tcp", + fmt.Sprintf("%s:%d", host, portForward.Port)) + } if err != nil { return nil, fmt.Errorf("failed to connect to the VM: %v", err) }