model

package
v0.16.0 Latest Latest
Warning

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

Go to latest
Published: Feb 20, 2020 License: Apache-2.0, Apache-2.0 Imports: 24 Imported by: 0

Documentation

Index

Constants

View Source
const NA = "n/a"

NA indicates data is missing at this time.

Variables

View Source
var Registry = map[string]ResourceMeta{

	"charts": {
		DAO:      &dao.Chart{},
		Renderer: &render.Chart{},
	},
	"pulses": {
		DAO: &dao.Pulse{},
	},
	"openfaas": {
		DAO:      &dao.OpenFaas{},
		Renderer: &render.OpenFaas{},
	},
	"containers": {
		DAO:          &dao.Container{},
		Renderer:     &render.Container{},
		TreeRenderer: &xray.Container{},
	},
	"contexts": {
		DAO:      &dao.Context{},
		Renderer: &render.Context{},
	},
	"screendumps": {
		DAO:      &dao.ScreenDump{},
		Renderer: &render.ScreenDump{},
	},
	"rbac": {
		DAO:      &dao.Rbac{},
		Renderer: &render.Rbac{},
	},
	"policy": {
		DAO:      &dao.Policy{},
		Renderer: &render.Policy{},
	},
	"users": {
		DAO:      &dao.Subject{},
		Renderer: &render.Subject{},
	},
	"groups": {
		DAO:      &dao.Subject{},
		Renderer: &render.Subject{},
	},
	"portforwards": {
		DAO:      &dao.PortForward{},
		Renderer: &render.PortForward{},
	},
	"benchmarks": {
		DAO:      &dao.Benchmark{},
		Renderer: &render.Benchmark{},
	},
	"aliases": {
		DAO:      &dao.Alias{},
		Renderer: &render.Alias{},
	},

	"v1/endpoints": {
		Renderer: &render.Endpoints{},
	},
	"v1/events": {
		Renderer: &render.Event{},
	},
	"v1/pods": {
		DAO:          &dao.Pod{},
		Renderer:     &render.Pod{},
		TreeRenderer: &xray.Pod{},
	},
	"v1/namespaces": {
		Renderer: &render.Namespace{},
	},
	"v1/nodes": {
		DAO:      &dao.Node{},
		Renderer: &render.Node{},
	},
	"v1/services": {
		DAO:          &dao.Service{},
		Renderer:     &render.Service{},
		TreeRenderer: &xray.Service{},
	},
	"v1/serviceaccounts": {
		Renderer: &render.ServiceAccount{},
	},
	"v1/persistentvolumes": {
		Renderer: &render.PersistentVolume{},
	},
	"v1/persistentvolumeclaims": {
		Renderer: &render.PersistentVolumeClaim{},
	},

	"apps/v1/deployments": {
		DAO:          &dao.Deployment{},
		Renderer:     &render.Deployment{},
		TreeRenderer: &xray.Deployment{},
	},
	"apps/v1/replicasets": {
		Renderer:     &render.ReplicaSet{},
		TreeRenderer: &xray.ReplicaSet{},
	},
	"apps/v1/statefulsets": {
		DAO:          &dao.StatefulSet{},
		Renderer:     &render.StatefulSet{},
		TreeRenderer: &xray.StatefulSet{},
	},
	"apps/v1/daemonsets": {
		DAO:          &dao.DaemonSet{},
		Renderer:     &render.DaemonSet{},
		TreeRenderer: &xray.DaemonSet{},
	},

	"extensions/v1beta1/daemonsets": {
		Renderer: &render.DaemonSet{},
	},
	"extensions/v1beta1/ingresses": {
		Renderer: &render.Ingress{},
	},
	"extensions/v1beta1/networkpolicies": {
		Renderer: &render.NetworkPolicy{},
	},
	"networking.k8s.io/v1/networkpolicies": {
		Renderer: &render.NetworkPolicy{},
	},

	"batch/v1beta1/cronjobs": {
		DAO:      &dao.CronJob{},
		Renderer: &render.CronJob{},
	},
	"batch/v1/jobs": {
		DAO:      &dao.Job{},
		Renderer: &render.Job{},
	},

	"autoscaling/v1/horizontalpodautoscalers": {
		DAO:      &dao.HorizontalPodAutoscaler{},
		Renderer: &render.HorizontalPodAutoscaler{},
	},
	"autoscaling/v2beta1/horizontalpodautoscalers": {
		DAO:      &dao.HorizontalPodAutoscaler{},
		Renderer: &render.HorizontalPodAutoscaler{},
	},
	"autoscaling/v2beta2/horizontalpodautoscalers": {
		DAO:      &dao.HorizontalPodAutoscaler{},
		Renderer: &render.HorizontalPodAutoscaler{},
	},

	"apiextensions.k8s.io/v1/customresourcedefinitions": {
		Renderer: &render.CustomResourceDefinition{},
	},
	"apiextensions.k8s.io/v1beta1/customresourcedefinitions": {
		Renderer: &render.CustomResourceDefinition{},
	},

	"storage.k8s.io/v1/storageclasses": {
		Renderer: &render.StorageClass{},
	},

	"policy/v1beta1/poddisruptionbudgets": {
		Renderer: &render.PodDisruptionBudget{},
	},

	"rbac.authorization.k8s.io/v1/clusterroles": {
		DAO:      &dao.Rbac{},
		Renderer: &render.ClusterRole{},
	},
	"rbac.authorization.k8s.io/v1/clusterrolebindings": {
		Renderer: &render.ClusterRoleBinding{},
	},
	"rbac.authorization.k8s.io/v1/roles": {
		Renderer: &render.Role{},
	},
	"rbac.authorization.k8s.io/v1/rolebindings": {
		Renderer: &render.RoleBinding{},
	},
}

