code.cloudfoundry.org/cli@v7.1.0+incompatible/command/v7/allow_space_ssh_command.go (about)

     1  package v7
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/actor/actionerror"
     5  	"code.cloudfoundry.org/cli/command/flag"
     6  )
     7  
     8  type AllowSpaceSSHCommand struct {
     9  	BaseCommand
    10  
    11  	RequiredArgs    flag.Space  `positional-args:"yes"`
    12  	usage           interface{} `usage:"CF_NAME allow-space-ssh SPACE_NAME"`
    13  	relatedCommands interface{} `related_commands:"enable-ssh, space-ssh-allowed, ssh, ssh-enabled"`
    14  }
    15  
    16  func (cmd *AllowSpaceSSHCommand) Execute(args []string) error {
    17  
    18  	err := cmd.SharedActor.CheckTarget(true, false)
    19  	if err != nil {
    20  		return err
    21  	}
    22  
    23  	currentUserName, err := cmd.Config.CurrentUserName()
    24  	if err != nil {
    25  		return err
    26  	}
    27  
    28  	targetedOrgGUID := cmd.Config.TargetedOrganization().GUID
    29  	inputSpace := cmd.RequiredArgs.Space
    30  
    31  	cmd.UI.DisplayTextWithFlavor("Enabling ssh support for space {{.Space}} as {{.CurrentUserName}}...", map[string]interface{}{
    32  		"Space":           inputSpace,
    33  		"CurrentUserName": currentUserName,
    34  	})
    35  
    36  	warnings, err := cmd.Actor.UpdateSpaceFeature(inputSpace, targetedOrgGUID, true, "ssh")
    37  
    38  	cmd.UI.DisplayWarnings(warnings)
    39  
    40  	if _, ok := err.(actionerror.SpaceSSHAlreadyEnabledError); ok {
    41  		cmd.UI.DisplayText(err.Error())
    42  		cmd.UI.DisplayOK()
    43  		return nil
    44  	}
    45  
    46  	if err != nil {
    47  		return err
    48  	}
    49  
    50  	cmd.UI.DisplayOK()
    51  
    52  	return err
    53  
    54  }