From 591d28b13360d5848b09eb501a3691f56ce6764e Mon Sep 17 00:00:00 2001 From: Sammy Oina Date: Mon, 24 Feb 2025 16:02:14 +0300 Subject: [PATCH 1/5] Update Go version to 1.23.2 in go.mod Signed-off-by: Sammy Oina --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 0f274b2c..096ce3ff 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/ultravioletrs/cocos -go 1.23.5 +go 1.23.2 require ( github.com/absmach/magistrala v0.15.1 From d72d114c255e09ad15a1f1b8920e688675c9c514 Mon Sep 17 00:00:00 2001 From: Sammy Oina Date: Mon, 24 Feb 2025 16:13:52 +0300 Subject: [PATCH 2/5] Update sev-snp-measure-go dependency to v0.0.0-20241202151803-ef189f0ff825 Signed-off-by: Sammy Oina --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 096ce3ff..4c757f89 100644 --- a/go.mod +++ b/go.mod @@ -90,4 +90,4 @@ require ( gopkg.in/yaml.v3 v3.0.1 // indirect ) -replace github.com/virtee/sev-snp-measure-go => github.com/sammyoina/sev-snp-measure-go v0.0.0-20241107163739-38915ab517c7 +replace github.com/virtee/sev-snp-measure-go => github.com/sammyoina/sev-snp-measure-go v0.0.0-20241202151803-ef189f0ff825 diff --git a/go.sum b/go.sum index a9fcfa69..c0fb47ff 100644 --- a/go.sum +++ b/go.sum @@ -695,8 +695,8 @@ github.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sammyoina/sev-snp-measure-go v0.0.0-20241107163739-38915ab517c7 h1:g+a3hLU4pl41mhP+CQu3+bDhL4HSfrnPI1BvLjKfD8Y= -github.com/sammyoina/sev-snp-measure-go v0.0.0-20241107163739-38915ab517c7/go.mod h1:dEkBe8JnxU5itNjZDEQINFd7f7l4DtjfqRuzPQcit4w= +github.com/sammyoina/sev-snp-measure-go v0.0.0-20241202151803-ef189f0ff825 h1:SqNaL9udBIc026SGNEuEuiVL0/hw9fXxM5qrFhWGkdE= +github.com/sammyoina/sev-snp-measure-go v0.0.0-20241202151803-ef189f0ff825/go.mod h1:dEkBe8JnxU5itNjZDEQINFd7f7l4DtjfqRuzPQcit4w= github.com/samuel/go-zookeeper v0.0.0-20190923202752-2cc03de413da/go.mod h1:gi+0XIa01GRL2eRQVjQkKGqKF3SF9vZR/HnPullcV2E= github.com/sassoftware/go-rpmutils v0.0.0-20190420191620-a8f1baeba37b/go.mod h1:am+Fp8Bt506lA3Rk3QCmSqmYmLMnPDhdDUcosQCAx+I= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= From 86990c14231043def2238458576feccd06385827 Mon Sep 17 00:00:00 2001 From: Sammy Oina Date: Mon, 24 Feb 2025 16:55:00 +0300 Subject: [PATCH 3/5] Update agent README to reflect new gRPC configuration variables and default log level Signed-off-by: Sammy Oina --- agent/README.md | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/agent/README.md b/agent/README.md index 0ff2f83b..5126ac8c 100644 --- a/agent/README.md +++ b/agent/README.md @@ -6,15 +6,15 @@ Agent service provides a barebones HTTP and gRPC API and Service interface imple The service is configured using the environment variables from the following table. Note that any unset variables will be replaced with their default values. -| Variable | Description | Default | -| ----------------------------- | ------------------------------------------------------ | ------------------------------ | -| AGENT_LOG_LEVEL | Log level for agent service (debug, info, warn, error) | info | -| AGENT_GRPC_HOST | Agent service gRPC host | "" | -| AGENT_GRPC_PORT | Agent service gRPC port | 7002 | -| AGENT_GRPC_SERVER_CERT | Path to gRPC server certificate in pem format | "" | -| AGENT_GRPC_SERVER_KEY | Path to gRPC server key in pem format | "" | -| AGENT_GRPC_SERVER_CA_CERTS | Path to gRPC server CA certificate | "" | -| AGENT_GRPC_CLIENT_CA_CERTS | Path to gRPC client CA certificate | "" | +| Variable | Description | Default | +| ------------------------------ | ------------------------------------------------------ | ------------------------------ | +| AGENT_LOG_LEVEL | Log level for agent service (debug, info, warn, error) | debug | +| AGENT_CVM_GRPC_HOST | Agent service gRPC host | "" | +| AGENT_CVM_GRPC_PORT | Agent service gRPC port | 7001 | +| AGENT_CVM_GRPC_SERVER_CERT | Path to gRPC server certificate in pem format | "" | +| AGENT_CVM_GRPC_SERVER_KEY | Path to gRPC server key in pem format | "" | +| AGENT_CVM_GRPC_SERVER_CA_CERTS | Path to gRPC server CA certificate | "" | +| AGENT_CVM_GRPC_CLIENT_CA_CERTS | Path to gRPC client CA certificate | "" | ## Deployment From d085bc9d16097a481da4e5a5cb3ba9df83229d13 Mon Sep 17 00:00:00 2001 From: Sammy Oina Date: Mon, 24 Feb 2025 21:45:46 +0300 Subject: [PATCH 4/5] Refactor CVMSClient computation handling and improve test case structure Signed-off-by: Sammy Oina --- agent/cvms/api/grpc/client.go | 3 +-- agent/cvms/api/grpc/client_test.go | 4 ++-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/agent/cvms/api/grpc/client.go b/agent/cvms/api/grpc/client.go index a424b1b7..d393dce8 100644 --- a/agent/cvms/api/grpc/client.go +++ b/agent/cvms/api/grpc/client.go @@ -278,11 +278,10 @@ func (client *CVMSClient) handleStopComputation(ctx context.Context, mes *cvms.S } client.mu.Lock() - defer client.mu.Unlock() - if err := client.sp.Stop(); err != nil { msg.StopComputationRes.Message = err.Error() } + client.mu.Unlock() client.sendMessage(&cvms.ClientStreamMessage{Message: msg}) } diff --git a/agent/cvms/api/grpc/client_test.go b/agent/cvms/api/grpc/client_test.go index 35144ff8..da58527c 100644 --- a/agent/cvms/api/grpc/client_test.go +++ b/agent/cvms/api/grpc/client_test.go @@ -32,7 +32,7 @@ func (m *mockStream) Send(msg *cvms.ClientStreamMessage) error { return args.Error(0) } -func TestManagerClient_Process1(t *testing.T) { +func TestManagerClient_Process(t *testing.T) { tests := []struct { name string setupMocks func(mockStream *mockStream, mockSvc *mocks.Service, mockServerSvc *servermocks.AgentServer) @@ -81,7 +81,7 @@ func TestManagerClient_Process1(t *testing.T) { mockStream := new(mockStream) mockSvc := new(mocks.Service) mockServerSvc := new(servermocks.AgentServer) - messageQueue := make(chan *cvms.ClientStreamMessage, 10) + messageQueue := make(chan *cvms.ClientStreamMessage, 100) logger := mglog.NewMock() client, err := NewClient(mockStream, mockSvc, messageQueue, logger, mockServerSvc, t.TempDir(), func(ctx context.Context) (cvms.Service_ProcessClient, error) { return nil, nil }) From 25a3064fc47a9299812c09293fb2ec65553a1898 Mon Sep 17 00:00:00 2001 From: Sammy Oina Date: Tue, 25 Feb 2025 21:10:22 +0300 Subject: [PATCH 5/5] Refactor messageQueue channel in TestManagerClient_Process for improved concurrency handling Signed-off-by: Sammy Oina --- agent/cvms/api/grpc/client_test.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/agent/cvms/api/grpc/client_test.go b/agent/cvms/api/grpc/client_test.go index da58527c..60d21582 100644 --- a/agent/cvms/api/grpc/client_test.go +++ b/agent/cvms/api/grpc/client_test.go @@ -81,9 +81,13 @@ func TestManagerClient_Process(t *testing.T) { mockStream := new(mockStream) mockSvc := new(mocks.Service) mockServerSvc := new(servermocks.AgentServer) - messageQueue := make(chan *cvms.ClientStreamMessage, 100) + messageQueue := make(chan *cvms.ClientStreamMessage) logger := mglog.NewMock() + go func() { + <-messageQueue + }() + client, err := NewClient(mockStream, mockSvc, messageQueue, logger, mockServerSvc, t.TempDir(), func(ctx context.Context) (cvms.Service_ProcessClient, error) { return nil, nil }) assert.NoError(t, err)