Registry tracks resources metadata. BOZO!! Break up deps and merge into single registrar

Functions

func FQN

func FQN(ns, n string) string

FQN returns a fully qualified resource name.

func MetaFQN

func MetaFQN(m metav1.ObjectMeta) string

MetaFQN returns a fully qualified resource name.

func Truncate

func Truncate(str string, width int) string

Truncate a string to the given l and suffix ellipsis if needed.

Types

type Cluster

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

Cluster represents a kubernetes resource.

func NewCluster

func NewCluster(f dao.Factory) *Cluster

NewCluster returns a new cluster info resource.

func (*Cluster) ClusterName

func (c *Cluster) ClusterName() string

ClusterName returns the cluster name.

func (*Cluster) ContextName

func (c *Cluster) ContextName() string

ContextName returns the context name.

func (*Cluster) Metrics

func (c *Cluster) Metrics(mx *client.ClusterMetrics) error

Metrics gathers node level metrics and compute utilization percentages.

func (*Cluster) UserName

func (c *Cluster) UserName() string

UserName returns the user name.

func (*Cluster) Version

func (c *Cluster) Version() string

Version returns the current K8s cluster version.

type ClusterInfo added in v0.13.5

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

ClusterInfo models cluster metadata.

func NewClusterInfo added in v0.13.5

func NewClusterInfo(f dao.Factory, version string) *ClusterInfo

NewClusterInfo returns a new instance.

func (*ClusterInfo) AddListener added in v0.13.5

func (c *ClusterInfo) AddListener(l ClusterInfoListener)

AddListener adds a new model listener.

func (*ClusterInfo) Refresh added in v0.13.5

func (c *ClusterInfo) Refresh()

Refresh fetches latest cluster meta.

func (*ClusterInfo) RemoveListener added in v0.13.5

func (c *ClusterInfo) RemoveListener(l ClusterInfoListener)

RemoveListener delete a listener from the list.

func (*ClusterInfo) Reset added in v0.13.5

func (c *ClusterInfo) Reset(f dao.Factory)

Reset resets context and reload.

type ClusterInfoListener added in v0.13.5

type ClusterInfoListener interface {
	// ClusterInfoChanged notifies the cluster meta was changed.
	ClusterInfoChanged(prev, curr ClusterMeta)

	// ClusterInfoUpdated notifies the cluster meta was updated.
	ClusterInfoUpdated(ClusterMeta)
}

ClusterInfoListener registers a listener for model changes.

type ClusterMeta added in v0.13.5

type ClusterMeta struct {
	Context, Cluster string
	User             string
	K9sVer, K8sVer   string
	Cpu, Mem         float64
}

ClusterMeta represents cluster meta data.

func NewClusterMeta added in v0.13.5

func NewClusterMeta() ClusterMeta

NewClusterMeta returns a new instance.

