什么cf curl命令可以显示当前的组织和空间?

时间:2016-11-09 12:30:40

标签: cloudfoundry

可以使用命令cf target来发现当前的组织和空间。

% cf target

API endpoint:  https://api.run.domain.com (API version 2.48.0)
User:          admin
Org:           myorg
Space:         myspace

我想使用REST API(cf curl /v2/...)来获取当前的组织和空间。我不想解析命令cf target的结果。

我通常在Bash中编写脚本,通过执行操作来定义变量(例如,获取CF API版本):

Result=$(cf curl /v2/info | jq -r '.api_version')

所以,问题是:假设我已经过身份验证(执行cf curl),我如何通过cf login获取组织和空间?

1 个答案:

答案 0 :(得分:4)

  

假设我已经过身份验证(执行cf登录),我如何通过cf curl获取组织和空间?

这不是来自CAPI。 API不管理您所在州的这一方面。此状态保存在本地计算机上的config.json文件中,该文件由cf cli管理。

如果您想获取当前的组织和空间,可以从该文件中读取它。

jq ".OrganizationFields.Name,.SpaceFields.Name" ~/.cf/config.json

配置文件的正常路径位于文件夹.cf的主目录下,但如果设置了CF_HOME,配置文件的路径可能会有所不同。

CF_HOME=path/to/dir/               Override path to default config directory

虽然我不推荐它,但您甚至可以手动更新配置文件以更改组织或空间。同样,不推荐但可能。

为了将来参考,如果您想知道cf cli如何做某事,最简单的方法是查看它正在进行的API调用是在启用跟踪的情况下运行。这会将HTTP请求和响应信息输出到您的控制台。

CF_TRACE=true cf <insert-command>

如果使用cf target执行此操作,您将看到没有发出命令,这是因为它只是从我提到的文件中读取状态。如果您运行与CF_TRACE=true cf orgs等API通信的内容,那么您将看到HTTP请求和响应信息。

最后请注意,在Windows上,您需要先运行set CF_TRACE=true。然后你可以运行cf orgs或任何你想要的命令,你将获得跟踪输出。这是因为Windows命令提示符不允许您像Bash一样内联设置环境变量。如果您在Windows上使用Bash,则不需要这样做。