feat: 添加 Diag/Ping/Licenses/Reconfigure 类型和对应服务

包含 StatsMsg(含调度和回填统计)、ControllerPing、License 等类型。实现 4 个服务:DiagService.GetDiag、PingService.Ping、LicensesService.GetLicenses、ReconfigureService.Reconfigure。

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
dailz
2026-04-08 18:30:11 +08:00
parent 02ed2e7b38
commit 263363a2ba
4 changed files with 687 additions and 0 deletions

View File

@@ -0,0 +1,67 @@
package slurm
import "context"
// GetDiag returns slurm diagnostics information.
func (s *DiagService) GetDiag(ctx context.Context) (*OpenapiDiagResp, *Response, error) {
path := "slurm/v0.0.40/diag"
req, err := s.client.NewRequest("GET", path, nil)
if err != nil {
return nil, nil, err
}
var result OpenapiDiagResp
resp, err := s.client.Do(ctx, req, &result)
if err != nil {
return nil, resp, err
}
return &result, resp, nil
}
// Ping returns slurm controller ping information.
func (s *PingService) Ping(ctx context.Context) (*OpenapiPingArrayResp, *Response, error) {
path := "slurm/v0.0.40/ping"
req, err := s.client.NewRequest("GET", path, nil)
if err != nil {
return nil, nil, err
}
var result OpenapiPingArrayResp
resp, err := s.client.Do(ctx, req, &result)
if err != nil {
return nil, resp, err
}
return &result, resp, nil
}
// GetLicenses returns slurm license information.
func (s *LicensesService) GetLicenses(ctx context.Context) (*OpenapiLicensesResp, *Response, error) {
path := "slurm/v0.0.40/licenses"
req, err := s.client.NewRequest("GET", path, nil)
if err != nil {
return nil, nil, err
}
var result OpenapiLicensesResp
resp, err := s.client.Do(ctx, req, &result)
if err != nil {
return nil, resp, err
}
return &result, resp, nil
}
// Reconfigure requests slurm reconfigure.
func (s *ReconfigureService) Reconfigure(ctx context.Context) (*OpenapiResp, *Response, error) {
path := "slurm/v0.0.40/reconfigure"
req, err := s.client.NewRequest("GET", path, nil)
if err != nil {
return nil, nil, err
}
var result OpenapiResp
resp, err := s.client.Do(ctx, req, &result)
if err != nil {
return nil, resp, err
}
return &result, resp, nil
}