cloudfoundry / cli

The official command line client for Cloud Foundry
https://docs.cloudfoundry.org/cf-cli
Apache License 2.0
1.75k stars 930 forks source link

cf service --params doesn't comply with openservicebrokerapi Fetch Service Instance #2500

Open LiliVideva opened 1 year ago

LiliVideva commented 1 year ago

Please fill out the issue checklist below and provide ALL the requested information.

Describe the bug and the command you saw an issue with What: Fetch service instance details via cf CLI Why: Implementing the functionality to offer to our stakeholders

What happened In our service broker, we have implemented the openservicebrokerapi Fetch Service Instance endpoint in order to be able to retrieve the parameters specified in an existing service instance. Once the broker was deployed with the code changes, we have tried to fetch the parameters of a service instance via cf service <service> --params (as cf service <service> doesn't return this information). The command failed with a custom error, coming from our broker, saying that the plan ID was not provided. When checking the logs of the broker app (cf logs <broker-app> --recent) we have spotted that the GET command executed against our broker does not include any of the expected query parameters, specified by the openservicebrokerapi Fetch Service Instance. The command looked like GET /v2/service_instances/<instance-id>, instead of GET /v2/service_instances/<instance-id>?service_id=<service-id>&plan_id=<plan-id>.
When checking the broker logs for execution of cf delete-service <service> command (which we support for some time now), we can see that the command includes the query parameters, expected by openservicebrokerapi Delete Service Instance. This leads to the conclusion that there is an inconsistency of the support for query parameters between the different cf commands.

Expected behavior

Exact Steps To Reproduce Steps to reproduce the behavior; include the exact CLI commands and verbose output:

  1. Have a broker, implementing openservicebrokerapi Fetch Service Instance and Create Service Instance
  2. Create a service instance via cf cli: cf create-service <offering> <plan> <service> -c <config-file>
  3. Run cf service <service> --params
  4. See error

Provide more context

a-b commented 1 month ago

We created a ticket in our team's tracker to look into this issue.