Skip to content
This repository was archived by the owner on Sep 23, 2020. It is now read-only.

Commit

Permalink
Merge pull request #64 from ldm810/fix-use-release-region-step-deployer
Browse files Browse the repository at this point in the history
FIX - Use the release's region when deploying to regions other than w…
  • Loading branch information
ldm810 authored Sep 21, 2020
2 parents b7ae35b + 4cc3881 commit 3012828
Show file tree
Hide file tree
Showing 5 changed files with 12 additions and 12 deletions.
2 changes: 1 addition & 1 deletion bifrost/release_lock_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ func Test_Lock_GrabRootLock(t *testing.T) {
r2.UUID = to.Strp("NOTUUID")

awsc := MockAwsClients(r)
s3c := awsc.S3Client(nil, nil, nil)
s3c := awsc.S3Client(r.AwsRegion, nil, nil)
locker := NewInMemoryLocker()

t.Run("root lock acquired", func(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion bifrost/release_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -54,5 +54,5 @@ func Test_Bifrost_Release_Is_Valid(t *testing.T) {
release := MockRelease()
awsc := MockAwsClients(release)

assert.NoError(t, release.Validate(awsc.S3Client(nil, nil, nil), &Release{}))
assert.NoError(t, release.Validate(awsc.S3Client(release.AwsRegion, nil, nil), &Release{}))
}
4 changes: 2 additions & 2 deletions client/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ func PrepareReleaseBundle(awsc aws.AwsClients, release *deployer.Release, zip_fi
}

err := s3.PutFile(
awsc.S3Client(nil, nil, nil),
awsc.S3Client(release.AwsRegion, nil, nil),
zip_file_path,
release.Bucket,
release.LambdaZipPath(),
Expand All @@ -52,7 +52,7 @@ func PrepareReleaseBundle(awsc aws.AwsClients, release *deployer.Release, zip_fi
release.CreatedAt = to.Timep(time.Now())

// Uploading the Release to S3 to match SHAs
if err := s3.PutStruct(awsc.S3Client(nil, nil, nil), release.Bucket, release.ReleasePath(), release); err != nil {
if err := s3.PutStruct(awsc.S3Client(release.AwsRegion, nil, nil), release.Bucket, release.ReleasePath(), release); err != nil {
return err
}

Expand Down
10 changes: 5 additions & 5 deletions deployer/handlers.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ func ValidateHandler(awsc aws.AwsClients) interface{} {
release.SetDefaults(region, account, "coinbase-step-deployer-")

// Validate the attributes for the release
if err := release.Validate(awsc.S3Client(nil, nil, nil)); err != nil {
if err := release.Validate(awsc.S3Client(release.AwsRegion, nil, nil)); err != nil {
return nil, errors.BadReleaseError{err.Error()}
}

Expand All @@ -64,7 +64,7 @@ func LockHandler(awsc aws.AwsClients) interface{} {
return func(ctx context.Context, release *Release) (*Release, error) {
// returns LockExistsError, LockError
locker := dynamodb.NewDynamoDBLocker(awsc.DynamoDBClient(nil, nil, nil))
return release, release.GrabLocks(awsc.S3Client(nil, nil, nil), locker, getLockTableNameFromContext(ctx, "-locks"))
return release, release.GrabLocks(awsc.S3Client(release.AwsRegion, nil, nil), locker, getLockTableNameFromContext(ctx, "-locks"))
}
}

Expand All @@ -87,13 +87,13 @@ func DeployHandler(awsc aws.AwsClients) interface{} {
return nil, DeploySFNError{err}
}

if err := release.DeployLambda(awsc.LambdaClient(release.AwsRegion, release.AwsAccountID, assumed_role), awsc.S3Client(nil, nil, nil)); err != nil {
if err := release.DeployLambda(awsc.LambdaClient(release.AwsRegion, release.AwsAccountID, assumed_role), awsc.S3Client(release.AwsRegion, nil, nil)); err != nil {
return nil, DeployLambdaError{err}
}

release.Success = to.Boolp(true)
locker := dynamodb.NewDynamoDBLocker(awsc.DynamoDBClient(nil, nil, nil))
release.UnlockRoot(awsc.S3Client(nil, nil, nil), locker, getLockTableNameFromContext(ctx, "-locks"))
release.UnlockRoot(awsc.S3Client(release.AwsRegion, nil, nil), locker, getLockTableNameFromContext(ctx, "-locks"))

return release, nil
}
Expand All @@ -102,7 +102,7 @@ func DeployHandler(awsc aws.AwsClients) interface{} {
func ReleaseLockFailureHandler(awsc aws.AwsClients) interface{} {
return func(ctx context.Context, release *Release) (*Release, error) {
locker := dynamodb.NewDynamoDBLocker(awsc.DynamoDBClient(nil, nil, nil))
if err := release.UnlockRoot(awsc.S3Client(nil, nil, nil), locker, getLockTableNameFromContext(ctx, "-locks")); err != nil {
if err := release.UnlockRoot(awsc.S3Client(release.AwsRegion, nil, nil), locker, getLockTableNameFromContext(ctx, "-locks")); err != nil {
return nil, errors.LockError{err.Error()}
}

Expand Down
6 changes: 3 additions & 3 deletions deployer/helpers_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -84,22 +84,22 @@ func createTestStateMachine(t *testing.T, awsc *mocks.MockClients) *machine.Stat
}

func assertNoRootLock(t *testing.T, awsc aws.AwsClients, release *Release) {
_, err := s3.Get(awsc.S3Client(nil, nil, nil), release.Bucket, release.RootLockPath())
_, err := s3.Get(awsc.S3Client(release.AwsRegion, nil, nil), release.Bucket, release.RootLockPath())
assert.Error(t, err) // Not found error
assert.IsType(t, &s3.NotFoundError{}, err)
}

func assertNoRootLockWithReleseLock(t *testing.T, awsc aws.AwsClients, release *Release) {
assertNoRootLock(t, awsc, release)

_, err := s3.Get(awsc.S3Client(nil, nil, nil), release.Bucket, release.ReleaseLockPath())
_, err := s3.Get(awsc.S3Client(release.AwsRegion, nil, nil), release.Bucket, release.ReleaseLockPath())
assert.NoError(t, err) // Not error
}

func assertNoRootLockNoReleseLock(t *testing.T, awsc aws.AwsClients, release *Release) {
assertNoRootLock(t, awsc, release)

_, err := s3.Get(awsc.S3Client(nil, nil, nil), release.Bucket, release.ReleaseLockPath())
_, err := s3.Get(awsc.S3Client(release.AwsRegion, nil, nil), release.Bucket, release.ReleaseLockPath())
assert.Error(t, err) // Not found error
assert.IsType(t, &s3.NotFoundError{}, err)
}

0 comments on commit 3012828

Please sign in to comment.