From 66fe0533781f2fc2eac984f2a1963a5ba884726f Mon Sep 17 00:00:00 2001 From: motatoes Date: Thu, 6 Apr 2023 00:59:14 +0100 Subject: [PATCH 1/3] print error if unlock failed --- pkg/digger/digger.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/digger/digger.go b/pkg/digger/digger.go index 8000e665f..be509bbc6 100644 --- a/pkg/digger/digger.go +++ b/pkg/digger/digger.go @@ -261,7 +261,10 @@ func (d DiggerExecutor) Apply(prNumber int) { applyOutput := cleanupTerraformApply(true, err, stdout, stderr) comment := "Apply for **" + d.LockId() + "**\n" + applyOutput d.prManager.PublishComment(prNumber, comment) - d.lock.Unlock(d.LockId(), prNumber) + _, err = d.lock.Unlock(d.LockId(), prNumber) + if err != nil { + fmt.Printf("%v\n", err) + } } } From 57f64b17e3877a2a9eb2399b2d55a2a78dc0967f Mon Sep 17 00:00:00 2001 From: motatoes Date: Thu, 6 Apr 2023 01:47:17 +0100 Subject: [PATCH 2/3] report more error messages --- pkg/digger/digger.go | 8 ++++++-- pkg/utils/locking.go | 16 ++++++++++++---- 2 files changed, 18 insertions(+), 6 deletions(-) diff --git a/pkg/digger/digger.go b/pkg/digger/digger.go index be509bbc6..6bb65f7d7 100644 --- a/pkg/digger/digger.go +++ b/pkg/digger/digger.go @@ -264,14 +264,18 @@ func (d DiggerExecutor) Apply(prNumber int) { _, err = d.lock.Unlock(d.LockId(), prNumber) if err != nil { fmt.Printf("%v\n", err) + os.Exit(1) } } } func (d DiggerExecutor) Unlock(prNumber int) { - d.lock.ForceUnlock(d.LockId(), prNumber) - + err := d.lock.ForceUnlock(d.LockId(), prNumber) + if err != nil { + fmt.Printf("%v\n", err) + os.Exit(1) + } } func (d DiggerExecutor) Lock(prNumber int) bool { diff --git a/pkg/utils/locking.go b/pkg/utils/locking.go index c17e4d2e4..39183911c 100644 --- a/pkg/utils/locking.go +++ b/pkg/utils/locking.go @@ -36,7 +36,7 @@ type Lock interface { type ProjectLock interface { Lock(lockId string, prNumber int) (bool, error) Unlock(lockId string, prNumber int) (bool, error) - ForceUnlock(lockId string, prNumber int) + ForceUnlock(lockId string, prNumber int) error } func (projectLock *ProjectLockImpl) Lock(lockId string, prNumber int) (bool, error) { @@ -106,18 +106,26 @@ func (projectLock *ProjectLockImpl) Unlock(lockId string, prNumber int) (bool, e return false, nil } -func (projectLock *ProjectLockImpl) ForceUnlock(lockId string, prNumber int) { +func (projectLock *ProjectLockImpl) ForceUnlock(lockId string, prNumber int) error { fmt.Printf("ForceUnlock %s\n", lockId) - lock, _ := projectLock.InternalLock.GetLock(lockId) + lock, err := projectLock.InternalLock.GetLock(lockId) + if err != nil { + return err + } if lock != nil { - lockReleased, _ := projectLock.InternalLock.Unlock(lockId) + lockReleased, err := projectLock.InternalLock.Unlock(lockId) + if err != nil { + return err + } if lockReleased { comment := "Project unlocked (" + projectLock.projectId() + ")." projectLock.PrManager.PublishComment(prNumber, comment) println("Project unlocked") } + return nil } + return nil } func (projectLock *ProjectLockImpl) projectId() string { From e6d9ccc3b3e5116113a56d4bd54f5a8cf5392ce9 Mon Sep 17 00:00:00 2001 From: Mohamed Habib Date: Thu, 13 Apr 2023 16:00:28 +0100 Subject: [PATCH 3/3] merge main into branch --- pkg/digger/digger.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/digger/digger.go b/pkg/digger/digger.go index ab5a86f01..ae8fd5bc7 100644 --- a/pkg/digger/digger.go +++ b/pkg/digger/digger.go @@ -263,8 +263,11 @@ func (d DiggerExecutor) Apply(prNumber int) { d.prManager.PublishComment(prNumber, comment) if err == nil { _, err := d.lock.Unlock(d.LockId(), prNumber) + if err != nil { + fmt.Errorf("error unlocking project: %v", err) + } } else { - fmt.Errorf("error unlocking project: %v", err) + d.prManager.PublishComment(prNumber, "Error during applying. Project lock will persist") } }