github.com/randomtask1155/cli@v6.41.1-0.20181227003417-a98eed78cbde+incompatible/command/v6/disable_org_isolation_command.go (about) 1 package v6 2 3 import ( 4 "code.cloudfoundry.org/cli/actor/sharedaction" 5 "code.cloudfoundry.org/cli/actor/v3action" 6 "code.cloudfoundry.org/cli/api/cloudcontroller/ccversion" 7 "code.cloudfoundry.org/cli/command" 8 "code.cloudfoundry.org/cli/command/flag" 9 "code.cloudfoundry.org/cli/command/v6/shared" 10 ) 11 12 //go:generate counterfeiter . DisableOrgIsolationActor 13 14 type DisableOrgIsolationActor interface { 15 CloudControllerAPIVersion() string 16 DeleteIsolationSegmentOrganizationByName(isolationSegmentName string, orgName string) (v3action.Warnings, error) 17 } 18 type DisableOrgIsolationCommand struct { 19 RequiredArgs flag.OrgIsolationArgs `positional-args:"yes"` 20 usage interface{} `usage:"CF_NAME disable-org-isolation ORG_NAME SEGMENT_NAME"` 21 relatedCommands interface{} `related_commands:"enable-org-isolation, isolation-segments"` 22 23 UI command.UI 24 Config command.Config 25 SharedActor command.SharedActor 26 Actor DisableOrgIsolationActor 27 } 28 29 func (cmd *DisableOrgIsolationCommand) Setup(config command.Config, ui command.UI) error { 30 cmd.UI = ui 31 cmd.Config = config 32 cmd.SharedActor = sharedaction.NewActor(config) 33 34 client, _, err := shared.NewV3BasedClients(config, ui, true, "") 35 if err != nil { 36 return err 37 } 38 cmd.Actor = v3action.NewActor(client, config, nil, nil) 39 40 return nil 41 } 42 43 func (cmd DisableOrgIsolationCommand) Execute(args []string) error { 44 err := command.MinimumCCAPIVersionCheck(cmd.Actor.CloudControllerAPIVersion(), ccversion.MinVersionIsolationSegmentV3) 45 if err != nil { 46 return err 47 } 48 49 err = cmd.SharedActor.CheckTarget(false, false) 50 if err != nil { 51 return err 52 } 53 user, err := cmd.Config.CurrentUser() 54 if err != nil { 55 return err 56 } 57 58 cmd.UI.DisplayTextWithFlavor("Removing entitlement to isolation segment {{.SegmentName}} from org {{.OrgName}} as {{.CurrentUser}}...", map[string]interface{}{ 59 "SegmentName": cmd.RequiredArgs.IsolationSegmentName, 60 "OrgName": cmd.RequiredArgs.OrganizationName, 61 "CurrentUser": user.Name, 62 }) 63 64 warnings, err := cmd.Actor.DeleteIsolationSegmentOrganizationByName(cmd.RequiredArgs.IsolationSegmentName, cmd.RequiredArgs.OrganizationName) 65 66 cmd.UI.DisplayWarnings(warnings) 67 68 if err != nil { 69 return err 70 } 71 72 cmd.UI.DisplayOK() 73 74 return nil 75 }