cloudfoundry / cloudfoundry/cf-java-client

Feature request: Add support for arbitrary parameters when binding services via manifest.yml

Đang mở
#1,142 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.

enhancement 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ả

Hello,

I want to report this error when we push an app manifest with binding parameters. It seems that the manifest yaml doesn't get parsed correctly because the format is not supported

java.lang.ClassCastException: Cannot cast java.util.LinkedHashMap to java.lang.String
	at java.lang.Class.cast(Class.java:3369)
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:485)
	at org.cloudfoundry.operations.applications.ApplicationManifestUtils.lambda$asList$2(ApplicationManifestUtils.java:160)
	at java.util.Optional.ifPresent(Optional.java:159)
	at org.cloudfoundry.operations.applications.ApplicationManifestUtils.as(ApplicationManifestUtils.java:131)
	at org.cloudfoundry.operations.applications.ApplicationManifestUtils.asList(ApplicationManifestUtils.java:157)
	at org.cloudfoundry.operations.applications.ApplicationManifestUtils.asListOfString(ApplicationManifestUtils.java:164)
	at org.cloudfoundry.operations.applications.ApplicationManifestUtils.toApplicationManifest(ApplicationManifestUtils.java:346)
	at org.cloudfoundry.operations.applications.ApplicationManifestUtils.lambda$doRead$9(ApplicationManifestUtils.java:236)
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193)
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1382)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:482)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:472)
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:708)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:566)
	at org.cloudfoundry.operations.applications.ApplicationManifestUtils.doRead(ApplicationManifestUtils.java:240)
	at org.cloudfoundry.operations.applications.ApplicationManifestUtils.read(ApplicationManifestUtils.java:73)
	at org.cloudfoundry.operations.applications.ApplicationManifestUtils$read.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
Manifest format:
--- 
applications: 
- name: my-app
  services:
  - name: my-service1
    parameters: 
      foo: bar
      herp: derp
  - name: my-service2
    parameters: 
      foo: bar
  For more details on the binding params please read: https://docs.cloudfoundry.org/devguide/services/application-binding.html#-binding-with-application-manifest

Best regards.

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 với ApplicationManifestUtils, đặc biệt là asList, asListOfString và toApplicationManifest, sử dụng manifest được cung cấp làm trường hợp tái hiện. Theo dõi cách các tham số liên kết dịch vụ được chuyển đổi và xác minh rằng các ánh xạ tham số lồng nhau được phân tích cú pháp mà không xảy ra ClassCastException đã báo cáo, đồng thời vẫn giữ nguyên các giá trị của chúng.

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, cloud
Loại issue
Tính năng
Độ 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.