@@ -14,9 +14,10 @@ import (
1414
1515// Client represents an HTTP client for communicating with the controller server
1616type Client struct {
17- baseURL string
17+ baseURL string
1818 httpClient * http.Client
19- logger * logger.Logger
19+ logger * logger.Logger
20+ userAgent string
2021}
2122
2223// NewClient creates a new controller client
@@ -26,10 +27,16 @@ func NewClient(baseURL string, logger *logger.Logger) *Client {
2627 httpClient : & http.Client {
2728 Timeout : 30 * time .Second ,
2829 },
29- logger : logger ,
30+ logger : logger ,
31+ userAgent : "sdc-client/1.0" ,
3032 }
3133}
3234
35+ // SetUserAgent sets a custom User-Agent header for requests
36+ func (c * Client ) SetUserAgent (userAgent string ) {
37+ c .userAgent = userAgent
38+ }
39+
3340// JobRequest represents a request to start or stop containers
3441type JobRequest struct {
3542 Timeout int `json:"timeout"`
@@ -38,7 +45,7 @@ type JobRequest struct {
3845
3946// JobResponse represents a job creation response
4047type JobResponse struct {
41- ID string `json:"id "`
48+ ID string `json:"job_id "`
4249 Status string `json:"status"`
4350}
4451
@@ -105,7 +112,7 @@ func (c *Client) StopContainers(ctx context.Context, timeout int, ignore []strin
105112// GetJob retrieves job status and results
106113func (c * Client ) GetJob (ctx context.Context , jobID string ) (* Job , error ) {
107114 var job Job
108- if err := c .get (ctx , fmt .Sprintf ("/jobs /%s" , jobID ), & job ); err != nil {
115+ if err := c .get (ctx , fmt .Sprintf ("/job_status /%s" , jobID ), & job ); err != nil {
109116 return nil , err
110117 }
111118
@@ -198,6 +205,7 @@ func (c *Client) post(ctx context.Context, path string, body any, result any) er
198205 }
199206
200207 req .Header .Set ("Content-Type" , "application/json" )
208+ req .Header .Set ("User-Agent" , c .userAgent )
201209
202210 resp , err := c .httpClient .Do (req )
203211 if err != nil {
@@ -225,6 +233,8 @@ func (c *Client) get(ctx context.Context, path string, result any) error {
225233 return fmt .Errorf ("failed to create request: %w" , err )
226234 }
227235
236+ req .Header .Set ("User-Agent" , c .userAgent )
237+
228238 resp , err := c .httpClient .Do (req )
229239 if err != nil {
230240 return fmt .Errorf ("request failed: %w" , err )
0 commit comments