forked from cloudfoundry/cli
/
base_command.go
42 lines (35 loc) · 1.12 KB
/
base_command.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
package v7
import (
"code.cloudfoundry.org/cli/actor/sharedaction"
"code.cloudfoundry.org/cli/actor/v7action"
"code.cloudfoundry.org/cli/api/cloudcontroller/ccv3"
"code.cloudfoundry.org/cli/api/uaa"
"code.cloudfoundry.org/cli/command"
"code.cloudfoundry.org/cli/command/v7/shared"
"code.cloudfoundry.org/clock"
)
type BaseCommand struct {
UI command.UI
Config command.Config
SharedActor command.SharedActor
Actor Actor
cloudControllerClient *ccv3.Client
uaaClient *uaa.Client
}
func (cmd *BaseCommand) Setup(config command.Config, ui command.UI) error {
cmd.UI = ui
cmd.Config = config
sharedActor := sharedaction.NewActor(config)
cmd.SharedActor = sharedActor
ccClient, uaaClient, routingClient, err := shared.GetNewClientsAndConnectToCF(config, ui, "")
if err != nil {
return err
}
cmd.cloudControllerClient = ccClient
cmd.uaaClient = uaaClient
cmd.Actor = v7action.NewActor(ccClient, config, sharedActor, uaaClient, routingClient, clock.NewClock())
return nil
}
func (cmd *BaseCommand) GetClients() (*ccv3.Client, *uaa.Client) {
return cmd.cloudControllerClient, cmd.uaaClient
}