model

package
v0.20.0 Latest Latest
Warning

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

Go to latest
Published: May 28, 2020 License: Apache-2.0, Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const MaxHistory = 20

MaxHistory tracks max command history

View Source
const NA = "n/a"

NA indicates data is missing at this time.

Variables

View Source
var Registry = map[string]ResourceMeta{

	"references": {
		DAO:      &dao.Reference{},
		Renderer: &render.Reference{},
	},
	"helm": {
		DAO:      &dao.Helm{},
		Renderer: &render.Helm{},
	},
	"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{},
	},
	"popeye": {
		DAO:      &dao.Popeye{},
		Renderer: &render.Popeye{},
	},
	"sanitizer": {
		DAO:          &dao.Popeye{},
		TreeRenderer: &xray.Section{},
	},

	"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 BuffWatcher added in v0.18.0

type BuffWatcher interface {
	// Changed indicates the buffer was changed.
	BufferChanged(s string)

	// Active indicates the buff activity changed.
	BufferActive(state bool, kind BufferKind)
}

BuffWatcher represents a command buffer listener.

type BufferKind added in v0.18.0

type BufferKind int8

BufferKind indicates a buffer type

const (
	// CommandBuffer represents a command buffer.
	CommandBuffer BufferKind = 1 << iota
	// FilterBuffer represents a filter buffer.
	FilterBuffer
)

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(ctx context.Context, 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, Ephemeral int
}

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 CmdBuff added in v0.18.0

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

CmdBuff represents user command input.

func NewCmdBuff added in v0.18.0

func NewCmdBuff(key rune, kind BufferKind) *CmdBuff

NewCmdBuff returns a new command buffer.

func (*CmdBuff) Add added in v0.18.0

func (c *CmdBuff) Add(r rune)

Add adds a new charater to the buffer.

func (*CmdBuff) AddListener added in v0.18.0

func (c *CmdBuff) AddListener(w BuffWatcher)

AddListener registers a cmd buffer listener.

func (*CmdBuff) ClearText added in v0.19.1

func (c *CmdBuff) ClearText()

ClearText clears out command buffer.

func (*CmdBuff) Delete added in v0.18.0

func (c *CmdBuff) Delete()

Delete removes the last character from the buffer.

func (*CmdBuff) Empty added in v0.18.0

func (c *CmdBuff) Empty() bool

Empty returns true if no cmd, false otherwise.

func (*CmdBuff) GetText added in v0.19.1

func (c *CmdBuff) GetText() string

GetText returns the current text.

func (*CmdBuff) InCmdMode added in v0.18.0

func (c *CmdBuff) InCmdMode() bool

InCmdMode checks if a command exists and the buffer is active.

func (*CmdBuff) IsActive added in v0.18.0

func (c *CmdBuff) IsActive() bool

IsActive checks if command buffer is active.

func (*CmdBuff) RemoveListener added in v0.18.0

func (c *CmdBuff) RemoveListener(l BuffWatcher)

RemoveListener removes a listener.

func (*CmdBuff) Reset added in v0.18.0

func (c *CmdBuff) Reset()

Reset clears out the command buffer and deactivates it.

func (*CmdBuff) SetActive added in v0.18.0

func (c *CmdBuff) SetActive(b bool)

SetActive toggles cmd buffer active state.

func (*CmdBuff) SetText added in v0.19.1

func (c *CmdBuff) SetText(cmd string)

SetText initializes the buffer with a command.

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 FishBuff added in v0.18.0

type FishBuff struct {
	*CmdBuff
	// contains filtered or unexported fields
}

FishBuff represents a suggestion buffer.

func NewFishBuff added in v0.18.0

func NewFishBuff(key rune, kind BufferKind) *FishBuff

NewFishBuff returns a new command buffer.

func (*FishBuff) Add added in v0.18.0

func (f *FishBuff) Add(r rune)

Add adds a new charater to the buffer.

func (*FishBuff) AutoSuggests added in v0.19.1

func (f *FishBuff) AutoSuggests() bool

AutoSuggests returns true if model implements auto suggestions.

func (*FishBuff) ClearSuggestions added in v0.19.1

func (f *FishBuff) ClearSuggestions()

