Skip to content

Commit

Permalink
Add dbSubnetGroup as outputArtifact to CreateRDSSnapshot function (
Browse files Browse the repository at this point in the history
…#1952)

* Update RDS postgres app implementation, execute postgres command from Deployment

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Fix Lint Remove unnecessary trailing new line

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Initialize testWorkloadName field

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Move BastionWorkload function to be used as utility

* Minor refactor

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Remove export of BastionWorkload() utility function

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Add app name in error messages

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Minor refactor

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Minor refactor

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Update RDS Aurora app implementation, execute mysql query from Deployment

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Remove unused methods from rds aurora app

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Minor refactor

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Add helper methods to add DBSubnetGroup

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* add callers to create and delete dbsubnetGroups in rds postgres app test

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* add callers to create and delete dbsubnetGroups in rds aurora app test

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Refactor code

* Refactor code

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* remove duplicate import

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* minor refactor

* correct indentation

* Fix error

* Minor refactor

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Minor refactor

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Update RDS Aurora app implementation, execute mysql query from Deployment

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Remove unused methods from rds aurora app

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Minor refactor

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* minor refactor

* Minor refactor

* Pass VpcId while creating security group

* Use securityGroup ID instead of security group name to authorizeSecurityGroupIngress

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Minor Fix

* [Refactor] Add function to get VPCId for RDS apps

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Remove unnecessary comment

* Modify Create RDS Snapshot function to add dbSubnetGroup as outputArtifact

* Refactor code

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Use switch case

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Refactor switch case

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

* Remove unnecessary comment

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>

---------

Signed-off-by: Akanksha Kumari <akankshakumari393@gmail.com>
  • Loading branch information
akankshakumari393 authored Mar 28, 2023
1 parent e3f6654 commit 45ccc4a
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 0 deletions.
14 changes: 14 additions & 0 deletions pkg/function/create_rds_snapshot.go
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,8 @@ const (
CreateRDSSnapshotSecurityGroupID = "securityGroupID"
// Allocated Storage Amount
CreateRDSSnapshotAllocatedStorage = "allocatedStorage"
// DB Subnet Group Name
CreateRDSSnapshotDBSubnetGroup = "dbSubnetGroup"
// DBEngineAurora has db engine aurora for MySQL 5.6-compatible
DBEngineAurora RDSDBEngine = "aurora"
// DBEngineAuroraMySQL has db engine for MySQL 5.7-compatible Aurora
Expand Down Expand Up @@ -131,11 +133,23 @@ func createRDSSnapshot(ctx context.Context, instanceID string, dbEngine RDSDBEng
return nil, errors.Wrapf(err, "Failed to create securityGroupID artifact. InstanceID=%s", instanceID)
}

var dbSubnetGroup *string
switch {
case isAuroraCluster(string(dbEngine)):
dbSubnetGroup, e = GetRDSAuroraDbSubnetGroup(ctx, rdsCli, instanceID)
default:
dbSubnetGroup, e = GetRDSDbSubnetGroup(ctx, rdsCli, instanceID)
}
if e != nil {
return nil, errors.Wrapf(e, "Failed to get dbSubnetGroup ids. InstanceID=%s", instanceID)
}

output := map[string]interface{}{
CreateRDSSnapshotSnapshotID: snapshotID,
CreateRDSSnapshotInstanceIDArg: instanceID,
CreateRDSSnapshotSecurityGroupID: string(sgIDYaml),
CreateRDSSnapshotAllocatedStorage: strconv.FormatInt(allocatedStorage, 10) + "GiB",
CreateRDSSnapshotDBSubnetGroup: &dbSubnetGroup,
}
return output, nil
}
Expand Down
27 changes: 27 additions & 0 deletions pkg/function/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -248,3 +248,30 @@ func isAuroraCluster(engine string) bool {
}
return false
}

func GetRDSDbSubnetGroup(ctx context.Context, rdsCli *rds.RDS, instanceID string) (*string, error) {
result, err := rdsCli.DescribeDBInstances(ctx, instanceID)
if err != nil {
return nil, err
}
if len(result.DBInstances) == 0 {
return nil, errors.Errorf("Could not get DBInstance with the instanceID %s", instanceID)
}
return result.DBInstances[0].DBSubnetGroup.DBSubnetGroupName, nil
}

func GetRDSAuroraDbSubnetGroup(ctx context.Context, rdsCli *rds.RDS, instanceID string) (*string, error) {
desc, err := rdsCli.DescribeDBClusters(ctx, instanceID)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
if aerr.Code() != rdserr.ErrCodeDBClusterNotFoundFault {
return nil, err
}
return nil, nil
}
}
if len(desc.DBClusters) == 0 {
return nil, errors.Errorf("Could not get DBCluster with the instanceID %s", instanceID)
}
return desc.DBClusters[0].DBSubnetGroup, nil
}

0 comments on commit 45ccc4a

Please sign in to comment.