(ctx context.Context)
| 323 | } |
| 324 | |
| 325 | func (ctl *controller) waitForHealthz(ctx context.Context) error { |
| 326 | begin := time.Now() |
| 327 | ticker := time.NewTicker(100 * time.Millisecond) |
| 328 | timer := time.NewTimer(10 * time.Second) |
| 329 | defer ticker.Stop() |
| 330 | defer timer.Stop() |
| 331 | for { |
| 332 | select { |
| 333 | case <-ticker.C: |
| 334 | _, err := ctl.actuatorServiceClient.GetActuatorInfo(ctx, &connect.Request[v1pb.GetActuatorInfoRequest]{}) |
| 335 | if err != nil && status.Code(err) == codes.Unavailable { |
| 336 | continue |
| 337 | } |
| 338 | if err != nil { |
| 339 | return err |
| 340 | } |
| 341 | return nil |
| 342 | case end := <-timer.C: |
| 343 | return errors.Errorf("cannot wait for healthz in duration: %v", end.Sub(begin).Seconds()) |
| 344 | } |
| 345 | } |
| 346 | } |
| 347 | |
| 348 | // Close closes long running resources. |
| 349 | func (ctl *controller) Close(ctx context.Context) error { |
no test coverage detected