(c flags.FlagContext)
| 95 | } |
| 96 | |
| 97 | func (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 | } |
nothing calls this directly
no test coverage detected