检查正在运行的测试操作

连接测试支持定期检查正在运行的测试操作的状态,例如 createupdatedelete。测试完成后,您仍然可以查看最终测试结果。

控制台

Google Cloud Console 使用旋转图标显示正在运行的测试。在后台,连接测试会不断轮询测试操作的状态。测试完成后,您可以在结果详情面板中查看最终结果。

如需详细了解 Cloud Console 页面,请参阅创建和运行 Connectivity Tests

gcloud

如需使用 gcloud 命令行检查正在运行的测试操作,请指定 --async 选项。如果未指定此选项,则只会看到最终测试结果。

  1. 例如,使用 --async 选项创建以下测试时,会立即向命令行返回一个操作资源 ID。然后,您可以在后续 describe 命令中使用此 ID,以便在测试仍在运行时检查测试状态。

    gcloud network-management connectivity-tests create NAME \
      --destination-project=DESTINATION_PROJECT \
      --source-ip-address=SOURCE_IP_ADDRESS \
      --destination-ip-address=DESTINATION_IP_ADDRESS \
      --protocol=PROTOCOL \
      --source-project=SOURCE_PROJECT \
      --async
    

    替换以下值:

    • NAME:连接测试的名称
    • DESTINATION_PROJECT:目标端点的项目 ID
    • SOURCE_IP_ADDRESS:您要测试的内部或外部源 IP 地址;仅当测试的目标是全局负载平衡器 VIP 时,才允许使用 IPv6 地址
    • DESTINATION_IP_ADDRESS:您要测试的内部或外部源 IP 地址;仅当测试的目标是全局负载平衡器 VIP 时,才允许使用 IPv6 地址。
    • PROTOCOL:连接测试的受支持的协议
    • SOURCE_PROJECT:源端点的项目 ID

    输出如下所示:

    Create request issued for: [gcloud-example]
    Check operation [projects/reachability-e2e-test/locations/global/operations/operation-1580411210002-59d6028c56f71-85ef2899-54d8bc13] for status
    
  2. 将操作资源 ID 与 describe 命令一起使用来检查测试的状态:

    gcloud network-management operations describe \
    projects/SOURCE_PROJECT/locations/global/operations/OPERATION_RESOURCE_ID
    

    替换以下值:

    • SOURCE_PROJECT:源端点的项目 ID
    • OPERATION_RESOURCE_ID:您正在检查的进行中的操作的资源 ID(例如 operation-1580411210002-59d6028c56f71-85ef2899-54d8bc13

    上一个命令的以下示例输出会显示 done: false。测试完成后,此字段将更改为 done: true

    done: false
    metadata:
     '@type': type.googleapis.com/google.cloud.networkmanagement.v1.OperationMetadata
     apiVersion: v1
     cancelRequested: false
     createTime: '2020-01-30T19:06:50.055838110Z'
     endTime: '2020-01-30T19:06:57.637200039Z'
     target: projects/reachability-e2e-test/locations/global/connectivityTests/gcloud-example
     verb: create
    name:
     projects/reachability-e2e-test/locations/global/operations/operation-1580411210002-59d6028c56f71-85ef2899-54d8bc13
    response:
     '@type': type.googleapis.com/google.cloud.networkmanagement.v1beta1.ConnectivityTest
     createTime: '2020-01-30T19:06:50.050012906Z'
     ...  // Full resource metadata displayed here.
    
  3. 重复上一个 describe 命令,直到输出显示 done: true

API

Network Management API 始终处于 async 模式。当您向此 API 发出命令时,您会立即收到一个操作 ID。您可以使用此 ID 定期检查测试状态。

Python

Network Management API 始终处于 async 模式。使用 API Python 客户端发出请求时,您会立即收到操作 ID。您可以使用此 ID 定期检查测试状态。

请参阅以下示例:

project_id = 'PROJECT_ID'
operation_id = 'OPERATION_ID'

request = api.projects().locations().global_().operations().get(
        name='projects/%s/locations/global/operations/%s' % (project_id, operation_id))

print(json.dumps(request.execute(), indent=4))

替换以下值:

  • PROJECT_ID:您在其中创建了测试的项目的 ID
  • OPERATION_ID:您正在检查的进行中的操作的资源 ID(例如 operation-1580411210002-59d6028c56f71-85ef2899-54d8bc13

后续步骤