func (d *driver) getFileSystemLifeCycleState( svc *awsefs.EFS, fileSystemID string) (string, error) { resp, err := svc.DescribeFileSystems( &awsefs.DescribeFileSystemsInput{ FileSystemId: aws.String(fileSystemID)}) if err != nil { return "", err } fileSystem := resp.FileSystems[0] return *fileSystem.LifeCycleState, nil }
// Retrieve all filesystems with tags from AWS API. This is very expensive // operation as it issues AWS SDK call per filesystem to retrieve tags. func (d *driver) getAllFileSystems( svc *awsefs.EFS) (filesystems []*awsefs.FileSystemDescription, err error) { resp, err := svc.DescribeFileSystems(&awsefs.DescribeFileSystemsInput{}) if err != nil { return nil, err } filesystems = append(filesystems, resp.FileSystems...) for resp.NextMarker != nil { resp, err = svc.DescribeFileSystems(&awsefs.DescribeFileSystemsInput{ Marker: resp.NextMarker, }) if err != nil { return nil, err } filesystems = append(filesystems, resp.FileSystems...) } return filesystems, nil }
// Helper function to describe EFS Filesystems. func DescribeFilesystem(e *efs.EFS, n string) (*efs.DescribeFileSystemsOutput, error) { params := &efs.DescribeFileSystemsInput{ CreationToken: aws.String(n), } return e.DescribeFileSystems(params) }