cloudfoundry / cloudfoundry/cf-java-client
DefaultServices.updateInstance() rejects plan updates despites plan is updateable.
Personne n'a encore pris cette issue.
- Langage dominant
- Java
- Étoiles
- 334
- Forks
- 319
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
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
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez à cloudfoundry-operations/src/main/java/org/cloudfoundry/operations/services/DefaultServices.java, aux lignes 515-517, et comparez les champs d’actualisabilité de la définition du service et du plan de service avec les définitions OSB et Cloud Foundry API liées. Examinez le flux existant de mise à jour des instances de service et ses tests, s’ils existent. Le travail est terminé lorsque les mises à jour de plan valides ne sont plus rejetées uniquement parce que la définition du service n’est pas actualisable.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- java
- Domaine
- api
- Type d'issue
- Bug
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 45/100