func (ClusterMeta) Deltas added in v0.13.5

func (c ClusterMeta) Deltas(n ClusterMeta) bool

Deltas diffs cluster meta return true if different, false otherwise.

type Component

type Component interface {
	Primitive
	Igniter
	Hinter
}

Component represents a ui component

type Cruder

type Cruder interface {
	// List returns a collection of resources.
	List(ctx context.Context, ns string) ([]runtime.Object, error)

	// Get returns a resource instance.
	Get(ctx context.Context, path string) (runtime.Object, error)
}

Cruder performs crud operations.

type Describer

type Describer interface {
	// ToYAML return resource yaml.
	ToYAML(ctx context.Context, path string) (string, error)

	// Describe returns a resource description.
	Describe(client client.Connection, gvr, path string) (string, error)
}

Describer represents a resource describer.

type Flash added in v0.16.0

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

Flash represents a flash message model.

func NewFlash added in v0.16.0

func NewFlash(dur time.Duration) *Flash

func (*Flash) Channel added in v0.16.0

func (f *Flash) Channel() FlashChan

Channel returns the flash channel.

func (*Flash) Clear added in v0.16.0

func (f *Flash) Clear()

Clear clears the flash message.

func (*Flash) Err added in v0.16.0

func (f *Flash) Err(err error)

Err displays an error flash message.

func (*Flash) Errf added in v0.16.0

func (f *Flash) Errf(fmat string, args ...interface{})

Errf displays a formatted error flash message.

func (*Flash) Info added in v0.16.0

func (f *Flash) Info(msg string)

Info displays an info flash message.

func (*Flash) Infof added in v0.16.0

func (f *Flash) Infof(fmat string, args ...interface{})

Infof displays a formatted info flash message.

func (*Flash) SetMessage added in v0.16.0

func (f *Flash) SetMessage(level FlashLevel, msg string)

SetMessage sets the flash level message.

func (*Flash) Warn added in v0.16.0

func (f *Flash) Warn(msg string)

Warn displays a warning flash message.

func (*Flash) Warnf added in v0.16.0

func (f *Flash) Warnf(fmat string, args ...interface{})

Warnf displays a formatted warning flash message.

type FlashChan added in v0.16.0

type FlashChan chan LevelMessage

FlashChan represents a flash event channel.

type FlashLevel added in v0.16.0

type FlashLevel int

FlashLevel represents flash message severity.

const (
	// DefaultFlashDelay sets the flash clear delay.
	DefaultFlashDelay = 3 * time.Second

	// FlashInfo represents an info message.
	FlashInfo FlashLevel = iota
	// FlashWarn represents an warning message.
	FlashWarn
	// FlashErr represents an error message.
	FlashErr
)

type FlashListener added in v0.16.0

type FlashListener interface {
	// FlashChanged notifies the model changed.
	FlashChanged(FlashLevel, string)

	// FlashCleared notifies when the filter changed.
	FlashCleared()
}

FlashListener represents a text model listener.

type Hint

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

Hint represent a hint model.

func NewHint

func NewHint() *Hint

NewHint return new hint model.

func (*Hint) AddListener

func (h *Hint) AddListener(l HintListener)

AddListener adds a hint listener.

func (*Hint) Peek

func (h *Hint) Peek() MenuHints

Peek returns the model data.

func (*Hint) RemoveListener

func (h *Hint) RemoveListener(l HintListener)

RemoveListener deletes a listener.

func (*Hint) SetHints

func (h *Hint) SetHints(hh MenuHints)

SetHints set model hints.

type HintListener

type HintListener interface {
	HintsChanged(MenuHints)
}

HintListener represents a menu hints listener.

type Hinter

type Hinter interface {
	// Hints returns a collection of menu hints.
	Hints() MenuHints

	// ExtraHints returns additional hints.
	ExtraHints() map[string]string
}

Hinter represent a menu mnemonic provider.

type Igniter

type Igniter interface {
	// Start starts a component.
	Init(ctx context.Context) error

	// Start starts a component.
	Start()

	// Stop terminates a component.
	Stop()
}

Igniter represents a runnable view.

type LevelMessage added in v0.16.0

type LevelMessage struct {
	Level FlashLevel
	Text  string
}

func (LevelMessage) IsClear added in v0.16.0

func (l LevelMessage) IsClear() bool

