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

Method Execute

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

Source from the content-addressed store, hash-verified

95}
96
97func (cmd *UpdateService) Execute(c flags.FlagContext) error {
98 planName := c.String("p")
99 params := c.String("c")
100
101 tagsSet := c.IsSet("t")
102 tagsList := c.String("t")
103
104 if !cmd.ensureThereAreChanges(planName, params, tagsSet) {
105 return nil
106 }
107
108 serviceInstanceName := c.Args()[0]
109 serviceInstance, err := cmd.serviceRepo.FindInstanceByName(serviceInstanceName)
110 if err != nil {
111 return err
112 }
113
114 paramsMap, err := json.ParseJSONFromFileOrString(params)
115 if err != nil {
116 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."))
117 }
118 var tags *[]string
119
120 if tagsSet {
121 parsedTags := uihelpers.ParseTags(tagsList)
122 tags = &parsedTags
123 }
124
125 var plan models.ServicePlanFields
126 if planName != "" {
127 foundPlan, err := cmd.findPlan(serviceInstance, planName)
128 if err != nil {
129 return err
130 }
131
132 if planIsTheSame(serviceInstance, foundPlan) {
133 planName = ""
134 } else {
135 plan = foundPlan
136 }
137 }
138
139 cmd.printUpdatingServiceInstanceMessage(serviceInstanceName)
140
141 if !cmd.ensureThereAreChanges(planName, params, tagsSet) {
142 return nil
143 }
144
145 err = cmd.serviceRepo.UpdateServiceInstance(serviceInstance.GUID, plan.GUID, paramsMap, tags)
146 if err != nil {
147 return err
148 }
149 err = printSuccessMessageForServiceInstance(serviceInstanceName, cmd.serviceRepo, cmd.ui)
150 if err != nil {
151 return err
152 }
153 return nil
154}

Callers

nothing calls this directly

Calls 12

ensureThereAreChangesMethod · 0.95
findPlanMethod · 0.95
ParseTagsFunction · 0.92
planIsTheSameFunction · 0.85
StringMethod · 0.65
IsSetMethod · 0.65
ArgsMethod · 0.65
FindInstanceByNameMethod · 0.65
UpdateServiceInstanceMethod · 0.65

Tested by

no test coverage detected