Skip to content

Commit c124d3e

Browse files
committed
add sentry to grid deployer
1 parent 22c5317 commit c124d3e

16 files changed

+211
-143
lines changed

grid-client/deployer/deployment_deployer.go

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -31,20 +31,20 @@ func NewDeploymentDeployer(tfPluginClient *TFPluginClient) DeploymentDeployer {
3131
// Validate validates a deployment deployer
3232
func (d *DeploymentDeployer) Validate(ctx context.Context, dls []*workloads.Deployment) error {
3333
if err := validateAccountBalanceForExtrinsics(d.tfPluginClient.SubstrateConn, d.tfPluginClient.Identity); err != nil {
34-
return err
34+
return d.tfPluginClient.sentry.error(err)
3535
}
3636

3737
for _, dl := range dls {
3838
if err := dl.Validate(); err != nil {
39-
return err
39+
return d.tfPluginClient.sentry.error(err)
4040
}
4141
}
4242

4343
return nil
4444
}
4545

4646
// GenerateVersionlessDeployments generates a new deployment without a version
47-
func (d *DeploymentDeployer) GenerateVersionlessDeployments(ctx context.Context, dls []*workloads.Deployment) (map[uint32][]zos.Deployment, error) {
47+
func (d *DeploymentDeployer) generateVersionlessDeployments(ctx context.Context, dls []*workloads.Deployment) (map[uint32][]zos.Deployment, error) {
4848
gridDlsPerNodes := make(map[uint32][]zos.Deployment)
4949

5050
var wg sync.WaitGroup
@@ -107,16 +107,16 @@ func (d *DeploymentDeployer) GenerateVersionlessDeployments(ctx context.Context,
107107
// Deploy deploys a new deployment
108108
func (d *DeploymentDeployer) Deploy(ctx context.Context, dl *workloads.Deployment) error {
109109
if err := d.Validate(ctx, []*workloads.Deployment{dl}); err != nil {
110-
return fmt.Errorf("invalid deployment: %w", err)
110+
return d.tfPluginClient.sentry.error(fmt.Errorf("invalid deployment: %w", err))
111111
}
112112

113-
dlsPerNodes, err := d.GenerateVersionlessDeployments(ctx, []*workloads.Deployment{dl})
113+
dlsPerNodes, err := d.generateVersionlessDeployments(ctx, []*workloads.Deployment{dl})
114114
if err != nil {
115-
return errors.Wrap(err, "could not generate deployments data")
115+
return d.tfPluginClient.sentry.error(errors.Wrap(err, "could not generate deployments data"))
116116
}
117117

118118
if len(dlsPerNodes[dl.NodeID]) == 0 {
119-
return fmt.Errorf("failed to generate the grid deployment")
119+
return d.tfPluginClient.sentry.error(fmt.Errorf("failed to generate the grid deployment"))
120120
}
121121

122122
dl.NodeDeploymentID, err = d.deployer.Deploy(
@@ -132,7 +132,7 @@ func (d *DeploymentDeployer) Deploy(ctx context.Context, dl *workloads.Deploymen
132132
d.tfPluginClient.State.StoreContractIDs(dl.NodeID, dl.ContractID)
133133
}
134134

135-
return err
135+
return d.tfPluginClient.sentry.error(err)
136136
}
137137

138138
// BatchDeploy deploys multiple deployments using the deployer
@@ -144,13 +144,13 @@ func (d *DeploymentDeployer) BatchDeploy(ctx context.Context, dls []*workloads.D
144144
multiErr = multierror.Append(multiErr, fmt.Errorf("invalid deployments: %w", err))
145145
}
146146

147-
newDeployments, err := d.GenerateVersionlessDeployments(ctx, dls)
147+
newDeployments, err := d.generateVersionlessDeployments(ctx, dls)
148148
if err != nil {
149149
multiErr = multierror.Append(multiErr, fmt.Errorf("could not generate grid deployments: %w", err))
150150
}
151151

152152
if len(newDeployments) == 0 {
153-
return errors.Wrap(multiErr, "failed to generate the grid deployments")
153+
return d.tfPluginClient.sentry.error(errors.Wrap(multiErr, "failed to generate the grid deployments"))
154154
}
155155

156156
newDls, err := d.deployer.BatchDeploy(ctx, newDeployments, newDeploymentsSolutionProvider)
@@ -166,18 +166,18 @@ func (d *DeploymentDeployer) BatchDeploy(ctx context.Context, dls []*workloads.D
166166
}
167167
}
168168

169-
return multiErr
169+
return d.tfPluginClient.sentry.error(multiErr)
170170
}
171171

172172
// Cancel cancels deployments
173173
func (d *DeploymentDeployer) Cancel(ctx context.Context, dl *workloads.Deployment) error {
174174
if err := d.Validate(ctx, []*workloads.Deployment{dl}); err != nil {
175-
return err
175+
return d.tfPluginClient.sentry.error(err)
176176
}
177177

178178
err := d.deployer.Cancel(ctx, dl.ContractID)
179179
if err != nil {
180-
return err
180+
return d.tfPluginClient.sentry.error(err)
181181
}
182182

183183
// update state
@@ -374,11 +374,11 @@ func (d *DeploymentDeployer) syncContract(dl *workloads.Deployment) error {
374374
func (d *DeploymentDeployer) Sync(ctx context.Context, dl *workloads.Deployment) error {
375375
err := d.syncContract(dl)
376376
if err != nil {
377-
return err
377+
return d.tfPluginClient.sentry.error(err)
378378
}
379379
currentDeployments, err := d.deployer.GetDeployments(ctx, dl.NodeDeploymentID)
380380
if err != nil {
381-
return errors.Wrap(err, "failed to get deployments to update local state")
381+
return d.tfPluginClient.sentry.error(errors.Wrap(err, "failed to get deployments to update local state"))
382382
}
383383

384384
deployment := currentDeployments[dl.NodeID]

grid-client/deployer/deployment_deployer_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -353,7 +353,7 @@ func TestDeploymentDeployerDeploy(t *testing.T) {
353353
return nil
354354
}).AnyTimes()
355355

356-
dls, err := d.GenerateVersionlessDeployments(context.Background(), []*workloads.Deployment{&dl})
356+
dls, err := d.generateVersionlessDeployments(context.Background(), []*workloads.Deployment{&dl})
357357
assert.NoError(t, err)
358358

359359
assert.Equal(t, len(gridDl.Workloads), len(dls[dl.NodeID][0].Workloads))
@@ -528,7 +528,7 @@ func TestDeploymentDeployerSync(t *testing.T) {
528528
return nil
529529
})
530530

531-
dls, err := d.GenerateVersionlessDeployments(context.Background(), []*workloads.Deployment{&dl})
531+
dls, err := d.generateVersionlessDeployments(context.Background(), []*workloads.Deployment{&dl})
532532
assert.NoError(t, err)
533533

534534
gridDl := dls[dl.NodeID][0]

grid-client/deployer/gateway_fqdn_deployer.go

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -30,32 +30,32 @@ func NewGatewayFqdnDeployer(tfPluginClient *TFPluginClient) GatewayFQDNDeployer
3030
func (d *GatewayFQDNDeployer) Validate(ctx context.Context, gw *workloads.GatewayFQDNProxy) error {
3131
sub := d.tfPluginClient.SubstrateConn
3232
if err := validateAccountBalanceForExtrinsics(sub, d.tfPluginClient.Identity); err != nil {
33-
return err
33+
return d.tfPluginClient.sentry.error(err)
3434
}
3535

3636
if err := gw.Validate(); err != nil {
37-
return err
37+
return d.tfPluginClient.sentry.error(err)
3838
}
3939

4040
nodeClient, err := d.tfPluginClient.NcPool.GetNodeClient(sub, gw.NodeID)
4141
if err != nil {
42-
return errors.Wrapf(err, "failed to get node client with ID %d", gw.NodeID)
42+
return d.tfPluginClient.sentry.error(errors.Wrapf(err, "failed to get node client with ID %d", gw.NodeID))
4343
}
4444

4545
cfg, err := nodeClient.NetworkGetPublicConfig(ctx)
4646
if err != nil {
47-
return errors.Wrapf(err, "couldn't get node %d public config", gw.NodeID)
47+
return d.tfPluginClient.sentry.error(errors.Wrapf(err, "couldn't get node %d public config", gw.NodeID))
4848
}
4949

5050
if cfg.IPv4.IP == nil {
51-
return errors.Errorf("node %d doesn't contain a public IP in its public config", gw.NodeID)
51+
return d.tfPluginClient.sentry.error(errors.Errorf("node %d doesn't contain a public IP in its public config", gw.NodeID))
5252
}
5353

54-
return client.AreNodesUp(ctx, sub, []uint32{gw.NodeID}, d.tfPluginClient.NcPool)
54+
return d.tfPluginClient.sentry.error(client.AreNodesUp(ctx, sub, []uint32{gw.NodeID}, d.tfPluginClient.NcPool))
5555
}
5656

5757
// GenerateVersionlessDeployments generates deployments for gatewayFqdn deployer without versions
58-
func (d *GatewayFQDNDeployer) GenerateVersionlessDeployments(ctx context.Context, gw *workloads.GatewayFQDNProxy) (map[uint32]zosTypes.Deployment, error) {
58+
func (d *GatewayFQDNDeployer) generateVersionlessDeployments(ctx context.Context, gw *workloads.GatewayFQDNProxy) (map[uint32]zosTypes.Deployment, error) {
5959
deployments := make(map[uint32]zosTypes.Deployment)
6060
var err error
6161

@@ -74,12 +74,12 @@ func (d *GatewayFQDNDeployer) GenerateVersionlessDeployments(ctx context.Context
7474
// Deploy deploys the GatewayFQDN deployments using the deployer
7575
func (d *GatewayFQDNDeployer) Deploy(ctx context.Context, gw *workloads.GatewayFQDNProxy) error {
7676
if err := d.Validate(ctx, gw); err != nil {
77-
return err
77+
return d.tfPluginClient.sentry.error(err)
7878
}
7979

80-
newDeployments, err := d.GenerateVersionlessDeployments(ctx, gw)
80+
newDeployments, err := d.generateVersionlessDeployments(ctx, gw)
8181
if err != nil {
82-
return errors.Wrap(err, "could not generate deployments data")
82+
return d.tfPluginClient.sentry.error(errors.Wrap(err, "could not generate deployments data"))
8383
}
8484

8585
// TODO: solution providers
@@ -97,7 +97,7 @@ func (d *GatewayFQDNDeployer) Deploy(ctx context.Context, gw *workloads.GatewayF
9797
}
9898
}
9999

100-
return err
100+
return d.tfPluginClient.sentry.error(err)
101101
}
102102

103103
// BatchDeploy deploys multiple deployments using the deployer
@@ -107,12 +107,12 @@ func (d *GatewayFQDNDeployer) BatchDeploy(ctx context.Context, gws []*workloads.
107107

108108
for _, gw := range gws {
109109
if err := d.Validate(ctx, gw); err != nil {
110-
return err
110+
return d.tfPluginClient.sentry.error(err)
111111
}
112112

113-
dls, err := d.GenerateVersionlessDeployments(ctx, gw)
113+
dls, err := d.generateVersionlessDeployments(ctx, gw)
114114
if err != nil {
115-
return errors.Wrap(err, "could not generate deployments data")
115+
return d.tfPluginClient.sentry.error(errors.Wrap(err, "could not generate deployments data"))
116116
}
117117

118118
for nodeID, dl := range dls {
@@ -133,23 +133,23 @@ func (d *GatewayFQDNDeployer) BatchDeploy(ctx context.Context, gws []*workloads.
133133
// error is not returned immediately before updating state because of untracked failed deployments
134134
for _, gw := range gws {
135135
if err := d.updateStateFromDeployments(gw, newDls); err != nil {
136-
return errors.Wrapf(err, "failed to update gateway fqdn '%s' state", gw.Name)
136+
return d.tfPluginClient.sentry.error(errors.Wrapf(err, "failed to update gateway fqdn '%s' state", gw.Name))
137137
}
138138
}
139139

140-
return err
140+
return d.tfPluginClient.sentry.error(err)
141141
}
142142

143143
// Cancel cancels a gateway deployment
144144
func (d *GatewayFQDNDeployer) Cancel(ctx context.Context, gw *workloads.GatewayFQDNProxy) (err error) {
145145
if err := d.Validate(ctx, gw); err != nil {
146-
return err
146+
return d.tfPluginClient.sentry.error(err)
147147
}
148148

149149
contractID := gw.NodeDeploymentID[gw.NodeID]
150150
err = d.deployer.Cancel(ctx, contractID)
151151
if err != nil {
152-
return err
152+
return d.tfPluginClient.sentry.error(err)
153153
}
154154

155155
// update state
@@ -198,12 +198,12 @@ func (d *GatewayFQDNDeployer) syncContracts(ctx context.Context, gw *workloads.G
198198
// Sync syncs the gateway deployments
199199
func (d *GatewayFQDNDeployer) Sync(ctx context.Context, gw *workloads.GatewayFQDNProxy) error {
200200
if err := d.syncContracts(ctx, gw); err != nil {
201-
return errors.Wrap(err, "could not sync contracts")
201+
return d.tfPluginClient.sentry.error(errors.Wrap(err, "could not sync contracts"))
202202
}
203203

204204
dls, err := d.deployer.GetDeployments(ctx, gw.NodeDeploymentID)
205205
if err != nil {
206-
return errors.Wrap(err, "could not get deployment objects")
206+
return d.tfPluginClient.sentry.error(errors.Wrap(err, "could not get deployment objects"))
207207
}
208208

209209
dl := dls[gw.NodeID]
@@ -225,7 +225,7 @@ func (d *GatewayFQDNDeployer) Sync(ctx context.Context, gw *workloads.GatewayFQD
225225
gw.Network = gwWorkload.Network
226226

227227
if err != nil {
228-
return err
228+
return d.tfPluginClient.sentry.error(err)
229229
}
230230
}
231231

grid-client/deployer/gateway_fqdn_deployer_test.go

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ func TestFQDNDeployer(t *testing.T) {
126126
})
127127

128128
t.Run("test generate", func(t *testing.T) {
129-
dls, err := d.GenerateVersionlessDeployments(context.Background(), &gw)
129+
dls, err := d.generateVersionlessDeployments(context.Background(), &gw)
130130
assert.NoError(t, err)
131131

132132
testDl := workloads.NewGridDeployment(twinID, 0, []zosTypes.Workload{
@@ -151,7 +151,7 @@ func TestFQDNDeployer(t *testing.T) {
151151
})
152152

153153
t.Run("test deploy", func(t *testing.T) {
154-
dls, err := d.GenerateVersionlessDeployments(context.Background(), &gw)
154+
dls, err := d.generateVersionlessDeployments(context.Background(), &gw)
155155
assert.NoError(t, err)
156156

157157
mockValidation(d.tfPluginClient.Identity, cl, sub, ncPool, proxyCl)
@@ -175,7 +175,7 @@ func TestFQDNDeployer(t *testing.T) {
175175

176176
gw.NodeDeploymentID = map[uint32]uint64{nodeID: contractID}
177177

178-
dls, err := d.GenerateVersionlessDeployments(context.Background(), &gw)
178+
dls, err := d.generateVersionlessDeployments(context.Background(), &gw)
179179
assert.NoError(t, err)
180180

181181
mockValidation(d.tfPluginClient.Identity, cl, sub, ncPool, proxyCl)
@@ -198,7 +198,7 @@ func TestFQDNDeployer(t *testing.T) {
198198

199199
gw.NodeDeploymentID = map[uint32]uint64{nodeID: contractID}
200200

201-
dls, err := d.GenerateVersionlessDeployments(context.Background(), &gw)
201+
dls, err := d.generateVersionlessDeployments(context.Background(), &gw)
202202
assert.NoError(t, err)
203203

204204
mockValidation(d.tfPluginClient.Identity, cl, sub, ncPool, proxyCl)
@@ -316,7 +316,7 @@ func TestFQDNDeployer(t *testing.T) {
316316
gw.ContractID = contractID
317317
gw.NodeDeploymentID = map[uint32]uint64{nodeID: contractID}
318318

319-
dls, err := d.GenerateVersionlessDeployments(context.Background(), &gw)
319+
dls, err := d.generateVersionlessDeployments(context.Background(), &gw)
320320
assert.NoError(t, err)
321321

322322
dl := dls[nodeID]
@@ -346,7 +346,7 @@ func TestFQDNDeployer(t *testing.T) {
346346
gw.ContractID = contractID
347347
gw.NodeDeploymentID = map[uint32]uint64{nodeID: contractID}
348348

349-
dls, err := d.GenerateVersionlessDeployments(context.Background(), &gw)
349+
dls, err := d.generateVersionlessDeployments(context.Background(), &gw)
350350
assert.NoError(t, err)
351351

352352
dl := dls[nodeID]

0 commit comments

Comments
 (0)