可以使用该命令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和空间?
假设我已经通过身份验证(执行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,则没有必要。
| 归档时间: |
|
| 查看次数: |
2886 次 |
| 最近记录: |