Documentation
¶
Overview ¶
Package management provides plugin lifecycle management functionality This package can be used by Hockeypuck and other servers for plugin management
Index ¶
- type ActiveRequest
- type PluginManager
- func (pm *PluginManager) ConfigHandler(w http.ResponseWriter, r *http.Request)
- func (pm *PluginManager) GetPluginStatus() map[string]interface{}
- func (pm *PluginManager) GetPluginsHealth() map[string]interface{}
- func (pm *PluginManager) GetPluginsList() []map[string]interface{}
- func (pm *PluginManager) HealthHandler(w http.ResponseWriter, r *http.Request)
- func (pm *PluginManager) ListHandler(w http.ResponseWriter, r *http.Request)
- func (pm *PluginManager) ReloadHandler(w http.ResponseWriter, r *http.Request)
- func (pm *PluginManager) ReloadPlugin(pluginName string) error
- func (pm *PluginManager) SetPluginSystem(ps *integration.PluginSystem)
- func (pm *PluginManager) StatusHandler(w http.ResponseWriter, r *http.Request)
- func (pm *PluginManager) UpdatePluginConfig(pluginName string, newConfig map[string]interface{}) error
- type PluginSnapshot
- type PluginState
- type RequestDrainer
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ActiveRequest ¶
type ActiveRequest struct {
ID string
StartTime time.Time
Context context.Context
Cancel context.CancelFunc
PluginName string
}
ActiveRequest represents an active HTTP request
type PluginManager ¶
type PluginManager struct {
// contains filtered or unexported fields
}
PluginManager manages plugin lifecycle for HTTP servers
func NewPluginManager ¶
func NewPluginManager(host pluginapi.PluginHost, config *config.Settings, logger *log.Logger) *PluginManager
NewPluginManager creates a new plugin lifecycle manager
func (*PluginManager) ConfigHandler ¶
func (pm *PluginManager) ConfigHandler(w http.ResponseWriter, r *http.Request)
ConfigHandler handles plugin configuration management
func (*PluginManager) GetPluginStatus ¶
func (pm *PluginManager) GetPluginStatus() map[string]interface{}
GetPluginStatus returns overall plugin system status
func (*PluginManager) GetPluginsHealth ¶
func (pm *PluginManager) GetPluginsHealth() map[string]interface{}
GetPluginsHealth returns health check for all plugins
func (*PluginManager) GetPluginsList ¶
func (pm *PluginManager) GetPluginsList() []map[string]interface{}
GetPluginsList returns detailed list of all plugins
func (*PluginManager) HealthHandler ¶
func (pm *PluginManager) HealthHandler(w http.ResponseWriter, r *http.Request)
HealthHandler returns health check for all plugins
func (*PluginManager) ListHandler ¶
func (pm *PluginManager) ListHandler(w http.ResponseWriter, r *http.Request)
ListHandler returns list of all plugins
func (*PluginManager) ReloadHandler ¶
func (pm *PluginManager) ReloadHandler(w http.ResponseWriter, r *http.Request)
ReloadHandler handles plugin reload requests
func (*PluginManager) ReloadPlugin ¶
func (pm *PluginManager) ReloadPlugin(pluginName string) error
ReloadPlugin reloads a specific plugin with graceful draining
func (*PluginManager) SetPluginSystem ¶
func (pm *PluginManager) SetPluginSystem(ps *integration.PluginSystem)
SetPluginSystem sets the plugin system instance
func (*PluginManager) StatusHandler ¶
func (pm *PluginManager) StatusHandler(w http.ResponseWriter, r *http.Request)
StatusHandler returns plugin system status
func (*PluginManager) UpdatePluginConfig ¶
func (pm *PluginManager) UpdatePluginConfig(pluginName string, newConfig map[string]interface{}) error
UpdatePluginConfig updates a plugin's configuration
type PluginSnapshot ¶
type PluginSnapshot struct {
PluginName string
Configuration map[string]interface{}
State PluginState
Timestamp time.Time
Version int
}
PluginSnapshot represents a rollback state for a plugin
type PluginState ¶
type PluginState int
PluginState represents the state of a plugin
const ( PluginStateLoading PluginState = iota PluginStateActive PluginStateReloading PluginStateUnloading PluginStateFailed PluginStateDisabled )
type RequestDrainer ¶
type RequestDrainer struct {
// contains filtered or unexported fields
}
RequestDrainer manages graceful request draining during plugin transitions
func NewRequestDrainer ¶
func NewRequestDrainer() *RequestDrainer
NewRequestDrainer creates a new request drainer