cloudfoundry / cloudfoundry/cf-java-client

UpdateProcessRequest cannot remove a timeout or invocationTimeout

Ouverte
#1,232 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

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

We are on version 5.12.1-RELEASE.

The default ObjectMapper is configured with setSerializationInclusion(NON_NULL) .
When removing a timeout the request should set it explicitly to null, which is not possible using this configuration. Hence an UpdateProcessRequest can, by default, never remove a timeout.

See the following screenshot for a debugging example result

grafik

The code above is called by invoking the following Mono:

Mono.just("<app-id>")
                .flatMap(appId -> operator
                        .getCloudFoundryClient()
                        .applicationsV3()
                        .getProcess(GetApplicationProcessRequest.builder().applicationId(appId).type("web").build())
                        .flatMap(process -> {
                            return operator
                                    .getCloudFoundryClient()
                                    .processes().update(
                                            UpdateProcessRequest.builder()
                                                    .processId(process.getId())
                                                    .healthCheck(HealthCheck.builder()
                                                            .type(HealthCheckType.from(targetState.manifest().getHealthCheckType().toString()))
                                                            .data(Data.builder()
                                                                    .endpoint(targetState.manifest().getHealthCheckHttpEndpoint())
                                                                    .timeout(targetState.manifest().getTimeout())
                                                                    .build())
                                                            .build())
                                                    .build()
                                    ).doOnSuccess(updateProcessResponse -> {
                                        log.info("Updated health check for application");
                                    });
                        }).then()

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par cloudfoundry-client-reactor/src/main/java/org/cloudfoundry/reactor/_DefaultConnectionContext.java, où l’ObjectMapper par défaut est configuré avec NON_NULL, puis suivez UpdateProcessRequest à travers processes().update. Reproduisez le cas de suppression du timeout décrit dans l’issue et vérifiez qu’un timeout ou invocationTimeout explicitement défini à null est conservé dans la requête sortante.

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é
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.