in tools/workflow/clean_aws_resources.go [401:437]
func destroyEfsResource() {
//Set up aws go sdk efs client
testSession, err := session.NewSession()
if err != nil {
log.Fatalf("Error creating session %v", err)
}
efsclient := efs.New(testSession)
//get efs to delete
var nextToken *string
for {
describeFileSystemsInput := efs.DescribeFileSystemsInput{Marker: nextToken}
describeFileSystemsOutput, err := efsclient.DescribeFileSystems(&describeFileSystemsInput)
if err != nil {
log.Fatalf("Failed to get efs for error %v", err)
}
for _, fileSystem := range describeFileSystemsOutput.FileSystems {
//only delete system if older than 5 days and not mounted
if time.Now().UTC().Add(pastDayDeleteCalculation).After(*fileSystem.CreationTime) && *fileSystem.NumberOfMountTargets == 0 {
log.Printf("Try to delete file system %v launch-date %v", *fileSystem.FileSystemId, fileSystem.CreationTime)
terminateFileSystemsInput := efs.DeleteFileSystemInput{FileSystemId: fileSystem.FileSystemId}
_, err = efsclient.DeleteFileSystem(&terminateFileSystemsInput)
if err != nil {
log.Printf("Failed to terminate file system %v because of %v", terminateFileSystemsInput, err)
}
}
}
if describeFileSystemsOutput.NextMarker == nil {
break
}
nextToken = describeFileSystemsOutput.NextMarker
}
}