ClearSuggestions clear out all suggestions.

func (*FishBuff) CurrentSuggestion added in v0.19.1

func (f *FishBuff) CurrentSuggestion() (string, bool)

CurrentSuggestion returns the current suggestion.

func (*FishBuff) Delete added in v0.18.0

func (f *FishBuff) Delete()

Delete removes the last character from the buffer.

func (*FishBuff) NextSuggestion added in v0.19.1

func (f *FishBuff) NextSuggestion() (string, bool)

NextSuggestion returns the next suggestion.

func (*FishBuff) Notify added in v0.19.1

func (f *FishBuff) Notify()

Notify publish suggestions to all listeners.

func (*FishBuff) PrevSuggestion added in v0.19.1

func (f *FishBuff) PrevSuggestion() (string, bool)

PrevSuggestion returns the prev suggestion.

func (*FishBuff) SetSuggestionFn added in v0.18.0

func (f *FishBuff) SetSuggestionFn(fn SuggestionFunc)

SetSuggestionFn sets up suggestions.

func (*FishBuff) Suggestions added in v0.19.1

func (f *FishBuff) Suggestions() []string

Suggestions returns suggestions.

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

NewFlash returns a new instance.

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 History added in v0.19.0

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

History represents a command history.

func NewHistory added in v0.19.0

func NewHistory(limit int) *History

NewHistory returns a new instance.

func (*History) Clear added in v0.19.0

func (h *History) Clear()

Clear clears out the stack.

func (*History) Empty added in v0.19.0

func (h *History) Empty() bool

Empty returns true if no history.

func (*History) List added in v0.19.0

func (h *History) List() []string

List returns the current command history.

func (*History) Push added in v0.19.0

func (h *History) Push(c string)

Push adds a new item.

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
}

LevelMessage tracks an message and severity.

func (LevelMessage) IsClear added in v0.16.0

func (l LevelMessage) IsClear() bool

IsClear returns true if message is empty.

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, flushTimeout 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 *dao.LogItem)

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) Configure added in v0.18.0

func (l *Log) Configure(opts *config.Logger)

Configure sets logger configuration.

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) LogOptions added in v0.18.0

func (l *Log) LogOptions() dao.LogOptions

LogOptions returns the current log options.

func (*Log) Notify

func (l *Log) Notify(timedOut bool)

Notify fires of notifications to the listeners.

func (*Log) Refresh added in v0.18.0

func (l *Log) Refresh()

Refresh refreshes the logs.

func (*Log) RemoveListener

func (l *Log) RemoveListener(listener LogsListener)

RemoveListener delete a listener from the lisl.

func (*Log) Restart added in v0.18.0

func (l *Log) Restart()

Restart restarts the logger.

func (*Log) Set

func (l *Log) Set(items dao.LogItems)

Set sets the log lines (for testing only!)

func (*Log) SetLogOptions added in v0.18.0

func (l *Log) SetLogOptions(opts dao.LogOptions)

SetLogOptions updates logger options.

func (*Log) SinceSeconds added in v0.18.0

func (l *Log) SinceSeconds() int64

SinceSeconds returns since seconds option.

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(dao.LogItems)

	// 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(ctx context.Context) (*mv1beta1.NodeMetricsList, error)
	FetchPodsMetrics(ctx context.Context, 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

NewPulse returns a new 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)

Watch monitors pulses.

type PulseHealth added in v0.16.0

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

PulseHealth tracks resources health.

func NewPulseHealth added in v0.16.0

func NewPulseHealth(f dao.Factory) *PulseHealth

NewPulseHealth returns a new instance.

func (*PulseHealth) List added in v0.16.0

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

List returns a canned collection of resources health.

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.Header

	// 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 SuggestionFunc added in v0.18.0

type SuggestionFunc func(text string) sort.StringSlice

SuggestionFunc produces suggestions.

type SuggestionListener added in v0.18.0

type SuggestionListener interface {
	BuffWatcher

	// SuggestionChanged notifies suggestion changes.
	SuggestionChanged(text, sugg string)
}

SuggestionListener listens for suggestions.

type Table

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

Table represents a table model.

func NewTable

func NewTable(gvr client.GVR) *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 client.GVR) *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