@@ -3,6 +3,7 @@ package client
33import (
44 context "context"
55 "errors"
6+ "fmt"
67 "log"
78 "os"
89
@@ -23,6 +24,7 @@ type ObservabilityStorageGrpcClient interface {
2324 UpdateReconciler (ctx context.Context , in * pb.Reconciler ) (* pb.Reconciler , error )
2425 UpdateDeployment (ctx context.Context , in * pb.Deployment ) (* pb.Deployment , error )
2526 GetDeploymentTarget (ctx context.Context , in * pb.DeploymentTargetSearch ) (* pb.DeploymentTarget , error )
27+ GetDeploymentAssignment (ctx context.Context , in * pb.DeploymentAssignmentSearch ) (* pb.DeploymentAssignment , error )
2628 GetDeploymentState (ctx context.Context , in * pb.DeploymentStateRequest ) (* pb.DeploymentState , error )
2729}
2830
@@ -57,12 +59,19 @@ func (c *observabilityStorageGrpcClient) getConnection() (*grpc.ClientConn, erro
5759 return conn , nil
5860}
5961
62+ // closeConnection safely closes a gRPC connection and logs any errors
63+ func (c * observabilityStorageGrpcClient ) closeConnection (conn * grpc.ClientConn ) {
64+ if err := conn .Close (); err != nil {
65+ log .Printf ("failed to close gRPC connection: %v" , err )
66+ }
67+ }
68+
6069func (c * observabilityStorageGrpcClient ) UpdateWorkspace (ctx context.Context , in * pb.Workspace ) (* pb.Workspace , error ) {
6170 conn , err := c .getConnection ()
6271 if err != nil {
6372 return nil , err
6473 }
65- defer conn . Close ( )
74+ defer c . closeConnection ( conn )
6675 client := pb .NewStorageApiClient (conn )
6776 ws , err := client .UpdateWorkspace (ctx , in )
6877 if err != nil {
@@ -76,7 +85,7 @@ func (c *observabilityStorageGrpcClient) UpdateApplication(ctx context.Context,
7685 if err != nil {
7786 return nil , err
7887 }
79- defer conn . Close ( )
88+ defer c . closeConnection ( conn )
8089 client := pb .NewStorageApiClient (conn )
8190 app , err := client .UpdateApplication (ctx , in )
8291 if err != nil {
@@ -90,7 +99,7 @@ func (c *observabilityStorageGrpcClient) UpdateWorkload(ctx context.Context, in
9099 if err != nil {
91100 return nil , err
92101 }
93- defer conn . Close ( )
102+ defer c . closeConnection ( conn )
94103 client := pb .NewStorageApiClient (conn )
95104 wl , err := client .UpdateWorkload (ctx , in )
96105 if err != nil {
@@ -104,7 +113,7 @@ func (c *observabilityStorageGrpcClient) UpdateEnvironment(ctx context.Context,
104113 if err != nil {
105114 return nil , err
106115 }
107- defer conn . Close ( )
116+ defer c . closeConnection ( conn )
108117 client := pb .NewStorageApiClient (conn )
109118 env , err := client .UpdateEnvironment (ctx , in )
110119 if err != nil {
@@ -118,7 +127,7 @@ func (c *observabilityStorageGrpcClient) UpdateDeploymentTarget(ctx context.Cont
118127 if err != nil {
119128 return nil , err
120129 }
121- defer conn . Close ( )
130+ defer c . closeConnection ( conn )
122131 client := pb .NewStorageApiClient (conn )
123132 dt , err := client .UpdateDeploymentTarget (ctx , in )
124133 if err != nil {
@@ -132,7 +141,7 @@ func (c *observabilityStorageGrpcClient) UpdateWorkloadVersion(ctx context.Conte
132141 if err != nil {
133142 return nil , err
134143 }
135- defer conn . Close ( )
144+ defer c . closeConnection ( conn )
136145 client := pb .NewStorageApiClient (conn )
137146 wlv , err := client .UpdateWorkloadVersion (ctx , in )
138147 if err != nil {
@@ -146,7 +155,7 @@ func (c *observabilityStorageGrpcClient) UpdateDeploymentAssignment(ctx context.
146155 if err != nil {
147156 return nil , err
148157 }
149- defer conn . Close ( )
158+ defer c . closeConnection ( conn )
150159 client := pb .NewStorageApiClient (conn )
151160 da , err := client .UpdateDeploymentAssignment (ctx , in )
152161 if err != nil {
@@ -160,7 +169,7 @@ func (c *observabilityStorageGrpcClient) UpdateHost(ctx context.Context, in *pb.
160169 if err != nil {
161170 return nil , err
162171 }
163- defer conn . Close ( )
172+ defer c . closeConnection ( conn )
164173 client := pb .NewStorageApiClient (conn )
165174 host , err := client .UpdateHost (ctx , in )
166175 if err != nil {
@@ -174,7 +183,7 @@ func (c *observabilityStorageGrpcClient) UpdateReconciler(ctx context.Context, i
174183 if err != nil {
175184 return nil , err
176185 }
177- defer conn . Close ( )
186+ defer c . closeConnection ( conn )
178187 client := pb .NewStorageApiClient (conn )
179188 rec , err := client .UpdateReconciler (ctx , in )
180189 if err != nil {
@@ -188,7 +197,7 @@ func (c *observabilityStorageGrpcClient) UpdateDeployment(ctx context.Context, i
188197 if err != nil {
189198 return nil , err
190199 }
191- defer conn . Close ( )
200+ defer c . closeConnection ( conn )
192201 client := pb .NewStorageApiClient (conn )
193202 dep , err := client .UpdateDeployment (ctx , in )
194203 if err != nil {
@@ -202,7 +211,7 @@ func (c *observabilityStorageGrpcClient) GetDeploymentTarget(ctx context.Context
202211 if err != nil {
203212 return nil , err
204213 }
205- defer conn . Close ( )
214+ defer c . closeConnection ( conn )
206215 client := pb .NewStorageApiClient (conn )
207216
208217 dt , err := client .GetDeploymentTarget (ctx , in )
@@ -212,13 +221,31 @@ func (c *observabilityStorageGrpcClient) GetDeploymentTarget(ctx context.Context
212221 return dt , nil
213222}
214223
224+ // GetDeploymentAssignment retrieves a deployment assignment using the proper protobuf structure
225+ func (c * observabilityStorageGrpcClient ) GetDeploymentAssignment (ctx context.Context , in * pb.DeploymentAssignmentSearch ) (* pb.DeploymentAssignment , error ) {
226+ conn , err := c .getConnection ()
227+ if err != nil {
228+ return nil , err
229+ }
230+ defer c .closeConnection (conn )
231+ client := pb .NewStorageApiClient (conn )
232+
233+ // Use the proper gRPC call with the DeploymentAssignmentSearch struct
234+ assignment , err := client .GetDeploymentAssignment (ctx , in )
235+ if err != nil {
236+ return nil , fmt .Errorf ("failed to get deployment assignment: %w" , err )
237+ }
238+
239+ return assignment , nil
240+ }
241+
215242// GetDeploymentState
216243func (c * observabilityStorageGrpcClient ) GetDeploymentState (ctx context.Context , in * pb.DeploymentStateRequest ) (* pb.DeploymentState , error ) {
217244 conn , err := c .getConnection ()
218245 if err != nil {
219246 return nil , err
220247 }
221- defer conn . Close ( )
248+ defer c . closeConnection ( conn )
222249 client := pb .NewStorageApiClient (conn )
223250
224251 ds , err := client .GetDeploymentState (ctx , in )
0 commit comments