diff --git a/checks/alertmanager.go b/checks/alertmanager.go index ea9b3a7eb..1a6794631 100644 --- a/checks/alertmanager.go +++ b/checks/alertmanager.go @@ -36,12 +36,12 @@ func (c *AlertManagerChecker) Check(ctx *context.Context, extConfig external.Che connection, err := ctx.GetConnection(check.Connection) if err != nil { - return results.Failf("error getting connection: %v", err) + return results.Errorf("error getting connection: %v", err) } parsedURL, err := url.Parse(connection.URL) if err != nil { - return results.Failf("error parsing url: %v", err) + return results.Errorf("error parsing url: %v", err) } client := alertmanagerClient.NewHTTPClientWithConfig(nil, &alertmanagerClient.TransportConfig{ Host: parsedURL.Host, @@ -67,8 +67,7 @@ func (c *AlertManagerChecker) Check(ctx *context.Context, extConfig external.Che Filter: filters, }) if err != nil { - results.Errorf("error fetching from alertmanager: %v", err) - return results + return results.Errorf("error fetching from alertmanager: %v", err) } type Alerts struct { diff --git a/checks/aws_config.go b/checks/aws_config.go index 5796eeeca..a75186bc8 100644 --- a/checks/aws_config.go +++ b/checks/aws_config.go @@ -40,7 +40,7 @@ func (c *AwsConfigChecker) Check(ctx *context.Context, extConfig external.Check) check.AWSConnection = &connection.AWSConnection{} } else { if err := check.AWSConnection.Populate(ctx); err != nil { - return results.Failf("failed to populate aws connection: %v", err) + return results.Errorf("failed to populate aws connection: %v", err) } } diff --git a/checks/aws_config_rule.go b/checks/aws_config_rule.go index ee6489f35..6dfb60b7d 100644 --- a/checks/aws_config_rule.go +++ b/checks/aws_config_rule.go @@ -42,19 +42,15 @@ func (c *AwsConfigRuleChecker) Check(ctx *context.Context, extConfig external.Ch if check.AWSConnection == nil { check.AWSConnection = &connection.AWSConnection{} } else if err := check.AWSConnection.Populate(ctx); err != nil { - return results.Failf("failed to populate aws connection: %v", err) + return results.Errorf("failed to populate aws connection: %v", err) } cfg, err := awsUtil.NewSession(ctx.Context, *check.AWSConnection) if err != nil { - return results.Failf("failed to create a session: %v", err) + return results.Errorf("failed to create a session: %v", err) } client := configservice.NewFromConfig(*cfg) - if err != nil { - return results.Failf("failed to describe compliance rules: %v", err) - } - var complianceTypes = []types.ComplianceType{} for _, i := range check.ComplianceTypes { complianceTypes = append(complianceTypes, types.ComplianceType(i)) @@ -64,7 +60,7 @@ func (c *AwsConfigRuleChecker) Check(ctx *context.Context, extConfig external.Ch ConfigRuleNames: check.Rules, }) if err != nil { - return results.Failf("failed to describe compliance rules: %v", err) + return results.Errorf("failed to describe compliance rules: %v", err) } type ConfigRuleResource struct { diff --git a/checks/azure_devops.go b/checks/azure_devops.go index 5ada2a9cc..fe772c903 100644 --- a/checks/azure_devops.go +++ b/checks/azure_devops.go @@ -41,22 +41,22 @@ func (t *AzureDevopsChecker) check(ctx *context.Context, check v1.AzureDevopsChe if check.PersonalAccessToken.ValueStatic != "" { c = &models.Connection{Password: check.PersonalAccessToken.ValueStatic} } else if c, err = ctx.HydrateConnectionByURL(check.ConnectionName); err != nil { - return results.Failf("failed to hydrate connection: %v", err) + return results.Errorf("failed to hydrate connection: %v", err) } else if c != nil { if c, err = c.Merge(ctx, check); err != nil { - return results.Failf("failed to merge connection: %v", err) + return results.Errorf("failed to merge connection: %v", err) } } connection := azuredevops.NewPatConnection(fmt.Sprintf("https://dev.azure.com/%s", check.Organization), c.Password) coreClient, err := core.NewClient(ctx, connection) if err != nil { - return results.Errorf("failed to create core client: %w", err) + return results.Errorf("failed to create core client: %v", err) } project, err := coreClient.GetProject(ctx, core.GetProjectArgs{ProjectId: &check.Project}) if err != nil { - return results.Errorf("failed to get project (name=%s): %w", check.Project, err) + return results.Errorf("failed to get project (name=%s): %v", check.Project, err) } projectID := project.Id.String() @@ -68,7 +68,7 @@ func (t *AzureDevopsChecker) check(ctx *context.Context, check v1.AzureDevopsChe pipelineClient := pipelines.NewClient(ctx, connection) allPipelines, err := pipelineClient.ListPipelines(ctx, pipelines.ListPipelinesArgs{Project: &projectID}) if err != nil { - return results.Errorf("failed to get pipeline (project=%s): %w", check.Project, err) + return results.Errorf("failed to get pipeline (project=%s): %v", check.Project, err) } for _, pipeline := range *allPipelines { @@ -89,7 +89,7 @@ func (t *AzureDevopsChecker) check(ctx *context.Context, check v1.AzureDevopsChe // https://learn.microsoft.com/en-us/rest/api/azure/devops/pipelines/runs/list?view=azure-devops-rest-7.1 runs, err := pipelineClient.ListRuns(ctx, pipelines.ListRunsArgs{PipelineId: pipeline.Id, Project: &projectID}) if err != nil { - return results.Errorf("failed to get runs (pipeline=%s): %w", check.Pipeline, err) + return results.Errorf("failed to get runs (pipeline=%s): %v", check.Pipeline, err) } latestRun := getLatestCompletedRun(*runs) @@ -105,7 +105,7 @@ func (t *AzureDevopsChecker) check(ctx *context.Context, check v1.AzureDevopsChe // because the ListRuns API doesn't return Resources. latestRun, err = pipelineClient.GetRun(ctx, pipelines.GetRunArgs{Project: &projectID, PipelineId: pipeline.Id, RunId: (*runs)[0].Id}) if err != nil { - return results.Errorf("failed to get run (pipeline=%s): %w", check.Pipeline, err) + return results.Errorf("failed to get run (pipeline=%s): %v", check.Pipeline, err) } if !matchBranchNames(check.Branches, latestRun.Resources) { diff --git a/checks/catalog.go b/checks/catalog.go index 46fa5e2e2..0aa428de7 100644 --- a/checks/catalog.go +++ b/checks/catalog.go @@ -30,7 +30,7 @@ func (c *CatalogChecker) Check(ctx *canaryContext.Context, check v1.CatalogCheck items, err := query.FindConfigsByResourceSelector(ctx.Context, check.Selector...) if err != nil { - return results.Failf("failed to fetch catalogs: %v", err) + return results.Errorf("failed to fetch catalogs: %v", err) } var configItems []map[string]any diff --git a/checks/cloudwatch.go b/checks/cloudwatch.go index e5455a325..2f44c0d2f 100644 --- a/checks/cloudwatch.go +++ b/checks/cloudwatch.go @@ -39,7 +39,7 @@ func (c *CloudWatchChecker) Check(ctx *context.Context, extConfig external.Check results = append(results, result) if err := check.AWSConnection.Populate(ctx); err != nil { - return results.Failf("failed to populate aws connection: %v", err) + return results.Errorf("failed to populate aws connection: %v", err) } cfg, err := awsUtil.NewSession(ctx.Context, check.AWSConnection) diff --git a/checks/database_backup_gcp.go b/checks/database_backup_gcp.go index bbc165ba0..ced70e7b8 100644 --- a/checks/database_backup_gcp.go +++ b/checks/database_backup_gcp.go @@ -29,7 +29,7 @@ func GCPDatabaseBackupCheck(ctx *context.Context, check v1.DatabaseBackupCheck) results = append(results, result) if err := check.GCP.HydrateConnection(ctx); err != nil { - return results.Failf("failed to populate GCP connection: %v", err) + return results.Errorf("failed to populate GCP connection: %v", err) } svc, err := gcp.NewSQLAdmin(ctx.Context, check.GCP.GCPConnection) diff --git a/checks/dns.go b/checks/dns.go index 8dd9c6d88..c65bbebd7 100644 --- a/checks/dns.go +++ b/checks/dns.go @@ -54,7 +54,7 @@ func (c *DNSChecker) Check(ctx *canaryContext.Context, extConfig external.Check) if check.Server != "" { dialer, err := getDialer(check, timeout) if err != nil { - return results.Failf("Failed to get dialer, %v", err) + return results.Errorf("Failed to get dialer, %v", err) } r = net.Resolver{ PreferGo: true, @@ -71,7 +71,7 @@ func (c *DNSChecker) Check(ctx *canaryContext.Context, extConfig external.Check) resultCh := make(chan *pkg.CheckResult, 1) if fn, ok := resolvers[strings.ToUpper(queryType)]; !ok { - return results.Failf("unknown query type: %s", queryType) + return results.Errorf("unknown query type: %s", queryType) } else { go func() { pass, message, err := fn(ctx, &r, check) diff --git a/checks/dynatrace.go b/checks/dynatrace.go index 23d7399d6..7e54d8edc 100644 --- a/checks/dynatrace.go +++ b/checks/dynatrace.go @@ -33,7 +33,7 @@ func (t *DynatraceChecker) Check(ctx *context.Context, extConfig external.Check) apiKey, err := ctx.GetEnvValueFromCache(check.APIKey) if err != nil { - return results.Failf("error getting Dynatrace API key: %v", err) + return results.Errorf("error getting Dynatrace API key: %v", err) } config := dynatrace.NewConfiguration() @@ -46,7 +46,7 @@ func (t *DynatraceChecker) Check(ctx *context.Context, extConfig external.Check) apiClient := dynatrace.NewAPIClient(config) problems, apiResponse, err := apiClient.ProblemsApi.GetProblems(ctx).Execute() if err != nil { - return results.Failf("error getting Dynatrace problems: %s", err.Error()) + return results.Errorf("error getting Dynatrace problems: %s", err.Error()) } defer apiResponse.Body.Close() diff --git a/checks/elasticsearch.go b/checks/elasticsearch.go index a7e9f5548..3657a277d 100644 --- a/checks/elasticsearch.go +++ b/checks/elasticsearch.go @@ -35,7 +35,7 @@ func (c *ElasticsearchChecker) Check(ctx *context.Context, extConfig external.Ch connection, err := ctx.GetConnection(check.Connection) if err != nil { - return results.Failf("error getting connection: %v", err) + return results.Errorf("error getting connection: %v", err) } cfg := elasticsearch.Config{ diff --git a/checks/exec.go b/checks/exec.go index cd405119d..03842d3f9 100644 --- a/checks/exec.go +++ b/checks/exec.go @@ -141,7 +141,7 @@ func execPowershell(ctx *context.Context, check v1.ExecCheck, envParams *execEnv ps, err := exec.LookPath("powershell.exe") if err != nil { - return results.Failf("powershell not found") + return results.Errorf("powershell not found") } args := []string{check.Script} diff --git a/checks/folder_gcs.go b/checks/folder_gcs.go index 9e1edbc07..536085abb 100644 --- a/checks/folder_gcs.go +++ b/checks/folder_gcs.go @@ -30,7 +30,7 @@ func CheckGCSBucket(ctx *context.Context, check v1.FolderCheck) pkg.Results { connection, err := ctx.HydrateConnectionByURL(check.GCPConnection.ConnectionName) if err != nil { - return results.Failf("failed to populate GCS connection: %v", err) + return results.Errorf("failed to populate GCS connection: %v", err) } else if connection == nil { connection = &models.Connection{Type: models.ConnectionTypeGCS} if check.GCSConnection.Bucket == "" { @@ -39,7 +39,7 @@ func CheckGCSBucket(ctx *context.Context, check v1.FolderCheck) pkg.Results { connection, err = connection.Merge(ctx, check.GCSConnection) if err != nil { - return results.Failf("failed to populate GCS connection: %v", err) + return results.Errorf("failed to populate GCS connection: %v", err) } } diff --git a/checks/folder_s3.go b/checks/folder_s3.go index 79740b98e..563e1919e 100644 --- a/checks/folder_s3.go +++ b/checks/folder_s3.go @@ -32,7 +32,7 @@ func CheckS3Bucket(ctx *context.Context, check v1.FolderCheck) pkg.Results { connection, err := ctx.HydrateConnectionByURL(check.AWSConnection.ConnectionName) if err != nil { - return results.Failf("failed to populate AWS connection: %v", err) + return results.Errorf("failed to populate AWS connection: %v", err) } else if connection == nil { connection = &models.Connection{Type: models.ConnectionTypeS3} if check.S3Connection.Bucket == "" { @@ -41,7 +41,7 @@ func CheckS3Bucket(ctx *context.Context, check v1.FolderCheck) pkg.Results { connection, err = connection.Merge(ctx, check.S3Connection) if err != nil { - return results.Failf("failed to populate AWS connection: %v", err) + return results.Errorf("failed to populate AWS connection: %v", err) } } diff --git a/checks/folder_sftp.go b/checks/folder_sftp.go index 281a77f9f..2a2855ff9 100644 --- a/checks/folder_sftp.go +++ b/checks/folder_sftp.go @@ -18,7 +18,7 @@ func CheckSFTP(ctx *context.Context, check v1.FolderCheck) pkg.Results { foundConn, err := check.SFTPConnection.HydrateConnection(ctx) if err != nil { - return results.Failf("failed to populate SFTP connection: %v", err) + return results.Errorf("failed to populate SFTP connection: %v", err) } auth := check.SFTPConnection.Authentication diff --git a/checks/folder_smb.go b/checks/folder_smb.go index 960566a53..6adcd5777 100644 --- a/checks/folder_smb.go +++ b/checks/folder_smb.go @@ -23,7 +23,7 @@ func CheckSmb(ctx *context.Context, check v1.FolderCheck) pkg.Results { foundConn, err := check.SMBConnection.HydrateConnection(ctx) if err != nil { - return results.Failf("failed to populate SMB connection: %v", err) + return results.Errorf("failed to populate SMB connection: %v", err) } auth := check.SMBConnection.Authentication diff --git a/checks/git_protocol.go b/checks/git_protocol.go index 047b06e02..ad1ddbe2e 100644 --- a/checks/git_protocol.go +++ b/checks/git_protocol.go @@ -105,12 +105,12 @@ func (c *GitProtocolChecker) Check(ctx *context.Context, extConfig external.Chec // Fetching Git Username username, err := ctx.GetEnvValueFromCache(check.Username) if err != nil { - return results.Failf("error fetching git user from env cache: %v", err) + return results.Errorf("error fetching git user from env cache: %v", err) } // Fetching Git Password password, err := ctx.GetEnvValueFromCache(check.Password) if err != nil { - return results.Failf("error fetching git password from env cache: %v", err) + return results.Errorf("error fetching git password from env cache: %v", err) } if len(filename) == 0 { @@ -119,7 +119,7 @@ func (c *GitProtocolChecker) Check(ctx *context.Context, extConfig external.Chec // Push Changes if err := pushChanges(check.Repository, username, password, filename); err != nil { - return results.Failf("error pushing changes: %v", err) + return results.Errorf("error pushing changes: %v", err) } details := map[string]string{ diff --git a/checks/github.go b/checks/github.go index 9518d7a05..e91c489eb 100644 --- a/checks/github.go +++ b/checks/github.go @@ -38,13 +38,13 @@ func (c *GitHubChecker) Check(ctx *context.Context, extConfig external.Check) pk var githubToken string if connection, err := ctx.HydrateConnectionByURL(check.ConnectionName); err != nil { - return results.Failf("failed to find connection for github token %q: %v", check.ConnectionName, err) + return results.Errorf("failed to find connection for github token %q: %v", check.ConnectionName, err) } else if connection != nil { githubToken = connection.Password } else { githubToken, err = ctx.GetEnvValueFromCache(check.GithubToken) if err != nil { - return results.Failf("error fetching github token from env cache: %v", err) + return results.Errorf("error fetching github token from env cache: %v", err) } } @@ -56,13 +56,13 @@ func (c *GitHubChecker) Check(ctx *context.Context, extConfig external.Check) pk cmd.Env = append(cmd.Env, "GITHUB_TOKEN="+githubToken) output, err := cmd.CombinedOutput() if err != nil { - return results.Failf("error executing askgit command. output=%q: %v", output, err) + return results.Errorf("error executing askgit command. output=%q: %v", output, err) } var rowResults = make([]map[string]any, 0) err = json.Unmarshal(output, &rowResults) if err != nil { - return results.Failf("error parsing mergestat result: %v", err) + return results.Errorf("error parsing mergestat result: %v", err) } result.AddDetails(rowResults) diff --git a/checks/http.go b/checks/http.go index 0d802a2c2..800454e8b 100644 --- a/checks/http.go +++ b/checks/http.go @@ -241,7 +241,11 @@ func (c *HTTPChecker) Check(ctx *context.Context, check v1.HTTPCheck) pkg.Result } if ok := response.IsOK(check.ResponseCodes...); !ok { - return results.Failf("response code invalid %d != %v", status, check.ResponseCodes) + if len(check.ResponseCodes) > 0 { + return results.Failf("response code invalid. %d != %v", status, check.ResponseCodes) + } else { + return results.Failf("response code invalid. %d is not 2xx", status) + } } if check.ThresholdMillis > 0 && check.ThresholdMillis < int(elapsed.Milliseconds()) { diff --git a/checks/jmeter.go b/checks/jmeter.go index 44b4c8531..b7542fa97 100644 --- a/checks/jmeter.go +++ b/checks/jmeter.go @@ -44,7 +44,7 @@ func (c *JmeterChecker) Check(ctx *context.Context, extConfig external.Check) pk //FIXME: the jmx file should not be cached value, err := ctx.GetEnvValueFromCache(check.Jmx) if err != nil { - return results.Failf("Failed to parse the jmx plan: %v", err) + return results.Errorf("Failed to parse the jmx plan: %v", err) } testPlanFilename := fmt.Sprintf("/tmp/jmx-%s-%s-%d.jmx", namespace, check.Jmx.Name, rand.Int()) @@ -52,7 +52,7 @@ func (c *JmeterChecker) Check(ctx *context.Context, extConfig external.Check) pk err = os.WriteFile(testPlanFilename, []byte(value), 0755) defer os.Remove(testPlanFilename) // nolint: errcheck if err != nil { - return results.Failf("unable to write test plan file") + return results.Errorf("unable to write test plan file") } var host string @@ -67,21 +67,21 @@ func (c *JmeterChecker) Check(ctx *context.Context, extConfig external.Check) pk _, ok := exec.SafeExec(jmeterCmd) defer os.Remove(logFilename) // nolint: errcheck if !ok { - return results.Failf("error running the jmeter command: %v", jmeterCmd) + return results.Errorf("error running the jmeter command: %v", jmeterCmd) } raw, err := os.ReadFile(logFilename) if err != nil { - return results.Failf("error opening the log file: %v", err) + return results.Errorf("error opening the log file: %v", err) } elapsedTime, err := checkLogs(raw) if err != nil { - return results.Failf("check failed: %v", err) + return results.Errorf("check failed: %v", err) } totalDuration := time.Duration(elapsedTime) * time.Millisecond if check.ResponseDuration != "" { resDuration, err := time.ParseDuration(check.ResponseDuration) if err != nil { - return results.Failf("error parsing response duration: %v", err) + return results.Errorf("error parsing response duration: %v", err) } if totalDuration > resDuration { return results.Failf("the response took %v longer than specified", (totalDuration - resDuration).String()) diff --git a/checks/junit.go b/checks/junit.go index 7b5c9e537..55c6d64cd 100644 --- a/checks/junit.go +++ b/checks/junit.go @@ -144,7 +144,7 @@ func podExecf(ctx *context.Context, pod corev1.Pod, results pkg.Results, cmd str _cmd := fmt.Sprintf(cmd, args...) stdout, stderr, err := ctx.Kommons().ExecutePodf(pod.Namespace, pod.Name, containerName, "bash", "-c", _cmd) if stderr != "" || err != nil { - podFail(ctx, pod, results.Failf("error running %s: %v %v %v", _cmd, stdout, stderr, err)) + podFail(ctx, pod, results.Errorf("error running %s: %v %v %v", _cmd, stdout, stderr, err)) return "", false } return strings.TrimSpace(stdout), true diff --git a/checks/kubernetes.go b/checks/kubernetes.go index 1e003aade..9064ce686 100644 --- a/checks/kubernetes.go +++ b/checks/kubernetes.go @@ -42,13 +42,13 @@ func (c *KubernetesChecker) Check(ctx *context.Context, extConfig external.Check if check.KubeConfig != nil { val, err := ctx.GetEnvValueFromCache(*check.KubeConfig) if err != nil { - return results.Failf("failed to get kubeconfig from env: %v", err) + return results.Errorf("failed to get kubeconfig from env: %v", err) } if strings.HasPrefix(val, "/") { kClient, kube, err := pkg.NewKommonsClientWithConfigPath(val) if err != nil { - return results.Failf("failed to initialize kubernetes client from the provided kubeconfig: %v", err) + return results.Errorf("failed to initialize kubernetes client from the provided kubeconfig: %v", err) } ctx = ctx.WithDutyContext(ctx.WithKommons(kClient)) @@ -56,7 +56,7 @@ func (c *KubernetesChecker) Check(ctx *context.Context, extConfig external.Check } else { kClient, kube, err := pkg.NewKommonsClientWithConfig(val) if err != nil { - return results.Failf("failed to initialize kubernetes client from the provided kubeconfig: %v", err) + return results.Errorf("failed to initialize kubernetes client from the provided kubeconfig: %v", err) } ctx = ctx.WithDutyContext(ctx.WithKommons(kClient)) @@ -65,29 +65,29 @@ func (c *KubernetesChecker) Check(ctx *context.Context, extConfig external.Check } if ctx.Kommons() == nil { - return results.Failf("Kubernetes is not initialized") + return results.Errorf("Kubernetes is not initialized") } client, err := ctx.Kommons().GetClientByKind(check.Kind) if err != nil { - return results.Failf("Failed to get client for kind %s: %v", check.Kind, err) + return results.Errorf("Failed to get client for kind %s: %v", check.Kind, err) } namespaces, err := getNamespaces(ctx, check) if err != nil { - return results.Failf("Failed to get namespaces: %v", err) + return results.Errorf("Failed to get namespaces: %v", err) } var allResources []unstructured.Unstructured for _, namespace := range namespaces { resources, err := getResourcesFromNamespace(ctx, client, check, namespace) if err != nil { - return results.Failf("failed to get resources: %v. namespace: %v", err, namespace) + return results.Errorf("failed to get resources: %v. namespace: %v", err, namespace) } for _, filter := range check.Ignore { resources, err = filterResources(resources, filter) if err != nil { - results.Failf("failed to filter resources: %v. filter: %v", err, filter) + results.Errorf("failed to filter resources: %v. filter: %v", err, filter) return results } } @@ -97,7 +97,7 @@ func (c *KubernetesChecker) Check(ctx *context.Context, extConfig external.Check _resource := resource resourceHealth, err := health.GetResourceHealth(&_resource, nil) if err != nil { - results.Failf("error getting resource health (%s/%s/%s): %v", + results.Errorf("error getting resource health (%s/%s/%s): %v", resource.GetKind(), resource.GetNamespace(), resource.GetName(), err) } else { resource.Object["healthStatus"] = resourceHealth diff --git a/checks/kubernetes_resource.go b/checks/kubernetes_resource.go index b3f8f1a3f..b41ffa12b 100644 --- a/checks/kubernetes_resource.go +++ b/checks/kubernetes_resource.go @@ -63,49 +63,49 @@ func (c *KubernetesResourceChecker) Check(ctx *context.Context, check v1.Kuberne results = append(results, result) if err := c.validate(ctx, check); err != nil { - return results.Failf("validation: %v", err) + return results.Invalidf("validation: %v", err) } if check.Kubeconfig != nil { ctx, err = c.applyKubeconfig(ctx, *check.Kubeconfig) if err != nil { - return results.Failf("failed to apply kube config: %v", err) + return results.Errorf("failed to apply kube config: %v", err) } } if err := templateKubernetesResourceCheck(ctx.Canary.GetPersistedID(), ctx.Canary.GetCheckID(check.GetName()), &check); err != nil { - return results.Failf("templating error: %v", err) + return results.Errorf("templating error: %v", err) } for i := range check.StaticResources { resource := check.StaticResources[i] if err := ctx.Kommons().ApplyUnstructured(utils.Coalesce(resource.GetNamespace(), ctx.Namespace), &resource); err != nil { - return results.Failf("failed to apply static resource %s: %v", resource.GetName(), err) + return results.Errorf("failed to apply static resource %s: %v", resource.GetName(), err) } } defer func() { if err := DeleteResources(ctx, check, false); err != nil { - results.Failf(err.Error()) + results.Errorf(err.Error()) } }() if check.ClearResources { if err := DeleteResources(ctx, check, false); err != nil { - results.Failf(err.Error()) + results.Errorf(err.Error()) } } for i := range check.Resources { resource := check.Resources[i] if err := ctx.Kommons().ApplyUnstructured(utils.Coalesce(resource.GetNamespace(), ctx.Namespace), &resource); err != nil { - return results.Failf("failed to apply resource (%s/%s/%s): %v", resource.GetKind(), resource.GetNamespace(), resource.GetName(), err) + return results.Errorf("failed to apply resource (%s/%s/%s): %v", resource.GetKind(), resource.GetNamespace(), resource.GetName(), err) } } if !check.WaitFor.Disable { if err := c.evalWaitFor(ctx, check); err != nil { - return results.Failf("%v", err) + return results.Errorf("%v", err) } } @@ -128,7 +128,7 @@ func (c *KubernetesResourceChecker) Check(ctx *context.Context, check v1.Kuberne }, } if err := templater.Walk(&virtualCanary); err != nil { - return results.Failf("error templating checks: %v", err) + return results.Errorf("error templating checks: %v", err) } if wt, _ := check.CheckRetries.GetDelay(); wt > 0 { @@ -171,7 +171,7 @@ func (c *KubernetesResourceChecker) Check(ctx *context.Context, check v1.Kuberne return nil }) if retryErr != nil { - return results.Failf(retryErr.Error()) + return results.Errorf(retryErr.Error()) } } diff --git a/checks/ldap.go b/checks/ldap.go index 50cdae424..c75c27164 100644 --- a/checks/ldap.go +++ b/checks/ldap.go @@ -40,11 +40,11 @@ func (c *LdapChecker) Check(ctx *context.Context, extConfig external.Check) pkg. connection, err := ctx.GetConnection(check.Connection) if err != nil { - return results.Failf("failed to get connection: %v", err) + return results.Errorf("failed to get connection: %v", err) } if connection.URL == "" { - return results.Failf("Must specify a connection or URL") + return results.Invalidf("Must specify a connection or URL") } ld, err := ldap.DialURL(connection.URL, ldap.DialWithTLSConfig(&tls.Config{InsecureSkipVerify: check.SkipTLSVerify})) @@ -63,7 +63,7 @@ func (c *LdapChecker) Check(ctx *context.Context, extConfig external.Check) pkg. } res, err := ld.Search(req) if err != nil { - return results.Failf("Failed to search host %v error: %v", connection.URL, err) + return results.Errorf("Failed to search host %v error: %v", connection.URL, err) } if len(res.Entries) == 0 { diff --git a/checks/mongodb.go b/checks/mongodb.go index 54a35eae8..59e356f4a 100644 --- a/checks/mongodb.go +++ b/checks/mongodb.go @@ -5,7 +5,6 @@ import ( "time" "github.com/flanksource/canary-checker/api/context" - "github.com/flanksource/canary-checker/api/external" v1 "github.com/flanksource/canary-checker/api/v1" "github.com/flanksource/canary-checker/pkg" @@ -29,16 +28,14 @@ func (c *MongoDBChecker) Run(ctx *context.Context) pkg.Results { return results } -func (c *MongoDBChecker) Check(ctx *context.Context, extConfig external.Check) pkg.Results { - check := extConfig.(v1.MongoDBCheck) +func (c *MongoDBChecker) Check(ctx *context.Context, check v1.MongoDBCheck) pkg.Results { result := pkg.Success(check, ctx.Canary) var results pkg.Results results = append(results, result) - var err error connection, err := ctx.GetConnection(check.Connection) if err != nil { - return results.Failf("error getting connection: %v", err) + return results.Errorf("error getting connection: %v", err) } opts := options.Client(). @@ -57,7 +54,7 @@ func (c *MongoDBChecker) Check(ctx *context.Context, extConfig external.Check) p err = client.Ping(_ctx, readpref.Primary()) if err != nil { - return results.Error(err) + return results.Failf("failed to ping: %v", err) } return results diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 56f391926..0387603b7 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -131,7 +131,7 @@ func UnfoldGlobs(paths ...string) []string { for _, path := range paths { matched, err := filepath.Glob(path) if err != nil { - logger.Warnf("invalid glob pattern. path=%s; %w", path, err) + logger.Warnf("invalid glob pattern. path=%s; %v", path, err) continue }