...
This commit is contained in:
80
pkg/processmanager/interfaces/processmanager.go
Normal file
80
pkg/processmanager/interfaces/processmanager.go
Normal file
@@ -0,0 +1,80 @@
|
||||
package interfaces
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
||||
"github.com/freeflowuniverse/heroagent/pkg/processmanager"
|
||||
)
|
||||
|
||||
// ProcessManagerInterface defines the interface for process management operations
|
||||
type ProcessManagerInterface interface {
|
||||
// StartProcess starts a new process with the given name and command
|
||||
StartProcess(name, command string, logEnabled bool, deadline int, cron, jobID string) error
|
||||
|
||||
// StopProcess stops a running process
|
||||
StopProcess(name string) error
|
||||
|
||||
// RestartProcess restarts a process
|
||||
RestartProcess(name string) error
|
||||
|
||||
// DeleteProcess removes a process from the manager
|
||||
DeleteProcess(name string) error
|
||||
|
||||
// GetProcessStatus returns the status of a process
|
||||
GetProcessStatus(name string) (*processmanager.ProcessInfo, error)
|
||||
|
||||
// ListProcesses returns a list of all processes
|
||||
ListProcesses() []*processmanager.ProcessInfo
|
||||
|
||||
// GetProcessLogs returns the logs for a specific process
|
||||
GetProcessLogs(name string, lines int) (string, error)
|
||||
}
|
||||
|
||||
// ProcessStartResult represents the result of starting a process
|
||||
type ProcessStartResult struct {
|
||||
Success bool `json:"success"`
|
||||
Message string `json:"message"`
|
||||
PID int32 `json:"pid"`
|
||||
}
|
||||
|
||||
// ProcessStopResult represents the result of stopping a process
|
||||
type ProcessStopResult struct {
|
||||
Success bool `json:"success"`
|
||||
Message string `json:"message"`
|
||||
}
|
||||
|
||||
// ProcessRestartResult represents the result of restarting a process
|
||||
type ProcessRestartResult struct {
|
||||
Success bool `json:"success"`
|
||||
Message string `json:"message"`
|
||||
PID int32 `json:"pid"`
|
||||
}
|
||||
|
||||
// ProcessDeleteResult represents the result of deleting a process
|
||||
type ProcessDeleteResult struct {
|
||||
Success bool `json:"success"`
|
||||
Message string `json:"message"`
|
||||
}
|
||||
|
||||
// ProcessLogResult represents the result of getting process logs
|
||||
type ProcessLogResult struct {
|
||||
Success bool `json:"success"`
|
||||
Message string `json:"message"`
|
||||
Logs string `json:"logs"`
|
||||
}
|
||||
|
||||
// ProcessStatus represents detailed information about a process
|
||||
type ProcessStatus struct {
|
||||
Name string `json:"name"`
|
||||
Command string `json:"command"`
|
||||
PID int32 `json:"pid"`
|
||||
Status string `json:"status"`
|
||||
CPUPercent float64 `json:"cpu_percent"`
|
||||
MemoryMB float64 `json:"memory_mb"`
|
||||
StartTime time.Time `json:"start_time"`
|
||||
LogEnabled bool `json:"log_enabled"`
|
||||
Cron string `json:"cron,omitempty"`
|
||||
JobID string `json:"job_id,omitempty"`
|
||||
Deadline int `json:"deadline,omitempty"`
|
||||
Error string `json:"error,omitempty"`
|
||||
}
|
||||
Reference in New Issue
Block a user