mirror of
https://github.com/lordmathis/llamactl.git
synced 2025-11-06 00:54:23 +00:00
Add IdleTimeout option to CreateInstanceOptions and update JSON handling
This commit is contained in:
@@ -20,9 +20,10 @@ type CreateInstanceOptions struct {
|
|||||||
// Auto restart
|
// Auto restart
|
||||||
AutoRestart *bool `json:"auto_restart,omitempty"`
|
AutoRestart *bool `json:"auto_restart,omitempty"`
|
||||||
MaxRestarts *int `json:"max_restarts,omitempty"`
|
MaxRestarts *int `json:"max_restarts,omitempty"`
|
||||||
// RestartDelay duration in seconds
|
RestartDelay *int `json:"restart_delay,omitempty"`
|
||||||
RestartDelay *int `json:"restart_delay_seconds,omitempty"`
|
// Timeout
|
||||||
|
IdleTimeout *int `json:"idle_timeout,omitempty"`
|
||||||
|
// LlamaServerOptions contains the options for the llama server
|
||||||
llamacpp.LlamaServerOptions `json:",inline"`
|
llamacpp.LlamaServerOptions `json:",inline"`
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -34,7 +35,8 @@ func (c *CreateInstanceOptions) UnmarshalJSON(data []byte) error {
|
|||||||
type tempCreateOptions struct {
|
type tempCreateOptions struct {
|
||||||
AutoRestart *bool `json:"auto_restart,omitempty"`
|
AutoRestart *bool `json:"auto_restart,omitempty"`
|
||||||
MaxRestarts *int `json:"max_restarts,omitempty"`
|
MaxRestarts *int `json:"max_restarts,omitempty"`
|
||||||
RestartDelay *int `json:"restart_delay_seconds,omitempty"`
|
RestartDelay *int `json:"restart_delay,omitempty"`
|
||||||
|
IdleTimeout *int `json:"idle_timeout,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
var temp tempCreateOptions
|
var temp tempCreateOptions
|
||||||
@@ -46,6 +48,7 @@ func (c *CreateInstanceOptions) UnmarshalJSON(data []byte) error {
|
|||||||
c.AutoRestart = temp.AutoRestart
|
c.AutoRestart = temp.AutoRestart
|
||||||
c.MaxRestarts = temp.MaxRestarts
|
c.MaxRestarts = temp.MaxRestarts
|
||||||
c.RestartDelay = temp.RestartDelay
|
c.RestartDelay = temp.RestartDelay
|
||||||
|
c.IdleTimeout = temp.IdleTimeout
|
||||||
|
|
||||||
// Now unmarshal the embedded LlamaServerOptions
|
// Now unmarshal the embedded LlamaServerOptions
|
||||||
if err := json.Unmarshal(data, &c.LlamaServerOptions); err != nil {
|
if err := json.Unmarshal(data, &c.LlamaServerOptions); err != nil {
|
||||||
@@ -117,6 +120,15 @@ func validateAndCopyOptions(name string, options *CreateInstanceOptions) *Create
|
|||||||
}
|
}
|
||||||
optionsCopy.RestartDelay = &restartDelay
|
optionsCopy.RestartDelay = &restartDelay
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if options.IdleTimeout != nil {
|
||||||
|
idleTimeout := *options.IdleTimeout
|
||||||
|
if idleTimeout < 0 {
|
||||||
|
log.Printf("Instance %s IdleTimeout value (%d) cannot be negative, setting to 0 seconds", name, idleTimeout)
|
||||||
|
idleTimeout = 0
|
||||||
|
}
|
||||||
|
optionsCopy.IdleTimeout = &idleTimeout
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return optionsCopy
|
return optionsCopy
|
||||||
@@ -142,6 +154,11 @@ func applyDefaultOptions(options *CreateInstanceOptions, globalSettings *config.
|
|||||||
defaultRestartDelay := globalSettings.DefaultRestartDelay
|
defaultRestartDelay := globalSettings.DefaultRestartDelay
|
||||||
options.RestartDelay = &defaultRestartDelay
|
options.RestartDelay = &defaultRestartDelay
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if options.IdleTimeout == nil {
|
||||||
|
defaultIdleTimeout := 0 // Default to 0 seconds if not set
|
||||||
|
options.IdleTimeout = &defaultIdleTimeout
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewInstance creates a new instance with the given name, log path, and options
|
// NewInstance creates a new instance with the given name, log path, and options
|
||||||
|
|||||||
Reference in New Issue
Block a user