MCPcopy
hub / github.com/cloudfoundry/cli / Execute

Method Execute

command/v7/bind_service_command.go:24–75  ·  view source on GitHub ↗
(args []string)

Source from the content-addressed store, hash-verified

22}
23
24func (cmd BindServiceCommand) Execute(args []string) error {
25 if err := cmd.SharedActor.CheckTarget(true, true); err != nil {
26 return err
27 }
28
29 if cmd.ServiceBindingStrategy.IsSet {
30 err := command.MinimumCCAPIVersionCheck(cmd.Config.APIVersion(), ccversion.MinVersionServiceBindingStrategy, "--strategy")
31 if err != nil {
32 return err
33 }
34 }
35
36 if err := cmd.displayIntro(); err != nil {
37 return err
38 }
39
40 stream, warnings, err := cmd.Actor.CreateServiceAppBinding(v7action.CreateServiceAppBindingParams{
41 SpaceGUID: cmd.Config.TargetedSpace().GUID,
42 ServiceInstanceName: cmd.RequiredArgs.ServiceInstanceName,
43 AppName: cmd.RequiredArgs.AppName,
44 BindingName: cmd.BindingName.Value,
45 Parameters: types.OptionalObject(cmd.ParametersAsJSON),
46 Strategy: cmd.ServiceBindingStrategy.Strategy,
47 })
48 cmd.UI.DisplayWarnings(warnings)
49
50 switch err.(type) {
51 case nil:
52 case actionerror.ResourceAlreadyExistsError:
53 cmd.UI.DisplayText("App {{.AppName}} is already bound to service instance {{.ServiceInstanceName}}.", cmd.names())
54 cmd.UI.DisplayOK()
55 return nil
56 default:
57 return err
58 }
59
60 completed, err := shared.WaitForResult(stream, cmd.UI, cmd.Wait)
61 switch {
62 case err != nil:
63 return err
64 case completed:
65 cmd.UI.DisplayOK()
66 cmd.UI.DisplayText("TIP: Use 'cf restage {{.AppName}}' to ensure your env variable changes take effect", cmd.names())
67 return nil
68 default:
69 cmd.UI.DisplayOK()
70 cmd.UI.DisplayText("Binding in progress. Use 'cf service {{.ServiceInstanceName}}' to check operation status.", cmd.names())
71 cmd.UI.DisplayNewline()
72 cmd.UI.DisplayText("TIP: Once this operation succeeds, use 'cf restage {{.AppName}}' to ensure your env variable changes take effect", cmd.names())
73 return nil
74 }
75}
76
77func (cmd BindServiceCommand) Usage() string {
78 return `CF_NAME bind-service APP_NAME SERVICE_INSTANCE [-c PARAMETERS_AS_JSON] [--binding-name BINDING_NAME]

Callers

nothing calls this directly

Calls 13

displayIntroMethod · 0.95
namesMethod · 0.95
MinimumCCAPIVersionCheckFunction · 0.92
OptionalObjectStruct · 0.92
WaitForResultFunction · 0.92
CheckTargetMethod · 0.65
APIVersionMethod · 0.65
TargetedSpaceMethod · 0.65
DisplayWarningsMethod · 0.65
DisplayTextMethod · 0.65
DisplayOKMethod · 0.65

Tested by

no test coverage detected