type Lister

type Lister interface {
	Cruder

	// Init initializes a resource.
	Init(ns, gvr string, f dao.Factory)
}

Lister represents a resource lister.

type Log

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

Log represents a resource logger.

func NewLog

func NewLog(gvr client.GVR, opts dao.LogOptions, timeOut time.Duration) *Log

NewLog returns a new model.

func (*Log) AddListener

func (l *Log) AddListener(listener LogsListener)

AddListener adds a new model listener.

func (*Log) Append

func (l *Log) Append(line string)

Append adds a log line.

func (*Log) Clear

func (l *Log) Clear()

Clear the logs.

func (*Log) ClearFilter

func (l *Log) ClearFilter()

ClearFilter resets the log filter if any.

func (*Log) Filter

func (l *Log) Filter(q string) error

Filter filters the model using either fuzzy or regexp.

func (*Log) GetContainer

func (l *Log) GetContainer() string

GetContainer returns the resource container if any or "" otherwise.

func (*Log) GetPath

func (l *Log) GetPath() string

GetPath returns resource path.

func (*Log) Init

func (l *Log) Init(f dao.Factory)

Init initializes the model.

func (*Log) Notify

func (l *Log) Notify(timedOut bool)

Notify fires of notifications to the listeners.

func (*Log) RemoveListener

func (l *Log) RemoveListener(listener LogsListener)

RemoveListener delete a listener from the lisl.

func (*Log) Set

func (l *Log) Set(lines []string)

Set sets the log lines (for testing only!)

func (*Log) Start

func (l *Log) Start()

Start initialize log tailer.

func (*Log) Stop

func (l *Log) Stop()

Stop terminates log tailing.

type LogsListener

type LogsListener interface {
	// LogChanged notifies the model changed.
	LogChanged([]string)

	// LogCleanred indicates logs are cleared.
	LogCleared()

	// LogFailed indicates a log failure.
	LogFailed(error)
}

LogsListener represents a log model listener.

type MenuHint struct {
	Mnemonic    string
	Description string
	Visible     bool
}

MenuHint represents keyboard mnemonic.

func (m MenuHint) IsBlank() bool

IsBlank checks if menu hint is a place holder.

type MenuHints []MenuHint

MenuHints represents a collection of hints.

func (h MenuHints) Len() int
func (h MenuHints) Less(i, j int) bool
func (h MenuHints) Swap(i, j int)

type MetricsServer

MetricsServer gather metrics information from pods and nodes.

type MetricsService

type MetricsService interface {
	HasMetrics() bool
	FetchNodesMetrics() (*mv1beta1.NodeMetricsList, error)
	FetchPodsMetrics(ns string) (*mv1beta1.PodMetricsList, error)
}

MetricsService calls the metrics server for metrics info.

type Primitive

type Primitive interface {
	tview.Primitive

	// Name returns the view name.
	Name() string
}

Primitive represents a UI primitive.

type Pulse added in v0.16.0

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

Pulse tracks multiple resources health.

func NewPulse added in v0.16.0

func NewPulse(gvr string) *Pulse

func (*Pulse) AddListener added in v0.16.0

func (p *Pulse) AddListener(l PulseListener)

AddListener adds a listener.

func (*Pulse) GetNamespace added in v0.16.0

func (p *Pulse) GetNamespace() string

GetNamespace returns the model namespace.

func (*Pulse) Refresh added in v0.16.0

func (p *Pulse) Refresh(ctx context.Context)

Refresh update the model now.

func (*Pulse) RemoveListener added in v0.16.0

func (p *Pulse) RemoveListener(l PulseListener)

RemoveListener delete a listener.

func (*Pulse) SetNamespace added in v0.16.0

func (p *Pulse) SetNamespace(ns string)

SetNamespace sets up model namespace.

func (*Pulse) Watch added in v0.16.0

func (p *Pulse) Watch(ctx context.Context)

type PulseHealth added in v0.16.0

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

func NewPulseHealth added in v0.16.0

func NewPulseHealth(f dao.Factory) *PulseHealth

func (*PulseHealth) List added in v0.16.0

func (h *PulseHealth) List(ctx context.Context, ns string) ([]runtime.Object, error)

type PulseListener added in v0.16.0

