6.2. 使用生命周期环境


Satellite 将应用程序生命周期划分为生命周期环境,这代表应用程序生命周期的每个阶段。生命周期环境从环境路径链接到。要创建与 API 链接的生命周期环境,请使用 prior_id 参数。

您可以在 https://satellite.example.com/apidoc/v2/lifecycle_environments.html 中查找生命周期环境的内置 API 参考。API 路由包括 /katello/api/environments/katello/api/organizations/:organization_id/environments

列出生命周期环境

使用此 API 调用列出您 Satellite 上 ID 为 1 的默认组织的所有当前生命周期环境。

请求示例:

$ curl --header "Accept:application/json" \
--header "Content-Type:application/json" \
--request GET --user My_User_Name:My_Password \
https://satellite.example.com/katello/api/organizations/1/environments \
| python3 -m json.tool`

响应示例:

      output omitted
   "description": null,
   "id": 1,
   "label": "Library",
   "library": true,
   "name": "Library",
   "organization": {
        "id": 1,
        "label": "Default_Organization",
        "name": "Default Organization"
   },
   "permissions": {
       "destroy_lifecycle_environments": false,
       "edit_lifecycle_environments": true,
       "promote_or_remove_content_views_to_environments": true,
       "view_lifecycle_environments": true
   },
   "prior": null,
   "successor": null,
   output truncated

创建链接的生命周期环境

使用本示例创建生命周期环境的路径。

此流程使用 ID 为 1 的默认库环境,作为创建生命周期环境的起点。

  1. 选择您要用作起点的现有生命周期环境。使用其 ID 列出环境,本例中为 ID 为 1 的环境:

    请求示例:

    $ curl --request GET --user My_User_Name:My_Password \
    https://satellite.example.com/katello/api/environments/1 \
    | python3 -m json.tool

    响应示例:

    	output omitted
       "id": 1,
       "label": "Library",
    	output omitted
        "prior": null,
        "successor": null,
      output truncated
  2. 创建包含以下内容的 JSON 文件,如 life-cycle.json

    {"organization_id":1,"label":"api-dev","name":"API Development","prior":1}
  3. 使用 prior 选项设置为 1 来创建生命周期环境。

    请求示例:

    $ curl --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --request POST --user My_User_Name:My_Password \
    --data @life-cycle.json \
    https://satellite.example.com/katello/api/environments \
    | python3 -m json.tool

    响应示例:

          output omitted
        "description": null,
        "id": 2,
        "label": "api-dev",
        "library": false,
        "name": "API Development",
        "organization": {
            "id": 1,
            "label": "Default_Organization",
            "name": "Default Organization"
        },
        "permissions": {
            "destroy_lifecycle_environments": true,
            "edit_lifecycle_environments": true,
            "promote_or_remove_content_views_to_environments": true,
            "view_lifecycle_environments": true
        },
       "prior": {
            "id": 1,
            "name": "Library"
        },
        output truncated

    在命令输出中,您可以看到此生命周期环境的 ID 是 2,并在这前看到生命周期环境为 1。使用 ID 2 的生命周期环境来创建此环境的后续者。

  4. 编辑之前创建的 life-cycle.json 文件,更新 标签namebefore 值。

    {"organization_id":1,"label":"api-qa","name":"API QA","prior":2}
  5. 使用 prior 选项设置为 2 来创建生命周期环境。

    请求示例:

    $ curl --header "Accept:application/json" \
    --header "Content-Type:application/json" \
    --request POST --user My_User_Name:My_Password \
    --data @life-cycle.json \
    https://satellite.example.com/katello/api/environments \
    | python3 -m json.tool

    响应示例:

          output omitted
       "description": null,
       "id": 3,
        "label": "api-qa",
        "library": false,
        "name": "API QA",
        "organization": {
            "id": 1,
            "label": "Default_Organization",
            "name": "Default Organization"
        },
        "permissions": {
            "destroy_lifecycle_environments": true,
            "edit_lifecycle_environments": true,
            "promote_or_remove_content_views_to_environments": true,
            "view_lifecycle_environments": true
        },
       "prior": {
            "id": 2,
            "name": "API Development"
        },
        "successor": null,
        output truncated

    在命令输出中,您可以看到此生命周期环境的 ID 是 3,在这前的生命周期环境为 2

更新生命周期环境

您可以使用 PUT 命令更新生命周期环境。

这个示例请求使用 ID 3 更新生命周期环境的描述。

请求示例:

$ curl --header "Accept:application/json" \
--header "Content-Type:application/json" \
--request POST --user My_User_Name:My_Password \
--data '{"description":"Quality Acceptance Testing"}' \
https://satellite.example.com/katello/api/environments/3 \
| python3 -m json.tool

响应示例:

      output omitted
    "description": "Quality Acceptance Testing",
    "id": 3,
    "label": "api-qa",
    "library": false,
    "name": "API QA",
    "organization": {
        "id": 1,
        "label": "Default_Organization",
        "name": "Default Organization"
    },
    "permissions": {
        "destroy_lifecycle_environments": true,
        "edit_lifecycle_environments": true,
        "promote_or_remove_content_views_to_environments": true,
        "view_lifecycle_environments": true
    },
    "prior": {
        "id": 2,
        "name": "API Development"
    },
    output truncated

删除生命周期环境

您可以删除没有后续者的生命周期环境。因此,使用以下格式的命令以相反的顺序删除它们:

请求示例:

$ curl --request DELETE --user My_User_Name:My_Password \
https://satellite.example.com/katello/api/environments/:id
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.