Repository navigation
'X-Cf-Warnings' header should not print to stdout by default for cf curl #2164
Description
Please fill out the issue checklist below and provide ALL the requested information.
- I reviewed open and closed github issues that may be related to my problem.
- I tried updating to the latest version of the CF CLI to see if it fixed my problem.
- I attempted to run the command with
CF_TRACE=1to help debug the issue. - I am reporting a bug that others will be able to reproduce.
Describe the bug and the command you saw an issue with
In cloudfoundry/cloud_controller_ng#2227 we decided to set the X-Cf-Warnings header when one of the services backing the /v3/processes/:guid/stats endpoint has an error and we decide to return a partial response.
This is nice because the user will still get informed that something is not quite right by the cf cli, but otherwise continue to see other information about their process. Using the cf7 CLI it looks like this warning is usually printed to stderr, but for cf curl it is being printed to stdout and making the response difficult to parse.
What happened
When I use cf curl to hit an endpoint that sets the X-Cf-Warnings header the warning is printed to stdout and makes the output no longer JSON parseable. Example:
cf curl /v3/processes/e9c6facc-7c9b-4cf6-9a7f-e5a4c908157c/stats
{
"resources": [
{
"type": "web",
"index": 0,
"state": "RUNNING",
"host": "127.0.0.1",
"uptime": 173624,
"mem_quota": null,
"disk_quota": null,
"fds_quota": 16384,
"isolation_segment": "placeholder",
"details": null,
"instance_ports": [
{
"external": 80,
"internal": 8080,
"external_tls_proxy_port": null,
"internal_tls_proxy_port": null
}
],
"usage": {}
}
]
}
Stats server temporarily unavailable.
Expected behavior
The X-Cf-Warnings header would either be printed to stderr or ignored and only displayed if the user requests it via the -i (Include response headers in the output) flag.
Exact Steps To Reproduce
Steps to reproduce the behavior; include the exact CLI commands and verbose output:
- Push an app
bosh ssh dopplersudo su -monit stop log-cachecf curl /v3/apps/$(cf app MY_APP --guid)/processesto get thewebprocess guid for the appcf curl /v3/processes/:guid/stats
Provide more context
- Mac OS X 11.13 iTerm
cf version 7.2.0+be4a5ce2b.2020-12-10- Dev capi-release. Should be the next one after capi-release 1.109.0.
Related Issues and PRs
Activity
cf-gitbot commentedon May 3, 2021
We have created an issue in Pivotal Tracker to manage this:
https://www.pivotaltracker.com/story/show/178006715
The labels on this github issue will be updated when the story is started.
Use HTTP client instead of `cf curl` to fetch Process stats
hjcalderon10 commentedon Sep 13, 2021
Hi!
We are currently reviewing this issue and found some insights:
CF_RAISE_ERROR_ON_WARNINGSis set. As shownThis is the expected behavior for the X-Cf-Warnings management.
cc @jdgonzaleza
tcdowney commentedon Sep 13, 2021
I see, I didn't realize it always went to
stdout. Good to know aboutCF_RAISE_ERROR_ON_WARNINGS, thanks. 👍