cloudfoundry / cloudfoundry/cf-java-client

Missing details in Error Payload

Đang mở
#1,099 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

client triaged
Ngôn ngữ chính
Java
Star
334
Fork
319
Chỉ số merge pull request
Không có pull request nào được merge trong 30 ngày

Mô tả

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"}

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Hướng nghiên cứu

Bắt đầu bằng cách lần theo ClientV3Exception và việc xử lý payload Error trong cf-java-client, sử dụng phản hồi JSON và ví dụ test_mode_info trong issue này làm tham chiếu. Ngữ cảnh phía server nằm trong errors_controller.rb và lỗi liên quan đến việc phân tích cú pháp manifest.yml. Được xem là hoàn tất khi đối tượng Error cung cấp các chi tiết bổ sung của test_mode_info thay vì yêu cầu log của cloud controller.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Đánh giá

Công nghệ
java
Lĩnh vực
api
Loại issue
Lỗi
Độ khó
3/5
Thời gian dự kiến
1-2 ngày
Mức độ hoạt động
Đình trệ
Độ rõ ràng
Khá rõ ràng
Mức phù hợp với người mới
35/100

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.