Go CLI: refactor (#16355)

This commit is contained in:
Jin Hai
2026-06-25 20:36:50 +08:00
committed by GitHub
parent 304d9e02bb
commit dbefadd86a
15 changed files with 768 additions and 180 deletions

View File

@@ -1073,8 +1073,8 @@ func (c *CLI) AdminSetLicenseConfigCommand(cmd *Command) (ResponseIf, error) {
return &result, nil
}
// SetVariable updates a system variable (admin mode only).
func (c *CLI) SetVariable(cmd *Command) (ResponseIf, error) {
// AdminSetVariableCommand updates a system variable (admin mode only).
func (c *CLI) AdminSetVariableCommand(cmd *Command) (ResponseIf, error) {
if c.Config.CLIMode != AdminMode || c.AdminServerClient.LoginToken == nil {
return nil, fmt.Errorf("this command is only allowed in ADMIN mode or already login")
}
@@ -1171,6 +1171,39 @@ func (c *CLI) AdminSetRoleDefaultModelsCommand(cmd *Command) (ResponseIf, error)
return &result, nil
}
// AdminSetLogLevelCommand set log level (admin mode only).
func (c *CLI) AdminSetLogLevelCommand(cmd *Command) (ResponseIf, error) {
if c.Config.CLIMode != AdminMode {
return nil, fmt.Errorf("this command is only allowed in ADMIN mode or already login")
}
logLevel, ok := cmd.Params["level"].(string)
if !ok {
return nil, fmt.Errorf("no log level")
}
payload := map[string]interface{}{
"level": logLevel,
}
resp, err := c.AdminServerClient.Request("PUT", "/admin/config/log", "admin", nil, payload)
if err != nil {
return nil, fmt.Errorf("failed to change log level: %w", err)
}
if resp.StatusCode != 200 {
return nil, fmt.Errorf("failed to register user: HTTP %d, body: %s", resp.StatusCode, string(resp.Body))
}
var result SimpleResponse
if err = json.Unmarshal(resp.Body, &result); err != nil {
return nil, fmt.Errorf("change log level failed: invalid JSON (%w)", err)
}
result.Code = 0
result.Duration = resp.Duration
return &result, nil
}
// AdminResetRoleDefaultModelsCommand reset role default models (admin mode only).
func (c *CLI) AdminResetRoleDefaultModelsCommand(cmd *Command) (ResponseIf, error) {
if c.Config.CLIMode != AdminMode || c.AdminServerClient.LoginToken == nil {
@@ -3504,3 +3537,31 @@ func (c *CLI) AdminDeleteModelsCommand(cmd *Command) (ResponseIf, error) {
result.Duration = resp.Duration
return &result, nil
}
func (c *CLI) AdminShowLogLevelCommand(cmd *Command) (ResponseIf, error) {
if c.Config.CLIMode != AdminMode {
return nil, fmt.Errorf("this command is only allowed in ADMIN mode or already login")
}
resp, err := c.AdminServerClient.Request("GET", "/admin/config/log", "web", nil, nil)
if err != nil {
return nil, fmt.Errorf("failed to get log level config: %w", err)
}
if resp.StatusCode != 200 {
return nil, fmt.Errorf("failed to get log level config: HTTP %d, body: %s", resp.StatusCode, string(resp.Body))
}
var result CommonDataResponse
if err = json.Unmarshal(resp.Body, &result); err != nil {
return nil, fmt.Errorf("get log level config failed: invalid JSON (%w)", err)
}
if result.Code != 0 {
return nil, fmt.Errorf("%s", result.Message)
}
result.Duration = resp.Duration
return &result, nil
}