in pkg/client/sonar/sonar.go [152:185]
func (sc *Client) WaitForStatusIsUp(retryCount int, timeout time.Duration) error {
var systemStatusResponse SystemStatusResponse
sc.resty.SetRetryCount(retryCount).
SetRetryWaitTime(timeout).
AddRetryCondition(
func(response *resty.Response, err error) bool {
if response.IsError() || !response.IsSuccess() {
return response.IsError()
}
if err := json.Unmarshal([]byte(response.String()), &systemStatusResponse); err != nil {
return true
}
log.Info(fmt.Sprintf("Current Sonar status - %s", systemStatusResponse.Status))
return systemStatusResponse.Status != "UP"
},
)
defer sc.resty.SetRetryCount(0)
resp, err := sc.resty.R().
Get("/system/status")
if err != nil {
return fmt.Errorf("failed to send request for current Sonar status!: %w", err)
}
if resp.IsError() {
return fmt.Errorf("checking Sonar status failed. Response - %s", resp.Status())
}
return nil
}