示例#1
0
// Helper function to create an EFS Mount target.
func CreateMountTarget(e *efs.EFS, i string, s string) (*efs.MountTargetDescription, error) {
	var security []*string

	// Determine if we need to assign a security group to this mount point, otherwise defer
	// to the default group.
	if *cliSecurity != "" {
		security = []*string{
			cliSecurity,
		}
	}

	params := &efs.CreateMountTargetInput{
		FileSystemId:   aws.String(i),
		SubnetId:       aws.String(s),
		SecurityGroups: security,
	}
	resp, err := e.CreateMountTarget(params)
	if err != nil {
		return nil, err
	}

	// Wait for the mount point to become available.
	for {
		mnt, err := DescribeMountTarget(e, i)
		if err != nil {
			return nil, err
		}
		if len(mnt.MountTargets) > 0 {
			if *mnt.MountTargets[0].LifeCycleState == efsAvail {
				break
			}
		}
		time.Sleep(10 * time.Second)
	}

	return resp, nil
}