You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用govmomi从vCenter获取最近完成任务列表无结果求助

解决govmomi无法获取vCenter任务列表的问题

你的代码无法获取任务列表的核心原因是:vCenter的Task实体并不存放在常规的资源容器层级中,不能通过ContainerView直接检索,必须通过vCenter提供的TaskManager来查询任务记录。

以下是修正后的完整代码,可直接获取最近完成的任务:

package main

import (
    "context"
    "fmt"
    "log"
    "net/url"

    "github.com/vmware/govmomi"
    "github.com/vmware/govmomi/vim25/mo"
    "github.com/vmware/govmomi/vim25/soap"
)

func main() {
    ctx := context.Background()

    // 替换为你的vCenter信息
    vcURL := "https://your-vcenter-url/sdk"
    username := "Admin"
    password := "password"

    // 创建客户端连接
    u, err := soap.ParseURL(vcURL)
    if err != nil {
        log.Fatal(err)
    }
    u.User = url.UserPassword(username, password)
    client, err := govmomi.NewClient(ctx, u, true)
    if err != nil {
        log.Fatal(err)
    }

    // 获取TaskManager实例
    var taskManager mo.TaskManager
    err = client.RetrieveOne(ctx, client.ServiceContent.TaskManager, []string{"recentTasks"}, &taskManager)
    if err != nil {
        log.Fatal(err)
    }

    // 获取最近任务的详情
    var tasks []mo.Task
    err = client.Retrieve(ctx, taskManager.RecentTasks, []string{"info"}, &tasks)
    if err != nil {
        log.Fatal(err)
    }

    // 筛选并打印已完成的任务
    fmt.Println("最近完成的任务列表:")
    for _, task := range tasks {
        // 过滤已成功或失败的任务(排除正在运行的)
        if task.Info.State == mo.TaskInfoStateSuccess || task.Info.State == mo.TaskInfoStateError {
            fmt.Printf("任务名称: %s\n", task.Info.Name)
            fmt.Printf("任务状态: %s\n", task.Info.State)
            fmt.Printf("完成时间: %s\n", task.Info.CompleteTime)
            fmt.Printf("发起用户: %s\n", task.Info.UserName)
            fmt.Println("------------------------")
        }
    }
}

关键修改说明:

  • 改用TaskManager查询:通过client.ServiceContent.TaskManager获取vCenter的任务管理器引用,这是官方推荐的任务查询入口
  • 获取最近任务列表:调用taskManager.RecentTasks获取系统存储的最近任务记录(vCenter默认保留一定数量的历史任务)
  • 过滤已完成任务:通过task.Info.State字段筛选出已成功(success)或失败(error)的任务,排除正在运行中的任务

内容的提问来源于stack exchange,提问作者Sruthi CP

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 20:23:20