@@ -286,7 +286,7 @@ func (o *ObjectivesServer) ListObjectives(ctx context.Context, query string) (op
286
286
}
287
287
}
288
288
289
- objectives , _ , err := o .apiclient .ObjectivesApi .ListObjectives (ctx , query ).Execute ()
289
+ objectives , _ , err := o .apiclient .ObjectivesApi .ListObjectives (ctx ). Expr ( query ).Execute ()
290
290
if err != nil {
291
291
return openapiserver.ImplResponse {Code : http .StatusInternalServerError }, err
292
292
}
@@ -302,38 +302,19 @@ func (o *ObjectivesServer) ListObjectives(ctx context.Context, query string) (op
302
302
}, nil
303
303
}
304
304
305
- func (o * ObjectivesServer ) GetObjective (ctx context.Context , expr string ) (openapiserver.ImplResponse , error ) {
306
- objective , _ , err := o .apiclient .ObjectivesApi .GetObjective (ctx , expr ).Execute ()
307
- if err != nil {
308
- var apiErr openapiclient.GenericOpenAPIError
309
- if errors .As (err , & apiErr ) {
310
- if strings .HasPrefix (apiErr .Error (), strconv .Itoa (http .StatusNotFound )) {
311
- return openapiserver.ImplResponse {Code : http .StatusNotFound }, apiErr
312
- }
313
- }
314
- return openapiserver.ImplResponse {Code : http .StatusInternalServerError }, err
315
- }
316
-
317
- return openapiserver.ImplResponse {
318
- Code : http .StatusCreated ,
319
- Body : openapi .ServerFromClient (objective ),
320
- }, nil
321
- }
322
-
323
305
func (o * ObjectivesServer ) GetObjectiveStatus (ctx context.Context , expr string ) (openapiserver.ImplResponse , error ) {
324
- clientObjectives , _ , err := o .apiclient .ObjectivesApi .ListObjectives (ctx , expr ).Execute ()
306
+ clientObjectives , _ , err := o .apiclient .ObjectivesApi .ListObjectives (ctx ). Expr ( expr ).Execute ()
325
307
if err != nil {
326
308
var apiErr openapiclient.GenericOpenAPIError
327
309
if errors .As (err , & apiErr ) {
328
310
if strings .HasPrefix (apiErr .Error (), strconv .Itoa (http .StatusNotFound )) {
329
311
return openapiserver.ImplResponse {Code : http .StatusNotFound }, apiErr
330
312
}
331
313
}
332
-
333
314
return openapiserver.ImplResponse {Code : http .StatusInternalServerError }, err
334
315
}
335
316
if len (clientObjectives ) != 1 {
336
- return openapiserver.ImplResponse {Code : http .StatusBadRequest }, fmt .Errorf ("expr matches not exactly one SLO, it matches: %d" , len (clientObjectives ))
317
+ return openapiserver.ImplResponse {Code : http .StatusBadRequest }, fmt .Errorf ("expr matches more than one SLO, it matches: %d" , len (clientObjectives ))
337
318
}
338
319
339
320
objective := openapi .InternalFromClient (clientObjectives [0 ])
@@ -383,11 +364,14 @@ func (o *ObjectivesServer) GetObjectiveStatus(ctx context.Context, expr string)
383
364
}
384
365
385
366
func (o * ObjectivesServer ) GetObjectiveErrorBudget (ctx context.Context , expr string , startTimestamp int32 , endTimestamp int32 ) (openapiserver.ImplResponse , error ) {
386
- clientObjective , _ , err := o .apiclient .ObjectivesApi .GetObjective (ctx , expr ).Execute ()
367
+ clientObjectives , _ , err := o .apiclient .ObjectivesApi .ListObjectives (ctx ). Expr ( expr ).Execute ()
387
368
if err != nil {
388
369
return openapiserver.ImplResponse {Code : http .StatusInternalServerError }, err
389
370
}
390
- objective := openapi .InternalFromClient (clientObjective )
371
+ if len (clientObjectives ) != 1 {
372
+ return openapiserver.ImplResponse {Code : http .StatusBadRequest }, fmt .Errorf ("expr matches more than one SLO, it matches: %d" , len (clientObjectives ))
373
+ }
374
+ objective := openapi .InternalFromClient (clientObjectives [0 ])
391
375
392
376
now := time .Now ()
393
377
start := now .Add (- 1 * time .Hour )
@@ -450,11 +434,15 @@ const (
450
434
)
451
435
452
436
func (o * ObjectivesServer ) GetMultiBurnrateAlerts (ctx context.Context , expr string ) (openapiserver.ImplResponse , error ) {
453
- clientObjective , _ , err := o .apiclient .ObjectivesApi .GetObjective (ctx , expr ).Execute ()
437
+ clientObjectives , _ , err := o .apiclient .ObjectivesApi .ListObjectives (ctx ). Expr ( expr ).Execute ()
454
438
if err != nil {
455
439
return openapiserver.ImplResponse {Code : http .StatusInternalServerError }, err
456
440
}
457
- objective := openapi .InternalFromClient (clientObjective )
441
+ if len (clientObjectives ) != 1 {
442
+ return openapiserver.ImplResponse {Code : http .StatusBadRequest }, fmt .Errorf ("expr matches not exactly one SLO" )
443
+ }
444
+
445
+ objective := openapi .InternalFromClient (clientObjectives [0 ])
458
446
459
447
baseAlerts , err := objective .Alerts ()
460
448
if err != nil {
@@ -574,11 +562,14 @@ func (o *ObjectivesServer) GetMultiBurnrateAlerts(ctx context.Context, expr stri
574
562
}
575
563
576
564
func (o * ObjectivesServer ) GetREDRequests (ctx context.Context , expr string , startTimestamp int32 , endTimestamp int32 ) (openapiserver.ImplResponse , error ) {
577
- clientObjective , _ , err := o .apiclient .ObjectivesApi .GetObjective (ctx , expr ).Execute ()
565
+ clientObjectives , _ , err := o .apiclient .ObjectivesApi .ListObjectives (ctx ). Expr ( expr ).Execute ()
578
566
if err != nil {
579
567
return openapiserver.ImplResponse {Code : http .StatusInternalServerError }, err
580
568
}
581
- objective := openapi .InternalFromClient (clientObjective )
569
+ if len (clientObjectives ) != 1 {
570
+ return openapiserver.ImplResponse {Code : http .StatusBadRequest }, fmt .Errorf ("expr matches not exactly one SLO" )
571
+ }
572
+ objective := openapi .InternalFromClient (clientObjectives [0 ])
582
573
583
574
now := time .Now ()
584
575
start := now .Add (- 1 * time .Hour )
@@ -651,11 +642,14 @@ func (o *ObjectivesServer) GetREDRequests(ctx context.Context, expr string, star
651
642
}
652
643
653
644
func (o * ObjectivesServer ) GetREDErrors (ctx context.Context , expr string , startTimestamp int32 , endTimestamp int32 ) (openapiserver.ImplResponse , error ) {
654
- clientObjective , _ , err := o .apiclient .ObjectivesApi .GetObjective (ctx , expr ).Execute ()
645
+ clientObjectives , _ , err := o .apiclient .ObjectivesApi .ListObjectives (ctx ). Expr ( expr ).Execute ()
655
646
if err != nil {
656
647
return openapiserver.ImplResponse {Code : http .StatusInternalServerError }, err
657
648
}
658
- objective := openapi .InternalFromClient (clientObjective )
649
+ if len (clientObjectives ) != 1 {
650
+ return openapiserver.ImplResponse {Code : http .StatusBadRequest }, fmt .Errorf ("expr matches not exactly one SLO" )
651
+ }
652
+ objective := openapi .InternalFromClient (clientObjectives [0 ])
659
653
660
654
now := time .Now ()
661
655
start := now .Add (- 1 * time .Hour )
0 commit comments