哪些cf curl命令可以显示当前组织和空间?

Ste*_*ige 3 cloud-foundry

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

% cf target

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

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

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

Result=$(cf curl /v2/info | jq -r '.api_version')
Run Code Online (Sandbox Code Playgroud)

因此,问题是:cf curl假设我已经通过身份验证(执行cf login),如何通过org和空间?

Dan*_*usa 5

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

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

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

jq ".OrganizationFields.Name,.SpaceFields.Name" ~/.cf/config.json
Run Code Online (Sandbox Code Playgroud)

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

CF_HOME=path/to/dir/               Override path to default config directory
Run Code Online (Sandbox Code Playgroud)

尽管我不建议这样做,但您甚至可以手动更新配置文件以更改组织或空间。同样,不推荐,但可能的。

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

CF_TRACE=true cf <insert-command>
Run Code Online (Sandbox Code Playgroud)

如果这样做,cf target将不会发出命令,这是因为它只是从我提到的文件中读取状态。如果您运行类似API的内容CF_TRACE=true cf orgs,则会看到HTTP请求和响应信息。

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