From d198e1e0b4aa9a718704e1358e278e46d3c89b1f Mon Sep 17 00:00:00 2001 From: kimorris27 Date: Mon, 5 Jun 2023 11:11:12 -0500 Subject: [PATCH 1/2] Always log error (if applicable) on failed deployment attempts --- pkg/deploy/deploy.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/pkg/deploy/deploy.go b/pkg/deploy/deploy.go index f76069e9a14..1a0b06f5cb5 100644 --- a/pkg/deploy/deploy.go +++ b/pkg/deploy/deploy.go @@ -161,11 +161,19 @@ func (d *deployer) getParameters(ps map[string]interface{}) *arm.Parameters { } func (d *deployer) deploy(ctx context.Context, rgName, deploymentName, vmssName string, deployment mgmtfeatures.Deployment) (err error) { - for i := 0; i < 3; i++ { + numAttempts := 3 + + for i := 0; i < numAttempts; i++ { d.log.Printf("deploying %s", deploymentName) err = d.deployments.CreateOrUpdateAndWait(ctx, rgName, deploymentName, deployment) serviceErr, isServiceError := err.(*azure.ServiceError) + // As long as this is not the final deployment attempt, + // unconditionally log the error before inspecting it. + if err != nil && i < numAttempts-1 { + d.log.Print(err) + } + // Check for a known error that we know how to handle. if isServiceError { errorType, checkTypeErr := d.checkForKnownError(serviceErr, i) @@ -181,7 +189,7 @@ func (d *deployer) deploy(ctx context.Context, rgName, deploymentName, vmssName // Retry once, and only if this error is encountered on the first // deployment attempt. if errorType == KnownDeploymentErrorTypeRPLBNotFound { - d.log.Print(err) + d.log.Printf("Deployment encountered known ResourceNotFound error for RP LB; retrying.") continue } } From 0106d8dd5160834d4d50f60ad24c00129ea26551 Mon Sep 17 00:00:00 2001 From: kimorris27 Date: Mon, 5 Jun 2023 13:21:53 -0500 Subject: [PATCH 2/2] Printf -> Print --- pkg/deploy/deploy.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/deploy/deploy.go b/pkg/deploy/deploy.go index 1a0b06f5cb5..07ab5f42da5 100644 --- a/pkg/deploy/deploy.go +++ b/pkg/deploy/deploy.go @@ -189,7 +189,7 @@ func (d *deployer) deploy(ctx context.Context, rgName, deploymentName, vmssName // Retry once, and only if this error is encountered on the first // deployment attempt. if errorType == KnownDeploymentErrorTypeRPLBNotFound { - d.log.Printf("Deployment encountered known ResourceNotFound error for RP LB; retrying.") + d.log.Print("Deployment encountered known ResourceNotFound error for RP LB; retrying.") continue } }