cloudfoundry / cloudfoundry/cf-java-client
Missing details in Error Payload
Nadie ha tomado este issue todavía.
- 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
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- 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