app

package
v0.21.0 Latest Latest
Warning

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

Go to latest
Published: Nov 1, 2022 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	RestartPolicyAlways              = "always"
	RestartPolicyOnFailureDeprecated = "on-failure"
	RestartPolicyOnFailure           = "on_failure"
	RestartPolicyExitOnFailure       = "exit_on_failure"
	RestartPolicyNo                  = "no"
)
View Source
const (
	ProcessStateDisabled    = "Disabled"
	ProcessStatePending     = "Pending"
	ProcessStateRunning     = "Running"
	ProcessStateLaunching   = "Launching"
	ProcessStateLaunched    = "Launched"
	ProcessStateRestarting  = "Restarting"
	ProcessStateTerminating = "Terminating"
	ProcessStateCompleted   = "Completed"
)
View Source
const (
	ProcessHealthReady    = "Ready"
	ProcessHealthNotReady = "Not Ready"
	ProcessHealthUnknown  = "N/A"
)
View Source
const (
	// ProcessConditionCompleted is the type for waiting until a process has completed (any exit code).
	ProcessConditionCompleted = "process_completed"

	// ProcessConditionCompletedSuccessfully is the type for waiting until a process has completed successfully (exit code 0).
	ProcessConditionCompletedSuccessfully = "process_completed_successfully"

	// ProcessConditionHealthy is the type for waiting until a process is healthy.
	ProcessConditionHealthy = "process_healthy"

	// ProcessConditionStarted is the type for waiting until a process has started (default).
	ProcessConditionStarted = "process_started"
)
View Source
const (
	UndefinedShutdownTimeoutSec = 0
	DefaultShutdownTimeoutSec   = 10
)
View Source
const (
	DEFAULT_LOG_LENGTH = 1000
)

Variables

View Source
var DefaultFileNames = []string{"compose.yml", "compose.yaml", "process-compose.yml", "process-compose.yaml"}

DefaultFileNames defines the Compose file names for auto-discovery (in order of preference)

Functions

func AutoDiscoverComposeFile

func AutoDiscoverComposeFile(pwd string) (string, error)

Types

type DependsOnConfig

type DependsOnConfig map[string]ProcessDependency

type DeprecationParams added in v0.21.0

type DeprecationParams struct {
	StartTime time.Time
}

type Process

type Process struct {
	sync.Mutex
	// contains filtered or unexported fields
}

func NewProcess

func NewProcess(
	globalEnv []string,
	logger pclog.PcLogger,
	procConf ProcessConfig,
	procState *ProcessState,
	procLog *pclog.ProcessLogBuffer,
	replica int) *Process

type ProcessConfig

type ProcessConfig struct {
	Name           string
	Disabled       bool                   `yaml:"disabled,omitempty"`
	IsDaemon       bool                   `yaml:"is_daemon,omitempty"`
	Command        string                 `yaml:"command"`
	LogLocation    string                 `yaml:"log_location,omitempty"`
	Environment    []string               `yaml:"environment,omitempty"`
	RestartPolicy  RestartPolicyConfig    `yaml:"availability,omitempty"`
	DependsOn      DependsOnConfig        `yaml:"depends_on,omitempty"`
	LivenessProbe  *health.Probe          `yaml:"liveness_probe,omitempty"`
	ReadinessProbe *health.Probe          `yaml:"readiness_probe,omitempty"`
	ShutDownParams ShutDownParams         `yaml:"shutdown,omitempty"`
	Extensions     map[string]interface{} `yaml:",inline"`
}

func (ProcessConfig) GetDependencies

func (p ProcessConfig) GetDependencies() []string

type ProcessDependency

type ProcessDependency struct {
	Condition  string                 `yaml:",omitempty"`
	Extensions map[string]interface{} `yaml:",inline"`
}

type ProcessFunc

type ProcessFunc func(process ProcessConfig) error

type ProcessState

type ProcessState struct {
	Name       string `json:"name"`
	Status     string `json:"status"`
	SystemTime string `json:"system_time"`
	Health     string `json:"is_ready"`
	Restarts   int    `json:"restarts"`
	ExitCode   int    `json:"exit_code"`
	Pid        int    `json:"pid"`
}

type ProcessStates added in v0.20.0

type ProcessStates struct {
	States []ProcessState `json:"data"`
}

type Processes

type Processes map[string]ProcessConfig

type Project

type Project struct {
	Version     string    `yaml:"version"`
	LogLocation string    `yaml:"log_location,omitempty"`
	LogLevel    string    `yaml:"log_level,omitempty"`
	LogLength   int       `yaml:"log_length,omitempty"`
	Processes   Processes `yaml:"processes"`
	Environment []string  `yaml:"environment,omitempty"`
	// contains filtered or unexported fields
}
var PROJ *Project

func NewProject added in v0.21.0

func NewProject(inputFile string) *Project

func (*Project) GetDependenciesOrderNames

func (p *Project) GetDependenciesOrderNames() ([]string, error)

func (*Project) GetLexicographicProcessNames

func (p *Project) GetLexicographicProcessNames() []string

func (*Project) GetLogsAndSubscribe added in v0.10.0

func (p *Project) GetLogsAndSubscribe(name string, observer pclog.PcLogObserver)

func (*Project) GetProcessLog

func (p *Project) GetProcessLog(name string, offsetFromEnd, limit int) ([]string, error)

func (*Project) GetProcessLogLength added in v0.10.0

func (p *Project) GetProcessLogLength(name string) int

func (*Project) GetProcessLogLine added in v0.10.0

func (p *Project) GetProcessLogLine(name string, lineIndex int) (string, error)

func (*Project) GetProcessState

func (p *Project) GetProcessState(name string) *ProcessState

func (*Project) RestartProcess added in v0.20.0

func (p *Project) RestartProcess(name string) error

func (*Project) Run

func (p *Project) Run() int

func (*Project) ShutDownProject added in v0.12.0

func (p *Project) ShutDownProject()

func (*Project) StartProcess

func (p *Project) StartProcess(name string) error

func (*Project) StopProcess

func (p *Project) StopProcess(name string) error

func (*Project) UnSubscribeLogger added in v0.10.0

func (p *Project) UnSubscribeLogger(name string)

func (*Project) WithProcesses

func (p *Project) WithProcesses(names []string, fn ProcessFunc) error

WithProcesses run ProcesseFunc on each Process and dependencies in dependency order

type RestartPolicyConfig

type RestartPolicyConfig struct {
	Restart        string `yaml:",omitempty"`
	BackoffSeconds int    `yaml:"backoff_seconds,omitempty"`
	MaxRestarts    int    `yaml:"max_restarts,omitempty"`
}

type ShutDownParams added in v0.11.0

type ShutDownParams struct {
	ShutDownCommand string `yaml:"command,omitempty"`
	ShutDownTimeout int    `yaml:"timeout_seconds,omitempty"`
	Signal          int    `yaml:"signal,omitempty"`
}

Jump to

Keyboard shortcuts

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