package event

import "github.com/vmware/govmomi/event"

Index

Examples

Functions

func Sort

func Sort(events []types.BaseEvent)

Sort events in ascending order base on Key From the EventHistoryCollector.latestPage sdk docs:

The "oldest event" is the one with the smallest key (event ID).
The events in the returned page are unordered.

Types

type HistoryCollector

type HistoryCollector struct {
	*history.Collector
}

func (HistoryCollector) LatestPage

func (h HistoryCollector) LatestPage(ctx context.Context) ([]types.BaseEvent, error)

func (HistoryCollector) ReadNextEvents

func (h HistoryCollector) ReadNextEvents(ctx context.Context, maxCount int32) ([]types.BaseEvent, error)

func (HistoryCollector) ReadPreviousEvents

func (h HistoryCollector) ReadPreviousEvents(ctx context.Context, maxCount int32) ([]types.BaseEvent, error)

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

func NewManager

func NewManager(c *vim25.Client) *Manager

func (Manager) Client

func (m Manager) Client() *vim25.Client

func (Manager) CreateCollectorForEvents

func (m Manager) CreateCollectorForEvents(ctx context.Context, filter types.EventFilterSpec) (*HistoryCollector, error)

func (Manager) EventCategory

func (m Manager) EventCategory(ctx context.Context, event types.BaseEvent) (string, error)

EventCategory returns the category for an event, such as "info" or "error" for example.

func (Manager) Events

func (m Manager) Events(ctx context.Context, objects []types.ManagedObjectReference, pageSize int32, tail bool, force bool, f func(types.ManagedObjectReference, []types.BaseEvent) error, kind ...string) error

Events gets the events from the specified object(s) and optionanlly tail the event stream

Example

Code:play 

package main

import (
	"context"
	"fmt"

	"github.com/vmware/govmomi/event"
	"github.com/vmware/govmomi/find"
	"github.com/vmware/govmomi/simulator"
	"github.com/vmware/govmomi/vim25"
	"github.com/vmware/govmomi/vim25/mo"
	"github.com/vmware/govmomi/vim25/types"
)

// ensure event.Manager implements the mo.Reference interface
var _ mo.Reference = new(event.Manager)

func main() {
	simulator.Run(func(ctx context.Context, c *vim25.Client) error {
		m := event.NewManager(c)

		vm, err := find.NewFinder(c).VirtualMachine(ctx, "DC0_H0_VM0")
		if err != nil {
			return err
		}

		objs := []types.ManagedObjectReference{vm.Reference()}

		return m.Events(ctx, objs, 10, false, false, func(ref types.ManagedObjectReference, events []types.BaseEvent) error {
			event.Sort(events)
			for _, event := range events {
				fmt.Printf("%T\n", event)
			}
			return nil
		})
	})
}

Output:

*types.VmBeingCreatedEvent
*types.VmInstanceUuidAssignedEvent
*types.VmUuidAssignedEvent
*types.VmCreatedEvent
*types.VmStartingEvent
*types.VmPoweredOnEvent

func (Manager) LogUserEvent

func (m Manager) LogUserEvent(ctx context.Context, entity types.ManagedObjectReference, msg string) error

func (Manager) PostEvent

func (m Manager) PostEvent(ctx context.Context, eventToPost types.BaseEvent, taskInfo ...types.TaskInfo) error

func (Manager) QueryEvents

func (m Manager) QueryEvents(ctx context.Context, filter types.EventFilterSpec) ([]types.BaseEvent, error)

func (Manager) Reference

func (m Manager) Reference() types.ManagedObjectReference

Reference returns the event.Manager MOID

func (Manager) RetrieveArgumentDescription

func (m Manager) RetrieveArgumentDescription(ctx context.Context, eventTypeID string) ([]types.EventArgDesc, error)

Source Files

history_collector.go manager.go processor.go sort.go

Version
v0.48.1 (latest)
Published
Feb 11, 2025
Platform
linux/amd64
Imports
12 packages
Last checked
2 months ago

Tools for package owners.