【问题标题】:What cf curl command can show the current org and space?什么 cf curl 命令可以显示当前的组织和空间?
【发布时间】:2016-11-09 12:30:40
【问题描述】:

可以使用命令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 login),我如何通过cf curl 获取组织和空间?

【问题讨论】:

    标签: cloud-foundry


    【解决方案1】:

    假设我已经通过身份验证(执行 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,则没有必要这样做。

    【讨论】:

    • 感谢您的完整回答,包括CF_TRACE 上的信息。非常感谢。
    【解决方案2】:

    我不确定@Steve Amerige 使用的是哪个 CF CLI 版本,但以下 CF 命令可以直接提供他正在寻找的详细信息。

    此命令在 CF CLI 版本 6 和 7 中都可用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多