controllers/sonar/chain/check_connection.go (26 lines of code) (raw):

package chain import ( "context" "fmt" ctrl "sigs.k8s.io/controller-runtime" sonarApi "github.com/epam/edp-sonar-operator/api/v1alpha1" "github.com/epam/edp-sonar-operator/pkg/client/sonar" ) type CheckConnection struct { sonarApiClient sonar.System } func NewCheckConnection(sonarApiClient sonar.System) *CheckConnection { return &CheckConnection{sonarApiClient: sonarApiClient} } func (h *CheckConnection) ServeRequest(ctx context.Context, sonar *sonarApi.Sonar) error { log := ctrl.LoggerFrom(ctx) log.Info("Start checking connection to sonar") systemHealth, err := h.sonarApiClient.Health(ctx) if err != nil { return fmt.Errorf("failed to get health: %w", err) } sonar.Status.Connected = true sonar.Status.Value = systemHealth.Health log.Info("Connection to sonar is established") return nil }