func destroyEfsResource()

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
	}
}