github.com/sleungcy-sap/cli@v7.1.0+incompatible/command/v7/unbind_security_group.go (about) 1 package v7 2 3 import ( 4 "code.cloudfoundry.org/cli/actor/actionerror" 5 "code.cloudfoundry.org/cli/actor/v7action" 6 "code.cloudfoundry.org/cli/api/cloudcontroller/ccv3/constant" 7 "code.cloudfoundry.org/cli/command/flag" 8 ) 9 10 type UnbindSecurityGroupCommand struct { 11 BaseCommand 12 13 RequiredArgs flag.UnbindSecurityGroupV7Args `positional-args:"yes"` 14 Lifecycle flag.SecurityGroupLifecycle `long:"lifecycle" choice:"running" choice:"staging" default:"running" description:"Lifecycle phase the group applies to"` 15 usage interface{} `usage:"CF_NAME unbind-security-group SECURITY_GROUP ORG SPACE [--lifecycle (running | staging)]\n\nTIP: Changes require an app restart (for running) or restage (for staging) to apply to existing applications."` 16 relatedCommands interface{} `related_commands:"apps, restart, security-groups"` 17 } 18 19 func (cmd UnbindSecurityGroupCommand) Execute(args []string) error { 20 var ( 21 err error 22 warnings v7action.Warnings 23 orgName string 24 spaceName string 25 ) 26 27 err = cmd.SharedActor.CheckTarget(false, false) 28 if err != nil { 29 return err 30 } 31 32 user, err := cmd.Config.CurrentUser() 33 if err != nil { 34 return err 35 } 36 37 orgName = cmd.RequiredArgs.OrganizationName 38 spaceName = cmd.RequiredArgs.SpaceName 39 40 cmd.UI.DisplayTextWithFlavor("Unbinding {{.Lifecycle}} security group {{.SecurityGroupName}} from org {{.OrgName}} / space {{.SpaceName}} as {{.Username}}...", map[string]interface{}{ 41 "Lifecycle": string(cmd.Lifecycle), 42 "SecurityGroupName": cmd.RequiredArgs.SecurityGroupName, 43 "OrgName": orgName, 44 "SpaceName": spaceName, 45 "Username": user.Name, 46 }) 47 48 warnings, err = cmd.Actor.UnbindSecurityGroup(cmd.RequiredArgs.SecurityGroupName, orgName, spaceName, constant.SecurityGroupLifecycle(cmd.Lifecycle)) 49 cmd.UI.DisplayWarnings(warnings) 50 if err != nil { 51 if _, isNotBoundError := err.(actionerror.SecurityGroupNotBoundToSpaceError); isNotBoundError { 52 cmd.UI.DisplayWarning(err.Error()) 53 54 cmd.UI.DisplayOK() 55 cmd.UI.DisplayText("TIP: Changes require an app restart (for running) or restage (for staging) to apply to existing applications.") 56 return nil 57 } 58 59 return err 60 } 61 62 cmd.UI.DisplayOK() 63 cmd.UI.DisplayText("TIP: Changes require an app restart (for running) or restage (for staging) to apply to existing applications.") 64 65 return nil 66 }