github.com/LukasHeimann/cloudfoundrycli/v8@v8.4.4/command/v7/delete_security_group_command.go (about) 1 package v7 2 3 import ( 4 "github.com/LukasHeimann/cloudfoundrycli/v8/actor/actionerror" 5 "github.com/LukasHeimann/cloudfoundrycli/v8/command/flag" 6 ) 7 8 type DeleteSecurityGroupCommand struct { 9 BaseCommand 10 11 RequiredArgs flag.SecurityGroup `positional-args:"yes"` 12 Force bool `long:"force" short:"f" description:"Force deletion without confirmation"` 13 usage interface{} `usage:"CF_NAME delete-security-group SECURITY_GROUP [-f]\n\nTIP: If Dynamic ASG's are enabled, changes will automatically apply for running and staging applications. Otherwise, changes will require an app restart (for running) or restage (for staging) to apply to existing applications."` 14 relatedCommands interface{} `related_commands:"security-groups"` 15 } 16 17 func (cmd *DeleteSecurityGroupCommand) Execute(args []string) error { 18 var err error 19 20 err = cmd.SharedActor.CheckTarget(false, false) 21 if err != nil { 22 return err 23 } 24 25 user, err := cmd.Actor.GetCurrentUser() 26 if err != nil { 27 return err 28 } 29 30 if !cmd.Force { 31 promptMessage := "Really delete the security group {{.securityGroup}}?" 32 deleteSecurityGroup, promptErr := cmd.UI.DisplayBoolPrompt(false, promptMessage, map[string]interface{}{"securityGroup": cmd.RequiredArgs.SecurityGroup}) 33 34 if promptErr != nil { 35 return promptErr 36 } 37 38 if !deleteSecurityGroup { 39 cmd.UI.DisplayText("Security group '{{.securityGroup}}' has not been deleted.", map[string]interface{}{ 40 "securityGroup": cmd.RequiredArgs.SecurityGroup, 41 }) 42 return nil 43 } 44 } 45 46 cmd.UI.DisplayTextWithFlavor("Deleting security group {{.securityGroup}} as {{.username}}...", map[string]interface{}{ 47 "securityGroup": cmd.RequiredArgs.SecurityGroup, 48 "username": user.Name, 49 }) 50 51 warnings, err := cmd.Actor.DeleteSecurityGroup(cmd.RequiredArgs.SecurityGroup) 52 cmd.UI.DisplayWarnings(warnings) 53 if err != nil { 54 switch err.(type) { 55 case actionerror.SecurityGroupNotFoundError: 56 cmd.UI.DisplayWarning("Security group '{{.securityGroup}}' does not exist.", map[string]interface{}{ 57 "securityGroup": cmd.RequiredArgs.SecurityGroup, 58 }) 59 default: 60 return err 61 } 62 } 63 64 cmd.UI.DisplayOK() 65 cmd.UI.DisplayNewline() 66 67 cmd.UI.DisplayText("TIP: If Dynamic ASG's are enabled, changes will automatically apply for running and staging applications. Otherwise, changes will require an app restart (for running) or restage (for staging) to apply to existing applications.") 68 69 return nil 70 }