什么 cf curl 命令可以显示当前组织和 space?
What cf curl command can show the current org and space?
可以使用命令 cf target
来发现当前组织和 space.
% 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/...
) 获取当前组织和 space。我不想解析命令 cf target
.
的结果
我通常在 Bash 中编写脚本,通过执行以下操作来定义变量(例如获取 CF API 版本):
Result=$(cf curl /v2/info | jq -r '.api_version')
所以,问题是:假设我已经通过身份验证(执行 cf login
),如何通过 cf curl
获取组织和 space?
how can I get the org and space via cf curl, assuming I have already authenticated (performed cf login)?
这不是来自 CAPI。 API 不管理您状态的这方面。此状态保存在本地计算机上的 config.json
文件中,该文件由 cf cli 管理。
如果您想获取当前组织和 space,您可以直接从该文件中读取它。
jq ".OrganizationFields.Name,.SpaceFields.Name" ~/.cf/config.json
配置文件的正常路径位于主目录下的文件夹 .cf
中,但如果设置了 CF_HOME
,配置文件的路径可能会有所不同。
CF_HOME=path/to/dir/ Override path to default config directory
虽然我不推荐它,但您甚至可以手动更新配置文件以更改您的组织或 space。同样,不推荐但可能。
为了将来参考,如果您想知道 cf cli 是如何做某事的,查看 API 调用的最简单方法是启用跟踪 运行。这会将 HTTP 请求和响应信息输出到您的控制台。
CF_TRACE=true cf <insert-command>
如果您使用 cf target
执行此操作,您将看到没有发出任何命令,这是因为它只是从我提到的文件中读取状态。如果您 运行 可以与 API 对话的内容,例如 CF_TRACE=true cf orgs
,那么您将看到 HTTP 请求和响应信息。
最后请注意,在 Windows 您需要先 运行 set CF_TRACE=true
。然后你可以 运行 cf orgs
或任何你想要的命令,你会得到跟踪输出。这是因为 Windows 命令提示符不允许您像 Bash 那样内联设置环境变量。如果您在 Windows 上使用 Bash,则没有必要。
我不确定@Steve Amerige 使用的是哪个 CF CLI 版本,但下面的 CF 命令可以直接提供他正在寻找的详细信息。
此命令在 CF CLI 版本 6 和 7 中均可用。
可以使用命令 cf target
来发现当前组织和 space.
% 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/...
) 获取当前组织和 space。我不想解析命令 cf target
.
我通常在 Bash 中编写脚本,通过执行以下操作来定义变量(例如获取 CF API 版本):
Result=$(cf curl /v2/info | jq -r '.api_version')
所以,问题是:假设我已经通过身份验证(执行 cf login
),如何通过 cf curl
获取组织和 space?
how can I get the org and space via cf curl, assuming I have already authenticated (performed cf login)?
这不是来自 CAPI。 API 不管理您状态的这方面。此状态保存在本地计算机上的 config.json
文件中,该文件由 cf cli 管理。
如果您想获取当前组织和 space,您可以直接从该文件中读取它。
jq ".OrganizationFields.Name,.SpaceFields.Name" ~/.cf/config.json
配置文件的正常路径位于主目录下的文件夹 .cf
中,但如果设置了 CF_HOME
,配置文件的路径可能会有所不同。
CF_HOME=path/to/dir/ Override path to default config directory
虽然我不推荐它,但您甚至可以手动更新配置文件以更改您的组织或 space。同样,不推荐但可能。
为了将来参考,如果您想知道 cf cli 是如何做某事的,查看 API 调用的最简单方法是启用跟踪 运行。这会将 HTTP 请求和响应信息输出到您的控制台。
CF_TRACE=true cf <insert-command>
如果您使用 cf target
执行此操作,您将看到没有发出任何命令,这是因为它只是从我提到的文件中读取状态。如果您 运行 可以与 API 对话的内容,例如 CF_TRACE=true cf orgs
,那么您将看到 HTTP 请求和响应信息。
最后请注意,在 Windows 您需要先 运行 set CF_TRACE=true
。然后你可以 运行 cf orgs
或任何你想要的命令,你会得到跟踪输出。这是因为 Windows 命令提示符不允许您像 Bash 那样内联设置环境变量。如果您在 Windows 上使用 Bash,则没有必要。
我不确定@Steve Amerige 使用的是哪个 CF CLI 版本,但下面的 CF 命令可以直接提供他正在寻找的详细信息。
此命令在 CF CLI 版本 6 和 7 中均可用。