type PulseListener interface {
	// PulseChanged notifies the model data changed.
	PulseChanged(*health.Check)

	// TreeFailed notifies the health check failed.
	PulseFailed(error)
}

PulseListener represents a health model listener.

type Renderer

type Renderer interface {
	// Render converts raw resources to tabular data.
	Render(o interface{}, ns string, row *render.Row) error

	// Header returns the resource header.
	Header(ns string) render.HeaderRow

	// ColorerFunc returns a row colorer function.
	ColorerFunc() render.ColorerFunc
}

Renderer represents a resource renderer.

type ResourceMeta

type ResourceMeta struct {
	DAO          dao.Accessor
	Renderer     Renderer
	TreeRenderer TreeRenderer
}

ResourceMeta represents model info about a resource.

type Stack

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

Stack represents a stacks of components.

func NewStack

func NewStack() *Stack

NewStack returns a new initialized stack.

func (*Stack) AddListener

func (s *Stack) AddListener(l StackListener)

AddListener registers a stack listener.

func (*Stack) Clear

func (s *Stack) Clear()

Clear clear out the stack using pops.

func (*Stack) Dump

func (s *Stack) Dump()

Dump prints out the stack.

func (*Stack) Empty

func (s *Stack) Empty() bool

Empty returns true if the stack is empty.

func (*Stack) Flatten

func (s *Stack) Flatten() []string

Flatten returns a string representation of the component stack.

func (*Stack) IsLast

func (s *Stack) IsLast() bool

IsLast indicates if stack only has one item left.

func (*Stack) Peek

func (s *Stack) Peek() []Component

Peek returns stack state.

func (*Stack) Pop

func (s *Stack) Pop() (Component, bool)

Pop removed the top item and returns it.

func (*Stack) Previous

func (s *Stack) Previous() Component

Previous returns the previous component if any.

func (*Stack) Push

func (s *Stack) Push(c Component)

Push adds a new item.

func (*Stack) RemoveListener

func (s *Stack) RemoveListener(l StackListener)

RemoveListener removes a listener.

func (*Stack) Top

func (s *Stack) Top() Component

Top returns the top most item or nil if the stack is empty.

type StackAction

type StackAction int

StackAction represents an action on the stack.

const (
	// StackPush denotes an add on the stack.
	StackPush StackAction = 1 << iota

	// StackPop denotes a delete on the stack.
	StackPop
)

type StackEvent

type StackEvent struct {
	// Kind represents the event condition.
	Action StackAction

	// Item represents the targeted item.
	Component Component
}

StackEvent represents an operation on a view stack.

type StackListener

type StackListener interface {
	// StackPushed indicates a new item was added.
	StackPushed(Component)

	// StackPopped indicates an item was deleted
	StackPopped(old, new Component)

	// StackTop indicates the top of the stack
	StackTop(Component)
}

StackListener represents a stack listener.

type Table

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

Table represents a table model.

func NewTable

func NewTable(gvr string) *Table

NewTable returns a new table model.

func (*Table) AddListener

func (t *Table) AddListener(l TableListener)

AddListener adds a new model listener.

func (*Table) ClusterWide

func (t *Table) ClusterWide() bool

ClusterWide checks if resource is scope for all namespaces.

func (*Table) Delete

func (t *Table) Delete(ctx context.Context, path string, cascade, force bool) error

Delete deletes a resource.

func (*Table) Describe

func (t *Table) Describe(ctx context.Context, path string) (string, error)

Describe describes a given resource.

func (*Table) Empty

func (t *Table) Empty() bool

Empty return true if no model data.

func (*Table) Get

func (t *Table) Get(ctx context.Context, path string) (runtime.Object, error)

Get returns a resource instance if found, else an error.

func (*Table) GetNamespace

func (t *Table) GetNamespace() string

GetNamespace returns the model namespace.

func (*Table) InNamespace

func (t *Table) InNamespace(ns string) bool

InNamespace checks if current namespace matches desired namespace.

func (*Table) Peek

func (t *Table) Peek() render.TableData

Peek returns model data.

func (*Table) Refresh

func (t *Table) Refresh(ctx context.Context)

Refresh updates the table content.

func (*Table) RemoveListener

func (t *Table) RemoveListener(l TableListener)

RemoveListener delete a listener from the list.

func (*Table) SetInstance

func (t *Table) SetInstance(path string)

