Documentation
¶
Index ¶
- Constants
- func HumanDuration(d time.Duration) string
- func PrintStatesAsTable(states []types.ProcessState)
- type ExitError
- type IProject
- type ProcOpts
- type Process
- type ProcessStateBroadcaster
- func (b *ProcessStateBroadcaster) Close()
- func (b *ProcessStateBroadcaster) Publish(ev types.ProcessStateEvent)
- func (b *ProcessStateBroadcaster) Subscribe(o types.StateObserver)
- func (b *ProcessStateBroadcaster) SubscribeWithSnapshot(o types.StateObserver)
- func (b *ProcessStateBroadcaster) Unsubscribe(o types.StateObserver)
- type ProcessTree
- type ProjectOpts
- func (p *ProjectOpts) WithDotEnvDisabled(disabled bool) *ProjectOpts
- func (p *ProjectOpts) WithIsTuiOn(isTuiOn bool) *ProjectOpts
- func (p *ProjectOpts) WithLogTruncate(truncateLogs bool) *ProjectOpts
- func (p *ProjectOpts) WithMainProcess(mainProcess string) *ProjectOpts
- func (p *ProjectOpts) WithMainProcessArgs(mainProcessArgs []string) *ProjectOpts
- func (p *ProjectOpts) WithNoDeps(noDeps bool) *ProjectOpts
- func (p *ProjectOpts) WithOrderedShutdown(isOrderedShutdown bool) *ProjectOpts
- func (p *ProjectOpts) WithProcessesToRun(processesToRun []string) *ProjectOpts
- func (p *ProjectOpts) WithProject(project *types.Project) *ProjectOpts
- func (p *ProjectOpts) WithRecursiveMetrics(withRecursiveMetrics bool) *ProjectOpts
- func (p *ProjectOpts) WithSlowRefRate(refRate time.Duration) *ProjectOpts
- type ProjectRunner
- func (p *ProjectRunner) ErrorForSecs() int
- func (p *ProjectRunner) GetDependenciesOrderNames() ([]string, error)
- func (p *ProjectRunner) GetDependencyGraph() (*types.DependencyGraph, error)
- func (p *ProjectRunner) GetFullProcessEnvironment(proc *types.ProcessConfig) []string
- func (p *ProjectRunner) GetLexicographicProcessNames() ([]string, error)
- func (p *ProjectRunner) GetLogLength() int
- func (p *ProjectRunner) GetLogsAndSubscribe(name string, observer pclog.LogObserver) error
- func (p *ProjectRunner) GetNamespaces() ([]string, error)
- func (p *ProjectRunner) GetProcessInfo(name string) (*types.ProcessConfig, error)
- func (p *ProjectRunner) GetProcessLog(name string, offsetFromEnd, limit int) ([]string, error)
- func (p *ProjectRunner) GetProcessLogLength(name string) int
- func (p *ProjectRunner) GetProcessPorts(name string) (*types.ProcessPorts, error)
- func (p *ProjectRunner) GetProcessPty(name string) *os.File
- func (p *ProjectRunner) GetProcessState(name string) (*types.ProcessState, error)
- func (p *ProjectRunner) GetProcessesState() (*types.ProcessesState, error)
- func (p *ProjectRunner) GetProjectName() (string, error)
- func (p *ProjectRunner) GetProjectState(checkMem bool) (*types.ProjectState, error)
- func (p *ProjectRunner) IsRemote() bool
- func (p *ProjectRunner) RegisterStateObserver(o types.StateObserver)
- func (p *ProjectRunner) ReloadProject() (map[string]string, error)
- func (p *ProjectRunner) RestartNamespace(namespace string) error
- func (p *ProjectRunner) RestartProcess(name string) error
- func (p *ProjectRunner) Run() error
- func (p *ProjectRunner) ScaleProcess(name string, scale int) error
- func (p *ProjectRunner) SendSignal(name string, sig int) error
- func (p *ProjectRunner) SetProcessInfo(config *types.ProcessConfig) error
- func (p *ProjectRunner) SetProcessPassword(name, pass string) error
- func (p *ProjectRunner) ShutDownProject() error
- func (p *ProjectRunner) StartNamespace(namespace string) error
- func (p *ProjectRunner) StartProcess(name string) error
- func (p *ProjectRunner) StopNamespace(namespace string) error
- func (p *ProjectRunner) StopProcess(name string) error
- func (p *ProjectRunner) StopProcesses(names []string) (map[string]string, error)
- func (p *ProjectRunner) TruncateProcessLogs(name string) error
- func (p *ProjectRunner) UnSubscribeLogger(name string, observer pclog.LogObserver) error
- func (p *ProjectRunner) UnregisterStateObserver(o types.StateObserver)
- func (p *ProjectRunner) UpdateProcess(updated *types.ProcessConfig) error
- func (p *ProjectRunner) UpdateProject(project *types.Project) (map[string]string, error)
- func (p *ProjectRunner) WaitForProjectShutdown()
- type RestartCall
- type SnapshotFunc
- type StatePublisher
Constants ¶
const ( UndefinedShutdownTimeoutSec = 0 DefaultShutdownTimeoutSec = 10 EnvReplicaNum = "PC_REPLICA_NUM" LogReplicaNum = "{" + EnvReplicaNum + "}" )
Variables ¶
This section is empty.
Functions ¶
func HumanDuration ¶ added in v1.46.0
HumanDuration returns a succinct representation of the provided duration with limited precision for consumption by humans. It provides ~2-3 significant figures of duration.
func PrintStatesAsTable ¶ added in v1.63.0
func PrintStatesAsTable(states []types.ProcessState)
Print a list of process states in a table.
Types ¶
type IProject ¶ added in v0.50.0
type IProject interface {
ShutDownProject() error
IsRemote() bool
ErrorForSecs() int
GetProjectName() (string, error)
GetProjectState(checkMem bool) (*types.ProjectState, error)
GetLogLength() int
GetLogsAndSubscribe(name string, observer pclog.LogObserver) error
UnSubscribeLogger(name string, observer pclog.LogObserver) error
GetProcessLog(name string, offsetFromEnd, limit int) ([]string, error)
GetLexicographicProcessNames() ([]string, error)
GetProcessInfo(name string) (*types.ProcessConfig, error)
GetProcessState(name string) (*types.ProcessState, error)
GetProcessesState() (*types.ProcessesState, error)
StopProcess(name string) error
SendSignal(name string, sig int) error
StopProcesses(names []string) (map[string]string, error)
StartNamespace(namespace string) error
StopNamespace(namespace string) error
RestartNamespace(namespace string) error
GetNamespaces() ([]string, error)
StartProcess(name string) error
RestartProcess(name string) error
ScaleProcess(name string, scale int) error
GetProcessPorts(name string) (*types.ProcessPorts, error)
SetProcessPassword(name string, password string) error
UpdateProject(project *types.Project) (map[string]string, error)
UpdateProcess(updated *types.ProcessConfig) error
ReloadProject() (map[string]string, error)
TruncateProcessLogs(name string) error
GetProcessPty(name string) *os.File
GetFullProcessEnvironment(proc *types.ProcessConfig) []string
GetDependencyGraph() (*types.DependencyGraph, error)
RegisterStateObserver(observer types.StateObserver)
UnregisterStateObserver(observer types.StateObserver)
}
IProject holds all the functions from the project struct that are being consumed by the tui package
type Process ¶
func NewProcess ¶
type ProcessStateBroadcaster ¶ added in v1.110.0
type ProcessStateBroadcaster struct {
// contains filtered or unexported fields
}
ProcessStateBroadcaster fans out ProcessStateEvent values to subscribed observers. It mirrors the pclog.ProcessLogBuffer subscribe/fanout pattern.
The StateObserver contract lives in the types package so consumers (api, client, tui) can implement it without importing app.
func NewProcessStateBroadcaster ¶ added in v1.110.0
func NewProcessStateBroadcaster(snapshot SnapshotFunc) *ProcessStateBroadcaster
NewProcessStateBroadcaster constructs a broadcaster. The snapshot func is called under the broadcaster's lock during SubscribeWithSnapshot to deliver the initial state of all processes; pass nil to disable snapshotting.
func (*ProcessStateBroadcaster) Close ¶ added in v1.110.0
func (b *ProcessStateBroadcaster) Close()
Close drops all subscribers.
func (*ProcessStateBroadcaster) Publish ¶ added in v1.110.0
func (b *ProcessStateBroadcaster) Publish(ev types.ProcessStateEvent)
Publish delivers the event to all current subscribers synchronously.
func (*ProcessStateBroadcaster) Subscribe ¶ added in v1.110.0
func (b *ProcessStateBroadcaster) Subscribe(o types.StateObserver)
Subscribe registers an observer for future events only.
func (*ProcessStateBroadcaster) SubscribeWithSnapshot ¶ added in v1.110.0
func (b *ProcessStateBroadcaster) SubscribeWithSnapshot(o types.StateObserver)
SubscribeWithSnapshot delivers a snapshot event for every current process, then registers the observer. Both happen under one lock so no live events can sneak in between the snapshot and the subscription.
func (*ProcessStateBroadcaster) Unsubscribe ¶ added in v1.110.0
func (b *ProcessStateBroadcaster) Unsubscribe(o types.StateObserver)
Unsubscribe removes an observer. Safe to call multiple times.
type ProcessTree ¶ added in v1.85.0
func NewProcessTree ¶ added in v1.85.0
func NewProcessTree(cacheTTL time.Duration) *ProcessTree
func (*ProcessTree) GetDescendants ¶ added in v1.85.0
func (pt *ProcessTree) GetDescendants(pid int32) []*puproc.Process
func (*ProcessTree) Update ¶ added in v1.85.0
func (pt *ProcessTree) Update() error
type ProjectOpts ¶ added in v0.77.4
type ProjectOpts struct {
// contains filtered or unexported fields
}
func (*ProjectOpts) WithDotEnvDisabled ¶ added in v1.34.0
func (p *ProjectOpts) WithDotEnvDisabled(disabled bool) *ProjectOpts
func (*ProjectOpts) WithIsTuiOn ¶ added in v0.77.4
func (p *ProjectOpts) WithIsTuiOn(isTuiOn bool) *ProjectOpts
func (*ProjectOpts) WithLogTruncate ¶ added in v1.63.0
func (p *ProjectOpts) WithLogTruncate(truncateLogs bool) *ProjectOpts
func (*ProjectOpts) WithMainProcess ¶ added in v0.77.4
func (p *ProjectOpts) WithMainProcess(mainProcess string) *ProjectOpts
func (*ProjectOpts) WithMainProcessArgs ¶ added in v0.77.4
func (p *ProjectOpts) WithMainProcessArgs(mainProcessArgs []string) *ProjectOpts
func (*ProjectOpts) WithNoDeps ¶ added in v0.77.4
func (p *ProjectOpts) WithNoDeps(noDeps bool) *ProjectOpts
func (*ProjectOpts) WithOrderedShutdown ¶ added in v1.73.0
func (p *ProjectOpts) WithOrderedShutdown(isOrderedShutdown bool) *ProjectOpts
func (*ProjectOpts) WithProcessesToRun ¶ added in v0.77.4
func (p *ProjectOpts) WithProcessesToRun(processesToRun []string) *ProjectOpts
func (*ProjectOpts) WithProject ¶ added in v0.77.4
func (p *ProjectOpts) WithProject(project *types.Project) *ProjectOpts
func (*ProjectOpts) WithRecursiveMetrics ¶ added in v1.73.0
func (p *ProjectOpts) WithRecursiveMetrics(withRecursiveMetrics bool) *ProjectOpts
func (*ProjectOpts) WithSlowRefRate ¶ added in v1.64.1
func (p *ProjectOpts) WithSlowRefRate(refRate time.Duration) *ProjectOpts
type ProjectRunner ¶ added in v0.40.0
type ProjectRunner struct {
// contains filtered or unexported fields
}
func NewProjectRunner ¶ added in v0.40.0
func NewProjectRunner(opts *ProjectOpts) (*ProjectRunner, error)
func (*ProjectRunner) ErrorForSecs ¶ added in v0.50.0
func (p *ProjectRunner) ErrorForSecs() int
func (*ProjectRunner) GetDependenciesOrderNames ¶ added in v0.40.0
func (p *ProjectRunner) GetDependenciesOrderNames() ([]string, error)
GetDependenciesOrderNames used for testing
func (*ProjectRunner) GetDependencyGraph ¶ added in v1.87.0
func (p *ProjectRunner) GetDependencyGraph() (*types.DependencyGraph, error)
GetDependencyGraph builds and returns the process dependency graph with current status
func (*ProjectRunner) GetFullProcessEnvironment ¶ added in v1.87.0
func (p *ProjectRunner) GetFullProcessEnvironment(proc *types.ProcessConfig) []string
func (*ProjectRunner) GetLexicographicProcessNames ¶ added in v0.50.0
func (p *ProjectRunner) GetLexicographicProcessNames() ([]string, error)
func (*ProjectRunner) GetLogLength ¶ added in v0.40.0
func (p *ProjectRunner) GetLogLength() int
func (*ProjectRunner) GetLogsAndSubscribe ¶ added in v0.40.0
func (p *ProjectRunner) GetLogsAndSubscribe(name string, observer pclog.LogObserver) error
func (*ProjectRunner) GetNamespaces ¶ added in v1.90.0
func (p *ProjectRunner) GetNamespaces() ([]string, error)
func (*ProjectRunner) GetProcessInfo ¶ added in v0.40.0
func (p *ProjectRunner) GetProcessInfo(name string) (*types.ProcessConfig, error)
func (*ProjectRunner) GetProcessLog ¶ added in v0.40.0
func (p *ProjectRunner) GetProcessLog(name string, offsetFromEnd, limit int) ([]string, error)
func (*ProjectRunner) GetProcessLogLength ¶ added in v0.40.0
func (p *ProjectRunner) GetProcessLogLength(name string) int
func (*ProjectRunner) GetProcessPorts ¶ added in v0.55.0
func (p *ProjectRunner) GetProcessPorts(name string) (*types.ProcessPorts, error)
func (*ProjectRunner) GetProcessPty ¶ added in v1.85.0
func (p *ProjectRunner) GetProcessPty(name string) *os.File
func (*ProjectRunner) GetProcessState ¶ added in v0.40.0
func (p *ProjectRunner) GetProcessState(name string) (*types.ProcessState, error)
func (*ProjectRunner) GetProcessesState ¶ added in v0.50.0
func (p *ProjectRunner) GetProcessesState() (*types.ProcessesState, error)
func (*ProjectRunner) GetProjectName ¶ added in v1.73.0
func (p *ProjectRunner) GetProjectName() (string, error)
func (*ProjectRunner) GetProjectState ¶ added in v0.75.0
func (p *ProjectRunner) GetProjectState(checkMem bool) (*types.ProjectState, error)
func (*ProjectRunner) IsRemote ¶ added in v0.50.0
func (p *ProjectRunner) IsRemote() bool
func (*ProjectRunner) RegisterStateObserver ¶ added in v1.110.0
func (p *ProjectRunner) RegisterStateObserver(o types.StateObserver)
RegisterStateObserver registers an observer that receives an initial snapshot of every process followed by every state change.
func (*ProjectRunner) ReloadProject ¶ added in v1.34.0
func (p *ProjectRunner) ReloadProject() (map[string]string, error)
func (*ProjectRunner) RestartNamespace ¶ added in v1.90.0
func (p *ProjectRunner) RestartNamespace(namespace string) error
func (*ProjectRunner) RestartProcess ¶ added in v0.40.0
func (p *ProjectRunner) RestartProcess(name string) error
func (*ProjectRunner) Run ¶ added in v0.40.0
func (p *ProjectRunner) Run() error
func (*ProjectRunner) ScaleProcess ¶ added in v0.55.0
func (p *ProjectRunner) ScaleProcess(name string, scale int) error
func (*ProjectRunner) SendSignal ¶ added in v1.100.0
func (p *ProjectRunner) SendSignal(name string, sig int) error
func (*ProjectRunner) SetProcessInfo ¶ added in v1.94.0
func (p *ProjectRunner) SetProcessInfo(config *types.ProcessConfig) error
func (*ProjectRunner) SetProcessPassword ¶ added in v1.9.0
func (p *ProjectRunner) SetProcessPassword(name, pass string) error
func (*ProjectRunner) ShutDownProject ¶ added in v0.40.0
func (p *ProjectRunner) ShutDownProject() error
func (*ProjectRunner) StartNamespace ¶ added in v1.90.0
func (p *ProjectRunner) StartNamespace(namespace string) error
func (*ProjectRunner) StartProcess ¶ added in v0.40.0
func (p *ProjectRunner) StartProcess(name string) error
func (*ProjectRunner) StopNamespace ¶ added in v1.90.0
func (p *ProjectRunner) StopNamespace(namespace string) error
func (*ProjectRunner) StopProcess ¶ added in v0.40.0
func (p *ProjectRunner) StopProcess(name string) error
func (*ProjectRunner) StopProcesses ¶ added in v0.60.0
func (p *ProjectRunner) StopProcesses(names []string) (map[string]string, error)
func (*ProjectRunner) TruncateProcessLogs ¶ added in v1.63.0
func (p *ProjectRunner) TruncateProcessLogs(name string) error
func (*ProjectRunner) UnSubscribeLogger ¶ added in v0.40.0
func (p *ProjectRunner) UnSubscribeLogger(name string, observer pclog.LogObserver) error
func (*ProjectRunner) UnregisterStateObserver ¶ added in v1.110.0
func (p *ProjectRunner) UnregisterStateObserver(o types.StateObserver)
UnregisterStateObserver stops delivery to the given observer.
func (*ProjectRunner) UpdateProcess ¶ added in v1.34.0
func (p *ProjectRunner) UpdateProcess(updated *types.ProcessConfig) error
func (*ProjectRunner) UpdateProject ¶ added in v1.27.0
func (*ProjectRunner) WaitForProjectShutdown ¶ added in v1.18.0
func (p *ProjectRunner) WaitForProjectShutdown()
type RestartCall ¶ added in v1.73.0
type RestartCall struct {
// contains filtered or unexported fields
}
RestartCall represents an in-flight restart operation
type SnapshotFunc ¶ added in v1.110.0
type SnapshotFunc func() []types.ProcessState
SnapshotFunc returns the current state of all processes for the initial replay on subscribe.
type StatePublisher ¶ added in v1.110.0
type StatePublisher func(ev types.ProcessStateEvent)
StatePublisher is invoked from Process whenever the observable state of the process changes. It is supplied by the owner (typically ProjectRunner) and may be nil — Process treats that as a no-op.