cloudfoundry / cloudfoundry/cf-java-client
DefaultServices.updateInstance() rejects plan updates despites plan is updateable.
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- Java
- Sterne
- 334
- Forks
- 319
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
The OSB API states regarding a service offering metadata that its updateable flag can be overriden in plans.
https://github.com/openservicebrokerapi/servicebroker/blob/master/spec.md#service-offering-object
Response Field Type Description [...] plan_updateable boolean Whether the Service Offering supports upgrade/downgrade for Service Plans by default. Service Plans can override this field (see Service Plan). Please note that the misspelling of the attribute plan_updatable as plan_updateable was done by mistake. We have opted to keep that misspelling instead of fixing it and thus breaking backward compatibility. Defaults to false.
https://github.com/openservicebrokerapi/servicebroker/blob/master/spec.md#service-plan-object
Response Field Type Description [...] plan_updateable boolean Whether the Plan supports upgrade/downgrade/sidegrade to another version. This field is OPTIONAL. If specificed, this takes precedence over the Service Offering's plan_updateable field. If not specified, the default is derived from the Service Offering. Please note that the attribute is intentionally misspelled as plan_updateable for legacy reasons.
Unfortunately the CC API reuses the two fields, but isn't precise enough to state that plan.updateable override serviceoffering.plan_updateable
https://apidocs.cloudfoundry.org/12.42.0/services/retrieve_a_particular_service.html
Name Description Default Valid Values Example Values plan_updateable A boolean describing that an instance of this service can be updated to a different plan false
https://apidocs.cloudfoundry.org/12.42.0/service_plans/retrieve_a_particular_service_plan.html
"plan_updateable": true,
As a result, cf-java-client refuses service instance updates unless the service definition is updateable, regardless than the service plan is updateable.
Given that CloudFoundry itself likely performs the checks, is there any reason to also perform the check client-side ?
If there is a good reason, then the logic should be fixed to only reject when both serviceplan.plan_updateable=false and servicedefinition.plan_updateable=false
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne bei cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/services/DefaultServices.java in den Zeilen 515-517 und vergleiche die Felder zur Aktualisierbarkeit der Service-Definition und des Service-Plans mit den verknüpften OSB- und Cloud Foundry API-Definitionen. Überprüfe den bestehenden Ablauf zur Aktualisierung von Service-Instanzen und dessen Tests, sofern vorhanden. Erledigt ist die Aufgabe, wenn gültige Plan-Aktualisierungen nicht mehr allein deshalb abgelehnt werden, weil die Service-Definition nicht aktualisierbar ist.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- java
- Bereich
- api
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Klar beschrieben
- Anfängerfreundlichkeit
- 45/100