record

package
Version: v0.0.0-...-6048ecc Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 5, 2015 License: Apache-2.0 Imports: 12 Imported by: 0

Documentation

Overview

Package record has all client logic for recording and reporting events.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetEvents

func GetEvents(f func(*api.Event)) watch.Interface

GetEvents lets you see *local* events. Convenience function for testing. The return value can be ignored or used to stop logging, if desired.

func StartLogging

func StartLogging(logf func(format string, args ...interface{})) watch.Interface

StartLogging just logs local events, using the given logging function. The return value can be ignored or used to stop logging, if desired.

func StartRecording

func StartRecording(sink EventSink) watch.Interface

StartRecording starts sending events to a sink. Call once while initializing your binary. Subsequent calls will be ignored. The return value can be ignored or used to stop recording, if desired. TODO: make me an object with parameterizable queue length and retry interval

Types

type EventRecorder

type EventRecorder interface {
	// Event constructs an event from the given information and puts it in the queue for sending.
	// 'object' is the object this event is about. Event will make a reference-- or you may also
	// pass a reference to the object directly.
	// 'reason' is the reason this event is generated. 'reason' should be short and unique; it will
	// be used to automate handling of events, so imagine people writing switch statements to
	// handle them. You want to make that easy.
	// 'message' is intended to be human readable.
	//
	// The resulting event will be created in the same namespace as the reference object.
	Event(object runtime.Object, reason, message string)

	// Eventf is just like Event, but with Sprintf for the message field.
	Eventf(object runtime.Object, reason, messageFmt string, args ...interface{})
}

EventRecorder knows how to record events for an EventSource.

func FromSource

func FromSource(source api.EventSource) EventRecorder

FromSource returns an EventRecorder that records events with the given event source.

type EventSink

type EventSink interface {
	Create(event *api.Event) (*api.Event, error)
	Update(event *api.Event) (*api.Event, error)
}

EventSink knows how to store events (client.Client implements it.) EventSink must respect the namespace that will be embedded in 'event'. It is assumed that EventSink will return the same sorts of errors as pkg/client's REST client.

type FakeRecorder

type FakeRecorder struct{}

FakeRecorder is used as a fake during tests.

func (*FakeRecorder) Event

func (f *FakeRecorder) Event(object runtime.Object, reason, message string)

func (*FakeRecorder) Eventf

func (f *FakeRecorder) Eventf(object runtime.Object, reason, messageFmt string, args ...interface{})

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
t or T : Toggle theme light dark auto
y or Y : Canonical URL