cloudfoundry / cloudfoundry/cf-java-client

Missing details in Error Payload

Abierto
#1,099 1 comentario 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

client triaged
Lenguaje dominante
Java
Estrellas
334
Forks
319
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

When an ClientV3Exception is thrown there is more details available in the message than exposed through the Error object. Specifically it would be useful to get the content test_mode_info which had additional details which in this case was bad YAML provided in the manifest.yml. The only way to get these details currently is to search through the cloud controller logs but I assume they come back in the JSON payload that the cf java client could sift through and provide on the Error class.

{"timestamp":"2021-04-07T21:00:41.467072221Z","message":"Request failed: 500: {\"errors\"=>[{\"title\"=>\"UnknownError\", \"detail\"=>\"An unknown error occurred.\", \"code\"=>10001, \"test_mode_info\"=>{\"detail\"=>\"(<unknown>): found unexpected ':' while scanning a plain scalar at line 7 column 16\", \"title\"=>\"CF-SyntaxError\", \"backtrace\"=>[\"/var/vcap/data/packages/ruby-2.5.5-r0.10.0/44147f64f025dd1617cd2c22884c29898f502057/lib/ruby/2.5.0/psych.rb:402:in `parse'\", \"/var/vcap/data/packages/ruby-2.5.5-r0.10.0/44147f64f025dd1617cd2c22884c29898f502057/lib/ruby/2.5.0/psych.rb:402:in `parse_stream'\", \"/var/vcap/data/packages/ruby-2.5.5-r0.10.0/44147f64f025dd1617cd2c22884c29898f502057/lib/ruby/2.5.0/psych.rb:350:in `parse'\", \"/var/vcap/data/packages/ruby-2.5.5-r0.10.0/44147f64f025dd1617cd2c22884c29898f502057/lib/ruby/2.5.0/psych.rb:314:in `safe_load'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/cloud_controller_ng/app/controllers/v3/application_controller.rb:91:in `parsed_yaml'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/cloud_controller_ng/app/controllers/v3/app_manifests_controller.rb:82:in `parsed_app_manifest_params'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/cloud_controller_ng/app/controllers/v3/app_manifests_controller.rb:13:in `apply_manifest'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/abstract_controller/base.rb:194:in `process_action'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_controller/metal/rendering.rb:30:in `process_action'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/abstract_controller/callbacks.rb:42:in `block in process_action'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/activesupport-5.2.4.3/lib/active_support/callbacks.rb:132:in `run_callbacks'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/abstract_controller/callbacks.rb:41:in `process_action'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_controller/metal/rescue.rb:22:in `process_action'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_controller/metal/instrumentation.rb:34:in `block in process_action'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/activesupport-5.2.4.3/lib/active_support/notifications.rb:168:in `block in instrument'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/activesupport-5.2.4.3/lib/active_support/notifications/instrumenter.rb:23:in `instrument'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/activesupport-5.2.4.3/lib/active_support/notifications.rb:168:in `instrument'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_controller/metal/instrumentation.rb:32:in `process_action'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_controller/metal/params_wrapper.rb:256:in `process_action'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/abstract_controller/base.rb:134:in `process'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionview-5.2.4.3/lib/action_view/rendering.rb:32:in `process'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_controller/metal.rb:191:in `dispatch'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_controller/metal.rb:252:in `dispatch'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_dispatch/routing/route_set.rb:52:in `dispatch'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_dispatch/routing/route_set.rb:34:in `serve'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_dispatch/journey/router.rb:52:in `block in serve'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_dispatch/journey/router.rb:35:in `each'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_dispatch/journey/router.rb:35:in `serve'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_dispatch/routing/route_set.rb:840:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/rack-2.2.2/lib/rack/tempfile_reaper.rb:15:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_dispatch/http/content_security_policy.rb:18:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/activesupport-5.2.4.3/lib/active_support/callbacks.rb:98:in `run_callbacks'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_dispatch/middleware/callbacks.rb:26:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_dispatch/middleware/debug_exceptions.rb:61:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/rack-2.2.2/lib/rack/runtime.rb:22:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/activesupport-5.2.4.3/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/actionpack-5.2.4.3/lib/action_dispatch/middleware/executor.rb:14:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/rack-2.2.2/lib/rack/sendfile.rb:110:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/rack-2.2.2/lib/rack/urlmap.rb:74:in `block in call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/rack-2.2.2/lib/rack/urlmap.rb:58:in `each'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/rack-2.2.2/lib/rack/urlmap.rb:58:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/cloud_controller_ng/middleware/cef_logs.rb:18:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/cloud_controller_ng/middleware/request_logs.rb:38:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/cloud_controller_ng/middleware/security_context_setter.rb:19:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/cloud_controller_ng/middleware/vcap_request_id.rb:15:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/cloud_controller_ng/middleware/cors.rb:49:in `call_app'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/cloud_controller_ng/middleware/cors.rb:14:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/cloud_controller_ng/middleware/request_metrics.rb:12:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/rack-2.2.2/lib/rack/builder.rb:244:in `call'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/thin-1.7.2/lib/thin/connection.rb:86:in `block in pre_process'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/thin-1.7.2/lib/thin/connection.rb:84:in `catch'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/thin-1.7.2/lib/thin/connection.rb:84:in `pre_process'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/thin-1.7.2/lib/thin/connection.rb:50:in `block in process'\", \"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/gem_home/ruby/2.5.0/gems/eventmachine-1.0.9.1/lib/eventmachine.rb:1067:in `block in spawn_threadpool'\"]}}]}","log_level":"error","source":"cc.api","data":{"request_guid":"9ac4d7d8-6cc3-4398-7507-8745c1f4e7be::845e6902-6be0-427b-84ec-133aa14dc326"},"thread_id":47033084351880,"fiber_id":47033056325400,"process_id":7,"file":"/var/vcap/data/packages/cloud_controller_ng/38edb9da90769220ec24e4ae4ef8d6a0881ca7b6/cloud_controller_ng/app/controllers/v3/errors_controller.rb","lineno":11,"method":"internal_error"}

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza rastreando ClientV3Exception y el manejo del payload de Error en cf-java-client, utilizando como referencia la respuesta JSON y el ejemplo de test_mode_info de este issue. El contexto del lado del servidor está en errors_controller.rb y el fallo está relacionado con el análisis de manifest.yml. Se considera terminado cuando el objeto Error expone los detalles adicionales de test_mode_info en lugar de requerir logs del cloud controller.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java
Área
api
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.