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

Method Execute

cf/commands/service/create_service.go:106–154  ·  view source on GitHub ↗
(c flags.FlagContext)

Source from the content-addressed store, hash-verified

104}
105
106func (cmd *CreateService) Execute(c flags.FlagContext) error {
107 serviceName := c.Args()[0]
108 planName := c.Args()[1]
109 serviceInstanceName := c.Args()[2]
110 params := c.String("c")
111 tags := c.String("t")
112
113 tagsList := uihelpers.ParseTags(tags)
114
115 paramsMap, err := json.ParseJSONFromFileOrString(params)
116 if err != nil {
117 return errors.New(T("Invalid configuration provided for -c flag. Please provide a valid JSON object or path to a file containing a valid JSON object."))
118 }
119
120 cmd.ui.Say(T("Creating service instance {{.ServiceName}} in org {{.OrgName}} / space {{.SpaceName}} as {{.CurrentUser}}...",
121 map[string]interface{}{
122 "ServiceName": terminal.EntityNameColor(serviceInstanceName),
123 "OrgName": terminal.EntityNameColor(cmd.config.OrganizationFields().Name),
124 "SpaceName": terminal.EntityNameColor(cmd.config.SpaceFields().Name),
125 "CurrentUser": terminal.EntityNameColor(cmd.config.Username()),
126 }))
127
128 plan, err := cmd.CreateService(serviceName, planName, serviceInstanceName, paramsMap, tagsList)
129
130 switch err.(type) {
131 case nil:
132 err := printSuccessMessageForServiceInstance(serviceInstanceName, cmd.serviceRepo, cmd.ui)
133 if err != nil {
134 return err
135 }
136
137 if !plan.Free {
138 cmd.ui.Say("")
139 cmd.ui.Say(T("Attention: The plan `{{.PlanName}}` of service `{{.OfferingName}}` is not free. The instance `{{.ServiceInstanceName}}` will incur a cost. Contact your administrator if you think this is in error.",
140 map[string]interface{}{
141 "PlanName": terminal.EntityNameColor(plan.Name),
142 "OfferingName": terminal.EntityNameColor(serviceName),
143 "ServiceInstanceName": terminal.EntityNameColor(serviceInstanceName),
144 }))
145 cmd.ui.Say("")
146 }
147 case *errors.ModelAlreadyExistsError:
148 cmd.ui.Ok()
149 cmd.ui.Warn(err.Error())
150 default:
151 return err
152 }
153 return nil
154}
155
156func (cmd CreateService) CreateService(serviceName, planName, serviceInstanceName string, params map[string]interface{}, tags []string) (models.ServicePlanFields, error) {
157 offerings, apiErr := cmd.serviceBuilder.GetServicesByNameForSpaceWithPlans(cmd.config.SpaceFields().GUID, serviceName)

Callers

nothing calls this directly

Calls 15

CreateServiceMethod · 0.95
ParseTagsFunction · 0.92
NewFunction · 0.92
EntityNameColorFunction · 0.92
ArgsMethod · 0.65
StringMethod · 0.65
SayMethod · 0.65
OrganizationFieldsMethod · 0.65
SpaceFieldsMethod · 0.65
UsernameMethod · 0.65

Tested by

no test coverage detected