SetInstance sets a single entry table.

func (*Table) SetNamespace

func (t *Table) SetNamespace(ns string)

SetNamespace sets up model namespace.

func (*Table) SetRefreshRate

func (t *Table) SetRefreshRate(d time.Duration)

SetRefreshRate sets model refresh duration.

func (*Table) ToYAML

func (t *Table) ToYAML(ctx context.Context, path string) (string, error)

ToYAML returns a resource yaml.

func (*Table) Watch

func (t *Table) Watch(ctx context.Context)

Watch initiates model updates.

type TableListener

type TableListener interface {
	// TableDataChanged notifies the model data changed.
	TableDataChanged(render.TableData)

	// TableLoadFailed notifies the load failed.
	TableLoadFailed(error)
}

TableListener represents a table model listener.

type Text added in v0.14.0

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

Text represents a text model.

func NewText added in v0.14.0

func NewText() *Text

NewText returns a new model.

func (*Text) AddListener added in v0.14.0

func (t *Text) AddListener(listener TextListener)

AddListener adds a new model listener.

func (*Text) ClearFilter added in v0.14.0

func (t *Text) ClearFilter()

ClearFilter clear out filter.

func (*Text) Filter added in v0.14.0

func (t *Text) Filter(q string)

Filter filters out the text.

func (*Text) Peek added in v0.14.0

func (t *Text) Peek() []string

Peek returns the current model state.

func (*Text) RemoveListener added in v0.14.0

func (t *Text) RemoveListener(listener TextListener)

RemoveListener delete a listener from the list.

func (*Text) SetText added in v0.14.0

func (t *Text) SetText(buff string)

SetText sets the current model content.

type TextListener added in v0.14.0

type TextListener interface {
	// TextChanged notifies the model changed.
	TextChanged([]string)

	// TextFiltered notifies when the filter changed.
	TextFiltered([]string, fuzzy.Matches)
}

TextListener represents a text model listener.

type Tree

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

Tree represents a tree model.

func NewTree

func NewTree(gvr string) *Tree

NewTree returns a new model.

func (*Tree) AddListener

func (t *Tree) AddListener(l TreeListener)

AddListener adds a listener.

func (*Tree) ClearFilter

func (t *Tree) ClearFilter()

ClearFilter clears out active filter.

func (*Tree) ClusterWide

func (t *Tree) ClusterWide() bool

ClusterWide checks if resource is scope for all namespaces.

func (*Tree) Describe

func (t *Tree) Describe(ctx context.Context, gvr, path string) (string, error)

Describe describes a given resource.

func (*Tree) Empty

func (t *Tree) Empty() bool

Empty return true if no model data.

func (*Tree) GetNamespace

func (t *Tree) GetNamespace() string

GetNamespace returns the model namespace.

func (*Tree) InNamespace

func (t *Tree) InNamespace(ns string) bool

InNamespace checks if current namespace matches desired namespace.

func (*Tree) Peek

func (t *Tree) Peek() *xray.TreeNode

Peek returns model data.

func (*Tree) Refresh

func (t *Tree) Refresh(ctx context.Context)

Refresh update the model now.

func (*Tree) RemoveListener

func (t *Tree) RemoveListener(l TreeListener)

RemoveListener delete a listener.

func (*Tree) SetFilter

func (t *Tree) SetFilter(q string)

SetFilter sets the current filter.

func (*Tree) SetNamespace

func (t *Tree) SetNamespace(ns string)

SetNamespace sets up model namespace.

func (*Tree) SetRefreshRate

func (t *Tree) SetRefreshRate(d time.Duration)

SetRefreshRate sets model refresh duration.

func (*Tree) ToYAML

func (t *Tree) ToYAML(ctx context.Context, gvr, path string) (string, error)

ToYAML returns a resource yaml.

func (*Tree) Watch

func (t *Tree) Watch(ctx context.Context)

Watch initiates model updates.

type TreeListener

type TreeListener interface {
	// TreeChanged notifies the model data changed.
	TreeChanged(*xray.TreeNode)

	// TreeLoadFailed notifies the load failed.
	TreeLoadFailed(error)
}

TreeListener represents a tree model listener.

type TreeRenderer

type TreeRenderer interface {
	Render(ctx context.Context, ns string, o interface{}) error
}

TreeRenderer represents an xray node.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL