diff --git a/internal/credential/attributes.go b/internal/credential/attributes.go index d11ae77..467861a 100644 --- a/internal/credential/attributes.go +++ b/internal/credential/attributes.go @@ -9,7 +9,7 @@ import ( "github.com/aws/aws-sdk-go/aws/endpoints" "github.com/hashicorp/boundary-plugin-aws/internal/errors" "github.com/hashicorp/boundary-plugin-aws/internal/values" - awsutilv2 "github.com/hashicorp/go-secure-stdlib/awsutil/v2" + "github.com/hashicorp/go-secure-stdlib/awsutil/v2" "google.golang.org/protobuf/types/known/structpb" ) @@ -37,7 +37,7 @@ type CredentialAttributes struct { // GetCredentialsConfig parses values out of a protobuf struct secrets and returns a // CredentialsConfig used for configuring an AWS session. An error is returned if // any unrecognized fields are found in the protobuf struct input. -func GetCredentialsConfig(secrets *structpb.Struct, attrs *CredentialAttributes, required bool) (*awsutilv2.CredentialsConfig, error) { +func GetCredentialsConfig(secrets *structpb.Struct, attrs *CredentialAttributes, required bool) (*awsutil.CredentialsConfig, error) { // initialize secrets if it is nil // secrets can be nil because static credentials are optional if secrets == nil { @@ -68,7 +68,7 @@ func GetCredentialsConfig(secrets *structpb.Struct, attrs *CredentialAttributes, badFields[fmt.Sprintf("secrets.%s", s)] = "unrecognized field" } - opts := []awsutilv2.Option{} + opts := []awsutil.Option{} // logic for parsing the credential type // supported types: // - user static credential @@ -92,12 +92,12 @@ func GetCredentialsConfig(secrets *structpb.Struct, attrs *CredentialAttributes, // add static credentials case accessKey != "" && secretKey != "": opts = append(opts, - awsutilv2.WithAccessKey(accessKey), - awsutilv2.WithSecretKey(secretKey), + awsutil.WithAccessKey(accessKey), + awsutil.WithSecretKey(secretKey), ) // add dynamic credentials case attrs.RoleArn != "": - opts = append(opts, awsutilv2.WithRoleArn(attrs.RoleArn)) + opts = append(opts, awsutil.WithRoleArn(attrs.RoleArn)) } if len(badFields) > 0 { @@ -105,19 +105,19 @@ func GetCredentialsConfig(secrets *structpb.Struct, attrs *CredentialAttributes, } if attrs.Region != "" { - opts = append(opts, awsutilv2.WithRegion(attrs.Region)) + opts = append(opts, awsutil.WithRegion(attrs.Region)) } if attrs.RoleExternalId != "" { - opts = append(opts, awsutilv2.WithRoleExternalId(attrs.RoleExternalId)) + opts = append(opts, awsutil.WithRoleExternalId(attrs.RoleExternalId)) } if attrs.RoleSessionName != "" { - opts = append(opts, awsutilv2.WithRoleSessionName(attrs.RoleSessionName)) + opts = append(opts, awsutil.WithRoleSessionName(attrs.RoleSessionName)) } if len(attrs.RoleTags) != 0 { - opts = append(opts, awsutilv2.WithRoleTags(attrs.RoleTags)) + opts = append(opts, awsutil.WithRoleTags(attrs.RoleTags)) } - return awsutilv2.NewCredentialsConfig(opts...) + return awsutil.NewCredentialsConfig(opts...) } // GetCredentialAttributes parses values out of a protobuf struct input and returns a diff --git a/internal/credential/attributes_test.go b/internal/credential/attributes_test.go index c778fd4..fa9ac2c 100644 --- a/internal/credential/attributes_test.go +++ b/internal/credential/attributes_test.go @@ -6,7 +6,7 @@ package credential import ( "testing" - awsutilv2 "github.com/hashicorp/go-secure-stdlib/awsutil/v2" + "github.com/hashicorp/go-secure-stdlib/awsutil/v2" "github.com/stretchr/testify/require" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" @@ -114,7 +114,7 @@ func TestGetCredentialsConfig(t *testing.T) { secrets *structpb.Struct required bool attrs *CredentialAttributes - expected *awsutilv2.CredentialsConfig + expected *awsutil.CredentialsConfig expectedErrContains string }{ { @@ -122,7 +122,7 @@ func TestGetCredentialsConfig(t *testing.T) { attrs: &CredentialAttributes{ Region: "us-west-2", }, - expected: &awsutilv2.CredentialsConfig{ + expected: &awsutil.CredentialsConfig{ Region: "us-west-2", }, }, @@ -137,7 +137,7 @@ func TestGetCredentialsConfig(t *testing.T) { attrs: &CredentialAttributes{ Region: "us-west-2", }, - expected: &awsutilv2.CredentialsConfig{ + expected: &awsutil.CredentialsConfig{ AccessKey: "AKIAfoobar", SecretKey: "bazqux", Region: "us-west-2", @@ -196,7 +196,7 @@ func TestGetCredentialsConfig(t *testing.T) { attrs: &CredentialAttributes{ Region: "us-west-2", }, - expected: &awsutilv2.CredentialsConfig{ + expected: &awsutil.CredentialsConfig{ AccessKey: "AKIAfoobar", SecretKey: "bazqux", Region: "us-west-2", @@ -217,7 +217,7 @@ func TestGetCredentialsConfig(t *testing.T) { }, DisableCredentialRotation: true, }, - expected: &awsutilv2.CredentialsConfig{ + expected: &awsutil.CredentialsConfig{ Region: "us-west-2", RoleARN: "arn:aws:iam::123456789012:role/S3Access", RoleExternalId: "1234567890", diff --git a/internal/credential/state.go b/internal/credential/state.go index 491da71..de2ef44 100644 --- a/internal/credential/state.go +++ b/internal/credential/state.go @@ -13,7 +13,7 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" iamTypes "github.com/aws/aws-sdk-go-v2/service/iam/types" "github.com/hashicorp/boundary-plugin-aws/internal/values" - awsutilv2 "github.com/hashicorp/go-secure-stdlib/awsutil/v2" + "github.com/hashicorp/go-secure-stdlib/awsutil/v2" "google.golang.org/protobuf/types/known/structpb" ) @@ -49,18 +49,18 @@ type AwsCredentialPersistedStateOption func(s *AwsCredentialPersistedState) erro // AwsCredentialPersistedState is the persisted state for the AWS credential. type AwsCredentialPersistedState struct { // CredentialsConfig is the credential configuration for the AWS credential. - CredentialsConfig *awsutilv2.CredentialsConfig + CredentialsConfig *awsutil.CredentialsConfig // CredsLastRotatedTime is the last rotation of aws secrets for the AWS credential. CredsLastRotatedTime time.Time // testOpts are options that should be used for testing only - testOpts []awsutilv2.Option + testOpts []awsutil.Option } // WithStateTestOpts enables unit testing different edge cases // when using CredentialsConfig. This should never be used in // production code. This should only be used in unit tests. -func WithStateTestOpts(opts []awsutilv2.Option) AwsCredentialPersistedStateOption { +func WithStateTestOpts(opts []awsutil.Option) AwsCredentialPersistedStateOption { return func(s *AwsCredentialPersistedState) error { s.testOpts = opts return nil @@ -68,7 +68,7 @@ func WithStateTestOpts(opts []awsutilv2.Option) AwsCredentialPersistedStateOptio } // WithCredentialsConfig sets the value for CredentialsConfig in the credential persisted state. -func WithCredentialsConfig(x *awsutilv2.CredentialsConfig) AwsCredentialPersistedStateOption { +func WithCredentialsConfig(x *awsutil.CredentialsConfig) AwsCredentialPersistedStateOption { return func(s *AwsCredentialPersistedState) error { if s.CredentialsConfig != nil { return errors.New("credentials config already set") @@ -129,8 +129,8 @@ func (s *AwsCredentialPersistedState) RotateCreds(ctx context.Context) error { if GetCredentialType(s.CredentialsConfig) != StaticAWS { return errors.New("invalid credential type") } - if err := s.CredentialsConfig.RotateKeys(ctx, append([]awsutilv2.Option{ - awsutilv2.WithValidityCheckTimeout(rotationWaitTimeout), + if err := s.CredentialsConfig.RotateKeys(ctx, append([]awsutil.Option{ + awsutil.WithValidityCheckTimeout(rotationWaitTimeout), }, s.testOpts...)...); err != nil { return fmt.Errorf("error rotating credentials: %w", err) } @@ -141,7 +141,7 @@ func (s *AwsCredentialPersistedState) RotateCreds(ctx context.Context) error { // ReplaceCreds replaces the access key in the state with a new key. // If the existing key was rotated at any point in time, it is // deleted first, otherwise it's left alone. -func (s *AwsCredentialPersistedState) ReplaceCreds(ctx context.Context, credentialsConfig *awsutilv2.CredentialsConfig) error { +func (s *AwsCredentialPersistedState) ReplaceCreds(ctx context.Context, credentialsConfig *awsutil.CredentialsConfig) error { if credentialsConfig == nil { return errors.New("missing new credentials config") } @@ -250,29 +250,29 @@ func AwsCredentialPersistedStateFromProto(secrets *structpb.Struct, attrs *Crede return nil, err } - awsOpts := append([]awsutilv2.Option{}, s.testOpts...) + awsOpts := append([]awsutil.Option{}, s.testOpts...) if accessKeyId != "" && secretAccessKey != "" { awsOpts = append(awsOpts, - awsutilv2.WithAccessKey(accessKeyId), - awsutilv2.WithSecretKey(secretAccessKey), + awsutil.WithAccessKey(accessKeyId), + awsutil.WithSecretKey(secretAccessKey), ) } if attrs.Region != "" { - awsOpts = append(awsOpts, awsutilv2.WithRegion(attrs.Region)) + awsOpts = append(awsOpts, awsutil.WithRegion(attrs.Region)) } if attrs.RoleArn != "" { - awsOpts = append(awsOpts, awsutilv2.WithRoleArn(attrs.RoleArn)) + awsOpts = append(awsOpts, awsutil.WithRoleArn(attrs.RoleArn)) } if attrs.RoleExternalId != "" { - awsOpts = append(awsOpts, awsutilv2.WithRoleExternalId(attrs.RoleExternalId)) + awsOpts = append(awsOpts, awsutil.WithRoleExternalId(attrs.RoleExternalId)) } if attrs.RoleSessionName != "" { - awsOpts = append(awsOpts, awsutilv2.WithRoleSessionName(attrs.RoleSessionName)) + awsOpts = append(awsOpts, awsutil.WithRoleSessionName(attrs.RoleSessionName)) } if len(attrs.RoleTags) != 0 { - awsOpts = append(awsOpts, awsutilv2.WithRoleTags(attrs.RoleTags)) + awsOpts = append(awsOpts, awsutil.WithRoleTags(attrs.RoleTags)) } - credentialsConfig, err := awsutilv2.NewCredentialsConfig(awsOpts...) + credentialsConfig, err := awsutil.NewCredentialsConfig(awsOpts...) if err != nil { return nil, err } @@ -284,7 +284,7 @@ func AwsCredentialPersistedStateFromProto(secrets *structpb.Struct, attrs *Crede // GetCredentialType returns the credential type based on the given // AccessKey/RoleARN. See CredentialType definition for more information. -func GetCredentialType(cc *awsutilv2.CredentialsConfig) CredentialType { +func GetCredentialType(cc *awsutil.CredentialsConfig) CredentialType { if cc == nil { return Unknown } diff --git a/internal/credential/state_test.go b/internal/credential/state_test.go index 6bed2e3..e5c405c 100644 --- a/internal/credential/state_test.go +++ b/internal/credential/state_test.go @@ -13,7 +13,7 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/iam" iamTypes "github.com/aws/aws-sdk-go-v2/service/iam/types" - awsutilv2 "github.com/hashicorp/go-secure-stdlib/awsutil/v2" + "github.com/hashicorp/go-secure-stdlib/awsutil/v2" "github.com/stretchr/testify/require" "google.golang.org/protobuf/types/known/structpb" ) @@ -40,7 +40,7 @@ func TestNewAwsCredentialPersistedState(t *testing.T) { name: "with credentials config", opts: []AwsCredentialPersistedStateOption{ WithCredentialsConfig( - &awsutilv2.CredentialsConfig{ + &awsutil.CredentialsConfig{ AccessKey: "foobar", SecretKey: "bazqux", Region: "us-west-2", @@ -48,7 +48,7 @@ func TestNewAwsCredentialPersistedState(t *testing.T) { ), }, expected: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "foobar", SecretKey: "bazqux", Region: "us-west-2", @@ -67,8 +67,8 @@ func TestNewAwsCredentialPersistedState(t *testing.T) { { name: "double set credentials config", opts: []AwsCredentialPersistedStateOption{ - WithCredentialsConfig(&awsutilv2.CredentialsConfig{}), - WithCredentialsConfig(&awsutilv2.CredentialsConfig{}), + WithCredentialsConfig(&awsutil.CredentialsConfig{}), + WithCredentialsConfig(&awsutil.CredentialsConfig{}), }, expectedErr: "credentials config already set", }, @@ -123,7 +123,7 @@ func TestAwsCredentialPersistedStateFromProto(t *testing.T) { Region: "us-west-2", }, expected: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ Region: "us-west-2", }, }, @@ -135,7 +135,7 @@ func TestAwsCredentialPersistedStateFromProto(t *testing.T) { Region: "us-west-2", }, expected: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ Region: "us-west-2", }, }, @@ -147,7 +147,7 @@ func TestAwsCredentialPersistedStateFromProto(t *testing.T) { Region: "us-west-2", }, expected: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ Region: "us-west-2", }, }, @@ -164,7 +164,7 @@ func TestAwsCredentialPersistedStateFromProto(t *testing.T) { Region: "us-west-2", }, expected: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ Region: "us-west-2", AccessKey: "foobar", SecretKey: "bazqux", @@ -217,7 +217,7 @@ func TestAwsCredentialPersistedStateFromProto(t *testing.T) { Region: "us-west-2", }, expected: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "foobar", SecretKey: "bazqux", Region: "us-west-2", @@ -244,7 +244,7 @@ func TestAwsCredentialPersistedStateFromProto(t *testing.T) { Region: "us-west-2", }, expected: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "foobar", SecretKey: "bazqux", Region: "us-west-2", @@ -264,7 +264,7 @@ func TestAwsCredentialPersistedStateFromProto(t *testing.T) { }, }, expected: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ Region: "us-west-2", RoleARN: "arn:aws:iam::123456789012:role/S3Access", RoleExternalId: "1234567890", @@ -294,7 +294,7 @@ func TestAwsCredentialPersistedStateFromProto(t *testing.T) { }, }, expected: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "foobar", SecretKey: "bazqux", Region: "us-west-2", @@ -352,15 +352,15 @@ func TestAwsCatalogPersistedState_ValidateCreds(t *testing.T) { { name: "validation error", in: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "foobar", SecretKey: "bazqux", Region: "us-west-2", }, - testOpts: []awsutilv2.Option{ - awsutilv2.WithSTSAPIFunc( - awsutilv2.NewMockSTS( - awsutilv2.WithGetCallerIdentityError(errors.New(testGetCallerIdentityErr)), + testOpts: []awsutil.Option{ + awsutil.WithSTSAPIFunc( + awsutil.NewMockSTS( + awsutil.WithGetCallerIdentityError(errors.New(testGetCallerIdentityErr)), ), ), }, @@ -370,12 +370,12 @@ func TestAwsCatalogPersistedState_ValidateCreds(t *testing.T) { { name: "good", in: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "foobar", SecretKey: "bazqux", Region: "us-west-2", }, - testOpts: []awsutilv2.Option{awsutilv2.WithSTSAPIFunc(awsutilv2.NewMockSTS())}, + testOpts: []awsutil.Option{awsutil.WithSTSAPIFunc(awsutil.NewMockSTS())}, }, }, } @@ -399,7 +399,7 @@ func TestAwsCatalogPersistedState_RotateCreds(t *testing.T) { cases := []struct { name string in *AwsCredentialPersistedState - exepected *awsutilv2.CredentialsConfig + exepected *awsutil.CredentialsConfig expectedNonZeroRotatedTime bool expectedErr string }{ @@ -411,7 +411,7 @@ func TestAwsCatalogPersistedState_RotateCreds(t *testing.T) { { name: "cannot delete dynamic credential type", in: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "ASIAfoobar", SecretKey: "bazqux", }, @@ -422,7 +422,7 @@ func TestAwsCatalogPersistedState_RotateCreds(t *testing.T) { { name: "cannot delete unknown credential type", in: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "DNEfoobar", SecretKey: "bazqux", }, @@ -433,15 +433,15 @@ func TestAwsCatalogPersistedState_RotateCreds(t *testing.T) { { name: "rotation error", in: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "AKIAfoobar", SecretKey: "bazqux", Region: "us-west-2", }, - testOpts: []awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithGetUserError(errors.New(testGetUserErr)), + testOpts: []awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithGetUserError(errors.New(testGetUserErr)), ), ), }, @@ -451,18 +451,18 @@ func TestAwsCatalogPersistedState_RotateCreds(t *testing.T) { { name: "good", in: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "AKIAfoobar", SecretKey: "bazqux", Region: "us-west-2", }, - testOpts: []awsutilv2.Option{ - awsutilv2.WithSTSAPIFunc( - awsutilv2.NewMockSTS(), + testOpts: []awsutil.Option{ + awsutil.WithSTSAPIFunc( + awsutil.NewMockSTS(), ), - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithGetUserOutput( + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithGetUserOutput( &iam.GetUserOutput{ User: &iamTypes.User{ Arn: aws.String("arn:aws:iam::123456789012:user/JohnDoe"), @@ -471,7 +471,7 @@ func TestAwsCatalogPersistedState_RotateCreds(t *testing.T) { }, }, ), - awsutilv2.WithCreateAccessKeyOutput( + awsutil.WithCreateAccessKeyOutput( &iam.CreateAccessKeyOutput{ AccessKey: &iamTypes.AccessKey{ AccessKeyId: aws.String("one"), @@ -484,7 +484,7 @@ func TestAwsCatalogPersistedState_RotateCreds(t *testing.T) { ), }, }, - exepected: &awsutilv2.CredentialsConfig{ + exepected: &awsutil.CredentialsConfig{ AccessKey: "one", SecretKey: "two", Region: "us-west-2", @@ -517,8 +517,8 @@ func TestAwsCatalogPersistedState_ReplaceCreds(t *testing.T) { cases := []struct { name string in *AwsCredentialPersistedState - credentialConfig *awsutilv2.CredentialsConfig - expected *awsutilv2.CredentialsConfig + credentialConfig *awsutil.CredentialsConfig + expected *awsutil.CredentialsConfig expectedDeleteCalled bool expectedErr string }{ @@ -530,47 +530,47 @@ func TestAwsCatalogPersistedState_ReplaceCreds(t *testing.T) { { name: "missing credentials config", in: &AwsCredentialPersistedState{}, - credentialConfig: &awsutilv2.CredentialsConfig{}, + credentialConfig: &awsutil.CredentialsConfig{}, expectedErr: "missing credentials config", }, { name: "deletion error", in: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "AKIAfoobar", SecretKey: "bazqux", }, CredsLastRotatedTime: time.Now(), - testOpts: []awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithDeleteAccessKeyError(errors.New(testDeleteAccessKeyErr)), + testOpts: []awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithDeleteAccessKeyError(errors.New(testDeleteAccessKeyErr)), ), ), }, }, - credentialConfig: &awsutilv2.CredentialsConfig{}, + credentialConfig: &awsutil.CredentialsConfig{}, expectedErr: fmt.Sprintf("error deleting old access key: %s", testDeleteAccessKeyErr), }, { name: "good with delete of old rotated", in: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "AKIAfoobar", SecretKey: "bazqux", }, CredsLastRotatedTime: time.Now(), - testOpts: []awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( + testOpts: []awsutil.Option{ + awsutil.WithIAMAPIFunc( newTestMockIAM(state), ), }, }, - credentialConfig: &awsutilv2.CredentialsConfig{ + credentialConfig: &awsutil.CredentialsConfig{ AccessKey: "one", SecretKey: "two", }, - expected: &awsutilv2.CredentialsConfig{ + expected: &awsutil.CredentialsConfig{ AccessKey: "one", SecretKey: "two", }, @@ -579,21 +579,21 @@ func TestAwsCatalogPersistedState_ReplaceCreds(t *testing.T) { { name: "good without delete of old rotated", in: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "AKIAfoobar", SecretKey: "bazqux", }, - testOpts: []awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( + testOpts: []awsutil.Option{ + awsutil.WithIAMAPIFunc( newTestMockIAM(state), ), }, }, - credentialConfig: &awsutilv2.CredentialsConfig{ + credentialConfig: &awsutil.CredentialsConfig{ AccessKey: "one", SecretKey: "two", }, - expected: &awsutilv2.CredentialsConfig{ + expected: &awsutil.CredentialsConfig{ AccessKey: "one", SecretKey: "two", }, @@ -635,7 +635,7 @@ func TestAwsCatalogPersistedState_DeleteCreds(t *testing.T) { { name: "cannot delete dynamic credential type", in: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "ASIAfoobar", SecretKey: "bazqux", }, @@ -646,7 +646,7 @@ func TestAwsCatalogPersistedState_DeleteCreds(t *testing.T) { { name: "cannot delete unknown credential type", in: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "DNEfoobar", SecretKey: "bazqux", }, @@ -657,14 +657,14 @@ func TestAwsCatalogPersistedState_DeleteCreds(t *testing.T) { { name: "deletion error", in: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "AKIAfoobar", SecretKey: "bazqux", }, - testOpts: []awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithDeleteAccessKeyError(errors.New(testDeleteAccessKeyErr)), + testOpts: []awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithDeleteAccessKeyError(errors.New(testDeleteAccessKeyErr)), ), ), }, @@ -674,14 +674,14 @@ func TestAwsCatalogPersistedState_DeleteCreds(t *testing.T) { { name: "deletion error, but OK because key was just gone", in: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "AKIAfoobar", SecretKey: "bazqux", }, - testOpts: []awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithDeleteAccessKeyError( + testOpts: []awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithDeleteAccessKeyError( &iamTypes.NoSuchEntityException{}, ), ), @@ -692,13 +692,13 @@ func TestAwsCatalogPersistedState_DeleteCreds(t *testing.T) { { name: "good", in: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "AKIAfoobar", SecretKey: "bazqux", }, - testOpts: []awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM(), + testOpts: []awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM(), ), }, }, @@ -732,24 +732,24 @@ func TestAwsCatalogPersistedState_GenerateCredentialChain(t *testing.T) { { name: "error", in: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "foobar", SecretKey: "bazqux", }, - testOpts: []awsutilv2.Option{awsutilv2.MockOptionErr(errors.New(testOptionErr))}, + testOpts: []awsutil.Option{awsutil.MockOptionErr(errors.New(testOptionErr))}, }, expectedErr: fmt.Sprintf("error reading options in GenerateCredentialChain: %s", testOptionErr), }, { name: "static credentials", in: &AwsCredentialPersistedState{ - CredentialsConfig: &awsutilv2.CredentialsConfig{ + CredentialsConfig: &awsutil.CredentialsConfig{ AccessKey: "AKIA_foobar", SecretKey: "bazqux", }, - testOpts: []awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM(), + testOpts: []awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM(), ), }, }, @@ -757,22 +757,22 @@ func TestAwsCatalogPersistedState_GenerateCredentialChain(t *testing.T) { { name: "assume role", in: &AwsCredentialPersistedState{ - CredentialsConfig: func() *awsutilv2.CredentialsConfig { - config, err := awsutilv2.NewCredentialsConfig( - awsutilv2.WithRegion("us-west-2"), - awsutilv2.WithRoleArn("arn:aws:iam::123456789012:role/S3Access"), - awsutilv2.WithRoleExternalId("1234567890"), - awsutilv2.WithRoleSessionName("assume-role"), - awsutilv2.WithRoleTags(map[string]string{ + CredentialsConfig: func() *awsutil.CredentialsConfig { + config, err := awsutil.NewCredentialsConfig( + awsutil.WithRegion("us-west-2"), + awsutil.WithRoleArn("arn:aws:iam::123456789012:role/S3Access"), + awsutil.WithRoleExternalId("1234567890"), + awsutil.WithRoleSessionName("assume-role"), + awsutil.WithRoleTags(map[string]string{ "foo": "bar", }), ) require.NoError(err) return config }(), - testOpts: []awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM(), + testOpts: []awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM(), ), }, }, @@ -794,7 +794,7 @@ func TestAwsCatalogPersistedState_GenerateCredentialChain(t *testing.T) { func TestGetCredentialType(t *testing.T) { tests := []struct { name string - credConfig *awsutilv2.CredentialsConfig + credConfig *awsutil.CredentialsConfig expectedCredType CredentialType }{ { @@ -804,32 +804,32 @@ func TestGetCredentialType(t *testing.T) { }, { name: "empty credential config", - credConfig: &awsutilv2.CredentialsConfig{}, + credConfig: &awsutil.CredentialsConfig{}, expectedCredType: Unknown, }, { name: "static aws", - credConfig: &awsutilv2.CredentialsConfig{AccessKey: "AKIAfoobar"}, + credConfig: &awsutil.CredentialsConfig{AccessKey: "AKIAfoobar"}, expectedCredType: StaticAWS, }, { name: "static other", - credConfig: &awsutilv2.CredentialsConfig{AccessKey: "cK3kNFa24foobar"}, + credConfig: &awsutil.CredentialsConfig{AccessKey: "cK3kNFa24foobar"}, expectedCredType: StaticOther, }, { name: "dynamic aws - role arn", - credConfig: &awsutilv2.CredentialsConfig{RoleARN: "arn:aws:iam::123456789012:role/S3Access"}, + credConfig: &awsutil.CredentialsConfig{RoleARN: "arn:aws:iam::123456789012:role/S3Access"}, expectedCredType: DynamicAWS, }, { name: "dynamic aws - access key", - credConfig: &awsutilv2.CredentialsConfig{AccessKey: "ASIAfoobar"}, + credConfig: &awsutil.CredentialsConfig{AccessKey: "ASIAfoobar"}, expectedCredType: DynamicAWS, }, { name: "dynamic aws - role arn and access key", - credConfig: &awsutilv2.CredentialsConfig{AccessKey: "ASIAfoobar", RoleARN: "arn:aws:iam::123456789012:role/S3Access"}, + credConfig: &awsutil.CredentialsConfig{AccessKey: "ASIAfoobar", RoleARN: "arn:aws:iam::123456789012:role/S3Access"}, expectedCredType: DynamicAWS, }, } diff --git a/internal/credential/testing.go b/internal/credential/testing.go index 5224eac..3fcb7c7 100644 --- a/internal/credential/testing.go +++ b/internal/credential/testing.go @@ -8,7 +8,7 @@ import ( "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/iam" - awsutilv2 "github.com/hashicorp/go-secure-stdlib/awsutil/v2" + "github.com/hashicorp/go-secure-stdlib/awsutil/v2" "google.golang.org/protobuf/types/known/structpb" ) @@ -28,7 +28,7 @@ func (s *testMockIAMState) Reset() { } type testMockIAM struct { - awsutilv2.IAMClient + awsutil.IAMClient State *testMockIAMState } @@ -38,12 +38,12 @@ func (m *testMockIAM) DeleteAccessKey(ctx context.Context, input *iam.DeleteAcce return m.IAMClient.DeleteAccessKey(ctx, input, opts...) } -func newTestMockIAM(state *testMockIAMState, opts ...awsutilv2.MockIAMOption) awsutilv2.IAMAPIFunc { - return func(awsConfig *aws.Config) (awsutilv2.IAMClient, error) { +func newTestMockIAM(state *testMockIAMState, opts ...awsutil.MockIAMOption) awsutil.IAMAPIFunc { + return func(awsConfig *aws.Config) (awsutil.IAMClient, error) { m := &testMockIAM{ State: state, } - f := awsutilv2.NewMockIAM(opts...) + f := awsutil.NewMockIAM(opts...) var err error m.IAMClient, err = f(awsConfig) diff --git a/plugin/service/host/plugin_test.go b/plugin/service/host/plugin_test.go index 434afe7..20e0990 100644 --- a/plugin/service/host/plugin_test.go +++ b/plugin/service/host/plugin_test.go @@ -17,7 +17,7 @@ import ( "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/hostcatalogs" "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/hostsets" pb "github.com/hashicorp/boundary/sdk/pbs/plugin" - awsutilv2 "github.com/hashicorp/go-secure-stdlib/awsutil/v2" + "github.com/hashicorp/go-secure-stdlib/awsutil/v2" "github.com/stretchr/testify/require" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" @@ -145,10 +145,10 @@ func TestPluginOnCreateCatalogErr(t *testing.T) { }, }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithGetUserError(errors.New(testGetUserErr)), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithGetUserError(errors.New(testGetUserErr)), ), ), }), @@ -176,10 +176,10 @@ func TestPluginOnCreateCatalogErr(t *testing.T) { }, }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.WithSTSAPIFunc( - awsutilv2.NewMockSTS( - awsutilv2.WithGetCallerIdentityError(errors.New(testGetCallerIdentityErr)), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.WithSTSAPIFunc( + awsutil.NewMockSTS( + awsutil.WithGetCallerIdentityError(errors.New(testGetCallerIdentityErr)), ), ), }), @@ -370,10 +370,10 @@ func TestPluginOnUpdateCatalogErr(t *testing.T) { }, }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithDeleteAccessKeyError(errors.New(testDeleteAccessKeyErr)), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithDeleteAccessKeyError(errors.New(testDeleteAccessKeyErr)), ), ), }), @@ -403,10 +403,10 @@ func TestPluginOnUpdateCatalogErr(t *testing.T) { }, }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithGetUserError(errors.New(testGetUserErr)), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithGetUserError(errors.New(testGetUserErr)), ), ), }), @@ -493,10 +493,10 @@ func TestPluginOnDeleteCatalogErr(t *testing.T) { }, }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithDeleteAccessKeyError(errors.New(testDeleteAccessKeyErr)), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithDeleteAccessKeyError(errors.New(testDeleteAccessKeyErr)), ), ), }), @@ -729,8 +729,8 @@ func TestPluginOnCreateSetErr(t *testing.T) { }, }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.MockOptionErr(errors.New(testOptionErr)), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.MockOptionErr(errors.New(testOptionErr)), }), }, expectedErrContains: fmt.Sprintf("error loading persisted state: error reading options in NewCredentialsConfig: %s", testOptionErr), @@ -1098,8 +1098,8 @@ func TestPluginOnUpdateSetErr(t *testing.T) { }, }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.MockOptionErr(errors.New(testOptionErr)), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.MockOptionErr(errors.New(testOptionErr)), }), }, expectedErrContains: fmt.Sprintf("error loading persisted state: error reading options in NewCredentialsConfig: %s", testOptionErr), @@ -1458,8 +1458,8 @@ func TestPluginListHostsErr(t *testing.T) { }, }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.MockOptionErr(errors.New(testOptionErr)), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.MockOptionErr(errors.New(testOptionErr)), }), }, expectedErrContains: fmt.Sprintf("error loading persisted state: error reading options in NewCredentialsConfig: %s", testOptionErr), diff --git a/plugin/service/host/state_test.go b/plugin/service/host/state_test.go index 040bfc7..4be814f 100644 --- a/plugin/service/host/state_test.go +++ b/plugin/service/host/state_test.go @@ -8,14 +8,14 @@ import ( "testing" "github.com/hashicorp/boundary-plugin-aws/internal/credential" - awsutilv2 "github.com/hashicorp/go-secure-stdlib/awsutil/v2" + "github.com/hashicorp/go-secure-stdlib/awsutil/v2" "github.com/stretchr/testify/require" ) func TestAwsCatalogPersistedStateEC2Client(t *testing.T) { require := require.New(t) cred, err := credential.NewAwsCredentialPersistedState( - credential.WithCredentialsConfig(&awsutilv2.CredentialsConfig{ + credential.WithCredentialsConfig(&awsutil.CredentialsConfig{ Region: "us-west-2", AccessKey: "foobar", SecretKey: "barfoo", diff --git a/plugin/service/storage/plugin_test.go b/plugin/service/storage/plugin_test.go index 9f9a807..7d47fa2 100644 --- a/plugin/service/storage/plugin_test.go +++ b/plugin/service/storage/plugin_test.go @@ -25,7 +25,7 @@ import ( "github.com/hashicorp/boundary-plugin-aws/internal/credential" "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/storagebuckets" pb "github.com/hashicorp/boundary/sdk/pbs/plugin" - awsutilv2 "github.com/hashicorp/go-secure-stdlib/awsutil/v2" + "github.com/hashicorp/go-secure-stdlib/awsutil/v2" "github.com/stretchr/testify/require" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" @@ -149,10 +149,10 @@ func TestStoragePlugin_OnCreateStorageBucket(t *testing.T) { }, }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithGetUserError(errors.New(testGetUserErr)), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithGetUserError(errors.New(testGetUserErr)), ), ), }), @@ -284,13 +284,13 @@ func TestStoragePlugin_OnCreateStorageBucket(t *testing.T) { }, credOpts: []credential.AwsCredentialPersistedStateOption{ credential.WithStateTestOpts( - []awsutilv2.Option{ - awsutilv2.WithSTSAPIFunc( - awsutilv2.NewMockSTS(), + []awsutil.Option{ + awsutil.WithSTSAPIFunc( + awsutil.NewMockSTS(), ), - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithGetUserOutput( + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithGetUserOutput( &iam.GetUserOutput{ User: &iamTypes.User{ Arn: aws.String("arn:aws:iam::123456789012:user/JohnDoe"), @@ -299,7 +299,7 @@ func TestStoragePlugin_OnCreateStorageBucket(t *testing.T) { }, }, ), - awsutilv2.WithCreateAccessKeyOutput( + awsutil.WithCreateAccessKeyOutput( &iam.CreateAccessKeyOutput{ AccessKey: &iamTypes.AccessKey{ AccessKeyId: aws.String("one"), @@ -339,10 +339,10 @@ func TestStoragePlugin_OnCreateStorageBucket(t *testing.T) { }, credOpts: []credential.AwsCredentialPersistedStateOption{ credential.WithStateTestOpts( - []awsutilv2.Option{ - awsutilv2.WithSTSAPIFunc( - awsutilv2.NewMockSTS( - awsutilv2.WithAssumeRoleOutput(&sts.AssumeRoleOutput{ + []awsutil.Option{ + awsutil.WithSTSAPIFunc( + awsutil.NewMockSTS( + awsutil.WithAssumeRoleOutput(&sts.AssumeRoleOutput{ Credentials: &types.Credentials{ AccessKeyId: aws.String("ASIAfoobar"), Expiration: aws.Time(time.Now().Add(time.Hour)), @@ -674,10 +674,10 @@ func TestStoragePlugin_OnUpdateStorageBucket(t *testing.T) { ), }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithDeleteAccessKeyError(errors.New(testDeleteAccessKeyErr)), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithDeleteAccessKeyError(errors.New(testDeleteAccessKeyErr)), ), ), }), @@ -713,10 +713,10 @@ func TestStoragePlugin_OnUpdateStorageBucket(t *testing.T) { }, }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithGetUserError(errors.New(testGetUserErr)), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithGetUserError(errors.New(testGetUserErr)), ), ), }), @@ -844,13 +844,13 @@ func TestStoragePlugin_OnUpdateStorageBucket(t *testing.T) { }, }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.WithSTSAPIFunc( - awsutilv2.NewMockSTS(), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.WithSTSAPIFunc( + awsutil.NewMockSTS(), ), - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithGetUserOutput( + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithGetUserOutput( &iam.GetUserOutput{ User: &iamTypes.User{ Arn: aws.String("arn:aws:iam::123456789012:user/JohnDoe"), @@ -859,7 +859,7 @@ func TestStoragePlugin_OnUpdateStorageBucket(t *testing.T) { }, }, ), - awsutilv2.WithCreateAccessKeyOutput( + awsutil.WithCreateAccessKeyOutput( &iam.CreateAccessKeyOutput{ AccessKey: &iamTypes.AccessKey{ AccessKeyId: aws.String("AKIA_one"), @@ -1111,10 +1111,10 @@ func TestStoragePlugin_OnUpdateStorageBucket(t *testing.T) { ), }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithDeleteAccessKeyError(fmt.Errorf("delete access key fail oops")), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithDeleteAccessKeyError(fmt.Errorf("delete access key fail oops")), ), ), }), @@ -1154,9 +1154,9 @@ func TestStoragePlugin_OnUpdateStorageBucket(t *testing.T) { }, }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM(), // DeleteAccessKey Success + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM(), // DeleteAccessKey Success ), }), }, @@ -1306,13 +1306,13 @@ func TestStoragePlugin_OnUpdateStorageBucket(t *testing.T) { ), }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.WithSTSAPIFunc( - awsutilv2.NewMockSTS(), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.WithSTSAPIFunc( + awsutil.NewMockSTS(), ), - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithGetUserOutput( + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithGetUserOutput( &iam.GetUserOutput{ User: &iamTypes.User{ Arn: aws.String("arn:aws:iam::123456789012:user/JohnDoe"), @@ -1321,7 +1321,7 @@ func TestStoragePlugin_OnUpdateStorageBucket(t *testing.T) { }, }, ), - awsutilv2.WithCreateAccessKeyError(fmt.Errorf("create access key fail oops")), + awsutil.WithCreateAccessKeyError(fmt.Errorf("create access key fail oops")), ), ), }), @@ -1361,13 +1361,13 @@ func TestStoragePlugin_OnUpdateStorageBucket(t *testing.T) { }, }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.WithSTSAPIFunc( - awsutilv2.NewMockSTS(), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.WithSTSAPIFunc( + awsutil.NewMockSTS(), ), - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithGetUserOutput( + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithGetUserOutput( &iam.GetUserOutput{ User: &iamTypes.User{ Arn: aws.String("arn:aws:iam::123456789012:user/JohnDoe"), @@ -1376,7 +1376,7 @@ func TestStoragePlugin_OnUpdateStorageBucket(t *testing.T) { }, }, ), - awsutilv2.WithCreateAccessKeyOutput( + awsutil.WithCreateAccessKeyOutput( &iam.CreateAccessKeyOutput{ AccessKey: &iamTypes.AccessKey{ AccessKeyId: aws.String("AKIA_one"), @@ -1541,10 +1541,10 @@ func TestStoragePlugin_OnDeleteStorageBucket(t *testing.T) { }, }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithDeleteAccessKeyError(errors.New(testDeleteAccessKeyErr)), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithDeleteAccessKeyError(errors.New(testDeleteAccessKeyErr)), ), ), }), @@ -1573,10 +1573,10 @@ func TestStoragePlugin_OnDeleteStorageBucket(t *testing.T) { }, }, credOpts: []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM( - awsutilv2.WithDeleteAccessKeyError(nil), + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM( + awsutil.WithDeleteAccessKeyError(nil), ), ), }), diff --git a/plugin/service/storage/state_test.go b/plugin/service/storage/state_test.go index 66b30d5..a47831b 100644 --- a/plugin/service/storage/state_test.go +++ b/plugin/service/storage/state_test.go @@ -8,34 +8,34 @@ import ( "testing" "github.com/hashicorp/boundary-plugin-aws/internal/credential" - awsutilv2 "github.com/hashicorp/go-secure-stdlib/awsutil/v2" + "github.com/hashicorp/go-secure-stdlib/awsutil/v2" "github.com/stretchr/testify/require" ) func TestAwsStoragePersistedStateS3Client(t *testing.T) { cases := []struct { name string - creds *awsutilv2.CredentialsConfig + creds *awsutil.CredentialsConfig opts []awsStoragePersistedStateOption - awsOpts []awsutilv2.Option + awsOpts []awsutil.Option s3Opts []s3Option expectedRegion string expectedEndpoint string }{ { name: "static credentials", - creds: func() *awsutilv2.CredentialsConfig { - creds, err := awsutilv2.NewCredentialsConfig( - awsutilv2.WithRegion("us-west-2"), - awsutilv2.WithAccessKey("foobar"), - awsutilv2.WithSecretKey("barfoo"), + creds: func() *awsutil.CredentialsConfig { + creds, err := awsutil.NewCredentialsConfig( + awsutil.WithRegion("us-west-2"), + awsutil.WithAccessKey("foobar"), + awsutil.WithSecretKey("barfoo"), ) require.NoError(t, err) return creds }(), - awsOpts: []awsutilv2.Option{ - awsutilv2.WithIAMAPIFunc( - awsutilv2.NewMockIAM(), + awsOpts: []awsutil.Option{ + awsutil.WithIAMAPIFunc( + awsutil.NewMockIAM(), ), }, opts: []awsStoragePersistedStateOption{ diff --git a/plugin/service/storage/testing.go b/plugin/service/storage/testing.go index 6613797..33a3453 100644 --- a/plugin/service/storage/testing.go +++ b/plugin/service/storage/testing.go @@ -17,7 +17,7 @@ import ( "github.com/hashicorp/boundary-plugin-aws/internal/credential" "github.com/hashicorp/boundary/sdk/pbs/controller/api/resources/storagebuckets" pb "github.com/hashicorp/boundary/sdk/pbs/plugin" - awsutilv2 "github.com/hashicorp/go-secure-stdlib/awsutil/v2" + "github.com/hashicorp/go-secure-stdlib/awsutil/v2" "github.com/stretchr/testify/require" "google.golang.org/grpc" "google.golang.org/protobuf/types/known/structpb" @@ -146,9 +146,6 @@ func newTestMockS3(state *testMockS3State, opts ...testMockS3Option) s3APIFunc { if cfg.Region != "" { m.Region = cfg.Region } - // if cfg. != nil { - // m.Endpoint = cfg.EndpointResolverWithOptions - // } } return m, nil @@ -287,10 +284,10 @@ func deepCopyPutObjectRequest(v *pb.PutObjectRequest) *pb.PutObjectRequest { func validSTSMock() []credential.AwsCredentialPersistedStateOption { return []credential.AwsCredentialPersistedStateOption{ - credential.WithStateTestOpts([]awsutilv2.Option{ - awsutilv2.WithSTSAPIFunc( - awsutilv2.NewMockSTS( - awsutilv2.WithGetCallerIdentityOutput(&sts.GetCallerIdentityOutput{ + credential.WithStateTestOpts([]awsutil.Option{ + awsutil.WithSTSAPIFunc( + awsutil.NewMockSTS( + awsutil.WithGetCallerIdentityOutput(&sts.GetCallerIdentityOutput{ Account: aws.String("0123456789"), Arn: aws.String("arn:aws:iam::0123456789:user/test"), UserId: aws.String("test"), diff --git a/testing/testing.go b/testing/testing.go index 4b56fde..682a64e 100644 --- a/testing/testing.go +++ b/testing/testing.go @@ -16,7 +16,7 @@ import ( "github.com/aws/smithy-go" "github.com/hashicorp/boundary-plugin-aws/internal/credential" "github.com/hashicorp/boundary-plugin-aws/internal/values" - awsutilv2 "github.com/hashicorp/go-secure-stdlib/awsutil/v2" + "github.com/hashicorp/go-secure-stdlib/awsutil/v2" tfjson "github.com/hashicorp/terraform-json" "github.com/stretchr/testify/require" "google.golang.org/protobuf/types/known/structpb" @@ -280,9 +280,9 @@ func requireCredentialsInvalid(t *testing.T, accessKeyId, secretAccessKey string t.Helper() require := require.New(t) - c, err := awsutilv2.NewCredentialsConfig( - awsutilv2.WithAccessKey(accessKeyId), - awsutilv2.WithSecretKey(secretAccessKey), + c, err := awsutil.NewCredentialsConfig( + awsutil.WithAccessKey(accessKeyId), + awsutil.WithSecretKey(secretAccessKey), ) require.NoError(err) @@ -317,9 +317,9 @@ func requireCredentialsValid(t *testing.T, accessKeyId, secretAccessKey string) t.Helper() require := require.New(t) - c, err := awsutilv2.NewCredentialsConfig( - awsutilv2.WithAccessKey(accessKeyId), - awsutilv2.WithSecretKey(secretAccessKey), + c, err := awsutil.NewCredentialsConfig( + awsutil.WithAccessKey(accessKeyId), + awsutil.WithSecretKey(secretAccessKey), ) require.NoError(err) _, err = c.GetCallerIdentity(context.Background())