From bd732fa4f4075aec1b18e75f915517c822c5faa7 Mon Sep 17 00:00:00 2001 From: Sergey Smolnikov Date: Mon, 16 Oct 2023 10:39:48 +0200 Subject: [PATCH] Cleanup and unit-test fix --- api/jobs/job_controller.go | 2 +- api/jobs/job_handler_test.go | 82 +++++++++++++++++----------------- api/jobs/manage_job_handler.go | 52 ++++++++++----------- api/jobs/models/job_errors.go | 8 ++-- 4 files changed, 72 insertions(+), 72 deletions(-) diff --git a/api/jobs/job_controller.go b/api/jobs/job_controller.go index 4d93ea27..8ce05eb0 100644 --- a/api/jobs/job_controller.go +++ b/api/jobs/job_controller.go @@ -272,7 +272,7 @@ func RerunApplicationJob(accounts models.Accounts, w http.ResponseWriter, r *htt // description: "Not found" appName := mux.Vars(r)["appName"] jobName := mux.Vars(r)["jobName"] - log.Infof("Ru-run the pipeline job %s in the application %s", jobName, appName) + log.Infof("Rerun the pipeline job %s in the application %s", jobName, appName) handler := Init(accounts, deployments.Init(accounts)) err := handler.RerunJob(r.Context(), appName, jobName) diff --git a/api/jobs/job_handler_test.go b/api/jobs/job_handler_test.go index 95be213b..f1ce09f1 100644 --- a/api/jobs/job_handler_test.go +++ b/api/jobs/job_handler_test.go @@ -9,9 +9,9 @@ import ( deploymentModels "github.com/equinor/radix-api/api/deployments/models" jobModels "github.com/equinor/radix-api/api/jobs/models" "github.com/equinor/radix-api/models" - models2 "github.com/equinor/radix-common/models" + radixmodels "github.com/equinor/radix-common/models" radixutils "github.com/equinor/radix-common/utils" - "github.com/equinor/radix-operator/pkg/apis/radix/v1" + radixv1 "github.com/equinor/radix-operator/pkg/apis/radix/v1" "github.com/equinor/radix-operator/pkg/apis/utils" "github.com/equinor/radix-operator/pkg/apis/utils/slice" radixfake "github.com/equinor/radix-operator/pkg/client/clientset/versioned/fake" @@ -46,14 +46,14 @@ type jobCreatedScenario struct { type jobStatusScenario struct { scenarioName string jobName string - condition v1.RadixJobCondition + condition radixv1.RadixJobCondition stop bool expectedStatus string } type jobProperties struct { name string - condition v1.RadixJobCondition + condition radixv1.RadixJobCondition stop bool } @@ -74,7 +74,7 @@ func (s *JobHandlerTestSuite) SetupTest() { func (s *JobHandlerTestSuite) setupTest() { s.inKubeClient, s.inRadixClient, s.outKubeClient, s.outRadixClient, s.inSecretProviderClient, s.outSecretProviderClient = s.getUtils() - accounts := models.NewAccounts(s.inKubeClient, s.inRadixClient, s.inSecretProviderClient, nil, s.outKubeClient, s.outRadixClient, s.outSecretProviderClient, nil, "", models2.Impersonation{}) + accounts := models.NewAccounts(s.inKubeClient, s.inRadixClient, s.inSecretProviderClient, nil, s.outKubeClient, s.outRadixClient, s.outSecretProviderClient, nil, "", radixmodels.Impersonation{}) s.accounts = accounts } @@ -86,28 +86,28 @@ func (s *JobHandlerTestSuite) getUtils() (inKubeClient *kubefake.Clientset, inRa } func (s *JobHandlerTestSuite) Test_GetApplicationJob() { - jobName, appName, branch, commitId, pipeline, triggeredBy := "a_job", "an_app", "a_branch", "a_commitid", v1.BuildDeploy, "a_user" + jobName, appName, branch, commitId, pipeline, triggeredBy := "a_job", "an_app", "a_branch", "a_commitid", radixv1.BuildDeploy, "a_user" started, ended := metav1.NewTime(time.Date(2020, 1, 1, 0, 0, 0, 0, time.Local)), metav1.NewTime(time.Date(2020, 1, 2, 0, 0, 0, 0, time.Local)) - step1Name, step1Pod, step1Condition, step1Started, step1Ended, step1Components := "step1_name", "step1_pod", v1.JobRunning, metav1.Now(), metav1.NewTime(time.Now().Add(1*time.Hour)), []string{"step1_comp1", "step1_comp2"} + step1Name, step1Pod, step1Condition, step1Started, step1Ended, step1Components := "step1_name", "step1_pod", radixv1.JobRunning, metav1.Now(), metav1.NewTime(time.Now().Add(1*time.Hour)), []string{"step1_comp1", "step1_comp2"} step2Name := "step2_name" - rj := &v1.RadixJob{ + rj := &radixv1.RadixJob{ ObjectMeta: metav1.ObjectMeta{ Name: jobName, Namespace: utils.GetAppNamespace(appName), }, - Spec: v1.RadixJobSpec{ - Build: v1.RadixBuildSpec{ + Spec: radixv1.RadixJobSpec{ + Build: radixv1.RadixBuildSpec{ Branch: branch, CommitID: commitId, }, PipeLineType: pipeline, TriggeredBy: triggeredBy, }, - Status: v1.RadixJobStatus{ + Status: radixv1.RadixJobStatus{ Started: &started, Ended: &ended, - Steps: []v1.RadixJobStep{ + Steps: []radixv1.RadixJobStep{ {Name: step1Name, PodName: step1Pod, Condition: step1Condition, Started: &step1Started, Ended: &step1Ended, Components: step1Components}, {Name: step2Name}, }, @@ -207,7 +207,7 @@ func (s *JobHandlerTestSuite) Test_GetApplicationJob_Created() { dh := deployMock.NewMockDeployHandler(ctrl) dh.EXPECT().GetDeploymentsForPipelineJob(context.Background(), gomock.Any(), gomock.Any()).Return(nil, nil).Times(1) h := Init(s.accounts, dh) - rj := v1.RadixJob{ObjectMeta: metav1.ObjectMeta{Name: scenario.jobName, Namespace: utils.GetAppNamespace(appName), CreationTimestamp: scenario.creationTimestamp}} + rj := radixv1.RadixJob{ObjectMeta: metav1.ObjectMeta{Name: scenario.jobName, Namespace: utils.GetAppNamespace(appName), CreationTimestamp: scenario.creationTimestamp}} if scenario.jobStatusCreated != emptyTime { rj.Status.Created = &scenario.jobStatusCreated } @@ -223,10 +223,10 @@ func (s *JobHandlerTestSuite) Test_GetApplicationJob_Created() { func (s *JobHandlerTestSuite) Test_GetApplicationJob_Status() { appName := "any_app" scenarios := []jobStatusScenario{ - {scenarioName: "status is set to condition when stop is false", jobName: "job1", condition: v1.JobFailed, stop: false, expectedStatus: jobModels.Failed.String()}, - {scenarioName: "status is Stopping when stop is true and condition is not Stopped", jobName: "job2", condition: v1.JobRunning, stop: true, expectedStatus: jobModels.Stopping.String()}, - {scenarioName: "status is Stopped when stop is true and condition is Stopped", jobName: "job3", condition: v1.JobStopped, stop: true, expectedStatus: jobModels.Stopped.String()}, - {scenarioName: "status is JobStoppedNoChanges when there is no changes", jobName: "job4", condition: v1.JobStoppedNoChanges, stop: false, expectedStatus: jobModels.StoppedNoChanges.String()}, + {scenarioName: "status is set to condition when stop is false", jobName: "job1", condition: radixv1.JobFailed, stop: false, expectedStatus: jobModels.Failed.String()}, + {scenarioName: "status is Stopping when stop is true and condition is not Stopped", jobName: "job2", condition: radixv1.JobRunning, stop: true, expectedStatus: jobModels.Stopping.String()}, + {scenarioName: "status is Stopped when stop is true and condition is Stopped", jobName: "job3", condition: radixv1.JobStopped, stop: true, expectedStatus: jobModels.Stopped.String()}, + {scenarioName: "status is JobStoppedNoChanges when there is no changes", jobName: "job4", condition: radixv1.JobStoppedNoChanges, stop: false, expectedStatus: jobModels.StoppedNoChanges.String()}, {scenarioName: "status is Waiting when condition is empty", jobName: "job5", expectedStatus: jobModels.Waiting.String()}, } @@ -238,10 +238,10 @@ func (s *JobHandlerTestSuite) Test_GetApplicationJob_Status() { dh := deployMock.NewMockDeployHandler(ctrl) dh.EXPECT().GetDeploymentsForPipelineJob(context.Background(), gomock.Any(), gomock.Any()).Return(nil, nil).Times(1) h := Init(s.accounts, dh) - rj := v1.RadixJob{ + rj := radixv1.RadixJob{ ObjectMeta: metav1.ObjectMeta{Name: scenario.jobName, Namespace: utils.GetAppNamespace(appName)}, - Spec: v1.RadixJobSpec{Stop: scenario.stop}, - Status: v1.RadixJobStatus{Condition: scenario.condition}, + Spec: radixv1.RadixJobSpec{Stop: scenario.stop}, + Status: radixv1.RadixJobStatus{Condition: scenario.condition}, } _, err := s.outRadixClient.RadixV1().RadixJobs(rj.Namespace).Create(context.Background(), &rj, metav1.CreateOptions{}) @@ -257,13 +257,13 @@ func (s *JobHandlerTestSuite) TestJobHandler_RerunJob() { appName := "anyApp" namespace := utils.GetAppNamespace(appName) tests := []jobRerunScenario{ - {scenarioName: "existing failed job", existingJob: &jobProperties{name: "job1", condition: v1.JobFailed}, jobNameToRerun: "job1", expectedError: nil}, - {scenarioName: "existing stopped job", existingJob: &jobProperties{name: "job1", condition: v1.JobStopped, stop: true}, jobNameToRerun: "job1", expectedError: nil}, - {scenarioName: "existing running job", existingJob: &jobProperties{name: "job1", condition: v1.JobRunning}, jobNameToRerun: "job1", expectedError: jobModels.JobHasInvalidConditionToRerunError(appName, "job1", v1.JobRunning)}, - {scenarioName: "existing stopped-no-changes job", existingJob: &jobProperties{name: "job1", condition: v1.JobStoppedNoChanges}, jobNameToRerun: "job1", expectedError: jobModels.JobHasInvalidConditionToRerunError(appName, "job1", v1.JobStoppedNoChanges)}, - {scenarioName: "existing queued job", existingJob: &jobProperties{name: "job1", condition: v1.JobQueued}, jobNameToRerun: "job1", expectedError: jobModels.JobHasInvalidConditionToRerunError(appName, "job1", v1.JobQueued)}, - {scenarioName: "existing succeeded job", existingJob: &jobProperties{name: "job1", condition: v1.JobSucceeded}, jobNameToRerun: "job1", expectedError: jobModels.JobHasInvalidConditionToRerunError(appName, "job1", v1.JobSucceeded)}, - {scenarioName: "existing waiting job", existingJob: &jobProperties{name: "job1", condition: v1.JobWaiting}, jobNameToRerun: "job1", expectedError: jobModels.JobHasInvalidConditionToRerunError(appName, "job1", v1.JobWaiting)}, + {scenarioName: "existing failed job", existingJob: &jobProperties{name: "job1", condition: radixv1.JobFailed}, jobNameToRerun: "job1", expectedError: nil}, + {scenarioName: "existing stopped job", existingJob: &jobProperties{name: "job1", condition: radixv1.JobStopped, stop: true}, jobNameToRerun: "job1", expectedError: nil}, + {scenarioName: "existing running job", existingJob: &jobProperties{name: "job1", condition: radixv1.JobRunning}, jobNameToRerun: "job1", expectedError: jobModels.JobHasInvalidConditionToRerunError(appName, "job1", radixv1.JobRunning)}, + {scenarioName: "existing stopped-no-changes job", existingJob: &jobProperties{name: "job1", condition: radixv1.JobStoppedNoChanges}, jobNameToRerun: "job1", expectedError: jobModels.JobHasInvalidConditionToRerunError(appName, "job1", radixv1.JobStoppedNoChanges)}, + {scenarioName: "existing queued job", existingJob: &jobProperties{name: "job1", condition: radixv1.JobQueued}, jobNameToRerun: "job1", expectedError: jobModels.JobHasInvalidConditionToRerunError(appName, "job1", radixv1.JobQueued)}, + {scenarioName: "existing succeeded job", existingJob: &jobProperties{name: "job1", condition: radixv1.JobSucceeded}, jobNameToRerun: "job1", expectedError: jobModels.JobHasInvalidConditionToRerunError(appName, "job1", radixv1.JobSucceeded)}, + {scenarioName: "existing waiting job", existingJob: &jobProperties{name: "job1", condition: radixv1.JobWaiting}, jobNameToRerun: "job1", expectedError: jobModels.JobHasInvalidConditionToRerunError(appName, "job1", radixv1.JobWaiting)}, {scenarioName: "not existing job", existingJob: nil, jobNameToRerun: "job1", expectedError: jobModels.PipelineNotFoundError(appName, "job1")}, } for _, tt := range tests { @@ -274,10 +274,10 @@ func (s *JobHandlerTestSuite) TestJobHandler_RerunJob() { dh := deployMock.NewMockDeployHandler(ctrl) jh := s.getJobHandler(dh) if tt.existingJob != nil { - _, err := s.inRadixClient.RadixV1().RadixJobs(namespace).Create(context.Background(), &v1.RadixJob{ + _, err := s.accounts.UserAccount.RadixClient.RadixV1().RadixJobs(namespace).Create(context.Background(), &radixv1.RadixJob{ ObjectMeta: metav1.ObjectMeta{Namespace: namespace, Name: tt.existingJob.name}, - Spec: v1.RadixJobSpec{Stop: tt.existingJob.stop}, - Status: v1.RadixJobStatus{Condition: tt.existingJob.condition}, + Spec: radixv1.RadixJobSpec{Stop: tt.existingJob.stop}, + Status: radixv1.RadixJobStatus{Condition: tt.existingJob.condition}, }, metav1.CreateOptions{}) s.NoError(err) } @@ -292,14 +292,14 @@ func (s *JobHandlerTestSuite) TestJobHandler_StopJob() { appName := "anyApp" namespace := utils.GetAppNamespace(appName) tests := []jobRerunScenario{ - {scenarioName: "existing failed job", existingJob: &jobProperties{name: "job1", condition: v1.JobFailed}, jobNameToRerun: "job1", expectedError: jobModels.JobHasInvalidConditionToRerunError(appName, "job1", v1.JobFailed)}, - {scenarioName: "existing stopped job", existingJob: &jobProperties{name: "job1", condition: v1.JobStopped, stop: true}, jobNameToRerun: "job1", expectedError: jobModels.JobHasInvalidConditionToStopError(appName, "job1", v1.JobStopped)}, - {scenarioName: "existing running job with stop in spec", existingJob: &jobProperties{name: "job1", condition: v1.JobRunning, stop: true}, jobNameToRerun: "job1", expectedError: jobModels.JobAlreadyRequestedToStopError(appName, "job1")}, - {scenarioName: "existing running job", existingJob: &jobProperties{name: "job1", condition: v1.JobRunning}, jobNameToRerun: "job1", expectedError: nil}, - {scenarioName: "existing stopped-no-changes job", existingJob: &jobProperties{name: "job1", condition: v1.JobStoppedNoChanges}, jobNameToRerun: "job1", expectedError: jobModels.JobHasInvalidConditionToRerunError(appName, "job1", v1.JobStoppedNoChanges)}, - {scenarioName: "existing queued job", existingJob: &jobProperties{name: "job1", condition: v1.JobQueued}, jobNameToRerun: "job1", expectedError: nil}, - {scenarioName: "existing succeeded job", existingJob: &jobProperties{name: "job1", condition: v1.JobSucceeded}, jobNameToRerun: "job1", expectedError: nil}, - {scenarioName: "existing waiting job", existingJob: &jobProperties{name: "job1", condition: v1.JobWaiting}, jobNameToRerun: "job1", expectedError: nil}, + {scenarioName: "existing failed job", existingJob: &jobProperties{name: "job1", condition: radixv1.JobFailed}, jobNameToRerun: "job1", expectedError: jobModels.JobHasInvalidConditionToStopError(appName, "job1", radixv1.JobFailed)}, + {scenarioName: "existing stopped job", existingJob: &jobProperties{name: "job1", condition: radixv1.JobStopped, stop: true}, jobNameToRerun: "job1", expectedError: jobModels.JobAlreadyRequestedToStopError(appName, "job1")}, + {scenarioName: "existing running job with stop in spec", existingJob: &jobProperties{name: "job1", condition: radixv1.JobRunning, stop: true}, jobNameToRerun: "job1", expectedError: jobModels.JobAlreadyRequestedToStopError(appName, "job1")}, + {scenarioName: "existing running job", existingJob: &jobProperties{name: "job1", condition: radixv1.JobRunning}, jobNameToRerun: "job1", expectedError: nil}, + {scenarioName: "existing stopped-no-changes job", existingJob: &jobProperties{name: "job1", condition: radixv1.JobStoppedNoChanges}, jobNameToRerun: "job1", expectedError: jobModels.JobHasInvalidConditionToStopError(appName, "job1", radixv1.JobStoppedNoChanges)}, + {scenarioName: "existing queued job", existingJob: &jobProperties{name: "job1", condition: radixv1.JobQueued}, jobNameToRerun: "job1", expectedError: nil}, + {scenarioName: "existing succeeded job", existingJob: &jobProperties{name: "job1", condition: radixv1.JobSucceeded}, jobNameToRerun: "job1", expectedError: nil}, + {scenarioName: "existing waiting job", existingJob: &jobProperties{name: "job1", condition: radixv1.JobWaiting}, jobNameToRerun: "job1", expectedError: nil}, {scenarioName: "not existing job", existingJob: nil, jobNameToRerun: "job1", expectedError: jobModels.PipelineNotFoundError(appName, "job1")}, } for _, tt := range tests { @@ -310,10 +310,10 @@ func (s *JobHandlerTestSuite) TestJobHandler_StopJob() { dh := deployMock.NewMockDeployHandler(ctrl) jh := s.getJobHandler(dh) if tt.existingJob != nil { - _, err := s.inRadixClient.RadixV1().RadixJobs(namespace).Create(context.Background(), &v1.RadixJob{ + _, err := s.accounts.UserAccount.RadixClient.RadixV1().RadixJobs(namespace).Create(context.Background(), &radixv1.RadixJob{ ObjectMeta: metav1.ObjectMeta{Namespace: namespace, Name: tt.existingJob.name}, - Spec: v1.RadixJobSpec{Stop: tt.existingJob.stop}, - Status: v1.RadixJobStatus{Condition: tt.existingJob.condition}, + Spec: radixv1.RadixJobSpec{Stop: tt.existingJob.stop}, + Status: radixv1.RadixJobStatus{Condition: tt.existingJob.condition}, }, metav1.CreateOptions{}) s.NoError(err) } diff --git a/api/jobs/manage_job_handler.go b/api/jobs/manage_job_handler.go index daf01113..cb188d28 100644 --- a/api/jobs/manage_job_handler.go +++ b/api/jobs/manage_job_handler.go @@ -7,28 +7,28 @@ import ( jobModels "github.com/equinor/radix-api/api/jobs/models" "github.com/equinor/radix-api/api/kubequery" "github.com/equinor/radix-common/utils/slice" - v1 "github.com/equinor/radix-operator/pkg/apis/radix/v1" + radixv1 "github.com/equinor/radix-operator/pkg/apis/radix/v1" log "github.com/sirupsen/logrus" "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) var ( - jobConditionsInValidForJobStop = []v1.RadixJobCondition{v1.JobFailed, v1.JobStopped, v1.JobStoppedNoChanges} - jobConditionsValidForJobRerun = []v1.RadixJobCondition{v1.JobFailed, v1.JobStopped} + jobConditionsNotValidForJobStop = []radixv1.RadixJobCondition{radixv1.JobFailed, radixv1.JobStopped, radixv1.JobStoppedNoChanges} + jobConditionsValidForJobRerun = []radixv1.RadixJobCondition{radixv1.JobFailed, radixv1.JobStopped} ) // StopJob Stops an application job func (jh JobHandler) StopJob(ctx context.Context, appName, jobName string) error { log.Infof("Stopping the job: %s, %s", jobName, appName) - radixJob, err := jh.getPipelineJob(ctx, appName, jobName) + radixJob, err := jh.getPipelineJobByName(ctx, appName, jobName) if err != nil { return err } if radixJob.Spec.Stop { return jobModels.JobAlreadyRequestedToStopError(appName, jobName) } - if slice.Any(jobConditionsInValidForJobStop, func(condition v1.RadixJobCondition) bool { return condition == radixJob.Status.Condition }) { + if slice.Any(jobConditionsNotValidForJobStop, func(condition radixv1.RadixJobCondition) bool { return condition == radixJob.Status.Condition }) { return jobModels.JobHasInvalidConditionToStopError(appName, jobName, radixJob.Status.Condition) } @@ -44,15 +44,15 @@ func (jh JobHandler) StopJob(ctx context.Context, appName, jobName string) error // RerunJob Reruns the pipeline job as a copy func (jh JobHandler) RerunJob(ctx context.Context, appName, jobName string) error { log.Infof("Rerunning the job %s in the application %s", jobName, appName) - radixJob, err := jh.getPipelineJob(ctx, appName, jobName) + radixJob, err := jh.getPipelineJobByName(ctx, appName, jobName) if err != nil { return err } - if !slice.Any(jobConditionsValidForJobRerun, func(condition v1.RadixJobCondition) bool { return condition == radixJob.Status.Condition }) { + if !slice.Any(jobConditionsValidForJobRerun, func(condition radixv1.RadixJobCondition) bool { return condition == radixJob.Status.Condition }) { return jobModels.JobHasInvalidConditionToRerunError(appName, jobName, radixJob.Status.Condition) } - copiedRadixJob := jh.buildPipelineJobRerunFrom(radixJob) + copiedRadixJob := jh.buildPipelineJobToRerunFrom(radixJob) _, err = jh.createPipelineJob(ctx, appName, copiedRadixJob) if err != nil { return fmt.Errorf("failed to create a job %s to rerun: %v", radixJob.GetName(), err) @@ -62,36 +62,36 @@ func (jh JobHandler) RerunJob(ctx context.Context, appName, jobName string) erro return nil } -func (jh JobHandler) buildPipelineJobRerunFrom(srcRadixJob *v1.RadixJob) *v1.RadixJob { - destJobName, imageTag := getUniqueJobName(workerImage) - destRadixJob := v1.RadixJob{ +func (jh JobHandler) buildPipelineJobToRerunFrom(radixJob *radixv1.RadixJob) *radixv1.RadixJob { + rerunJobName, imageTag := getUniqueJobName(workerImage) + rerunRadixJob := radixv1.RadixJob{ ObjectMeta: metav1.ObjectMeta{ - Name: destJobName, - Labels: srcRadixJob.Labels, - Annotations: srcRadixJob.Annotations, + Name: rerunJobName, + Labels: radixJob.Labels, + Annotations: radixJob.Annotations, }, - Spec: srcRadixJob.Spec, + Spec: radixJob.Spec, } - if destRadixJob.ObjectMeta.Annotations == nil { - destRadixJob.ObjectMeta.Annotations = make(map[string]string) + if rerunRadixJob.ObjectMeta.Annotations == nil { + rerunRadixJob.ObjectMeta.Annotations = make(map[string]string) } - destRadixJob.ObjectMeta.Annotations[jobModels.RadixPipelineJobRerunAnnotation] = srcRadixJob.GetName() - if len(destRadixJob.Spec.Build.ImageTag) > 0 { - destRadixJob.Spec.Build.ImageTag = imageTag + rerunRadixJob.ObjectMeta.Annotations[jobModels.RadixPipelineJobRerunAnnotation] = radixJob.GetName() + if len(rerunRadixJob.Spec.Build.ImageTag) > 0 { + rerunRadixJob.Spec.Build.ImageTag = imageTag } - destRadixJob.Spec.Stop = false + rerunRadixJob.Spec.Stop = false triggeredBy, err := jh.getTriggeredBy("") if err != nil { log.Warnf("failed to get triggeredBy: %v", err) } - destRadixJob.Spec.TriggeredBy = triggeredBy - return &destRadixJob + rerunRadixJob.Spec.TriggeredBy = triggeredBy + return &rerunRadixJob } -func (jh JobHandler) getPipelineJob(ctx context.Context, appName string, jobName string) (*v1.RadixJob, error) { - job, err := kubequery.GetRadixJob(ctx, jh.serviceAccount.RadixClient, appName, jobName) +func (jh JobHandler) getPipelineJobByName(ctx context.Context, appName string, jobName string) (*radixv1.RadixJob, error) { + radixJob, err := kubequery.GetRadixJob(ctx, jh.userAccount.RadixClient, appName, jobName) if err == nil { - return job, nil + return radixJob, nil } if errors.IsNotFound(err) { return nil, jobModels.PipelineNotFoundError(appName, jobName) diff --git a/api/jobs/models/job_errors.go b/api/jobs/models/job_errors.go index 7c00c972..1a014d18 100644 --- a/api/jobs/models/job_errors.go +++ b/api/jobs/models/job_errors.go @@ -4,7 +4,7 @@ import ( "fmt" radixhttp "github.com/equinor/radix-common/net/http" - v1 "github.com/equinor/radix-operator/pkg/apis/radix/v1" + radixv1 "github.com/equinor/radix-operator/pkg/apis/radix/v1" ) // PipelineNotFoundError Pipeline job not found @@ -18,16 +18,16 @@ func PipelineStepNotFoundError(appName, jobName, stepName string) error { } // JobHasInvalidConditionToRerunError Pipeline job cannot be rerun due to invalid condition -func JobHasInvalidConditionToRerunError(appName, jobName string, jobCondition v1.RadixJobCondition) error { +func JobHasInvalidConditionToRerunError(appName, jobName string, jobCondition radixv1.RadixJobCondition) error { return radixhttp.ValidationError("Radix Application Pipeline", fmt.Sprintf("only Failed or Stopped pipeline jobs can be rerun, the job %s for the app %s has status %s", appName, jobName, jobCondition)) } // JobAlreadyRequestedToStopError Pipeline job was already requested to stop func JobAlreadyRequestedToStopError(appName, jobName string) error { - return radixhttp.ValidationError("Radix Application Pipeline", fmt.Sprintf("job %s for the app %s is already requested to stop", appName, jobName)) + return radixhttp.ValidationError("Radix Application Pipeline", fmt.Sprintf("job %s for the app %s has being already requested to be stopped", appName, jobName)) } // JobHasInvalidConditionToStopError Pipeline job cannot be stopped due to invalid condition -func JobHasInvalidConditionToStopError(appName, jobName string, jobCondition v1.RadixJobCondition) error { +func JobHasInvalidConditionToStopError(appName, jobName string, jobCondition radixv1.RadixJobCondition) error { return radixhttp.ValidationError("Radix Application Pipeline", fmt.Sprintf("only not Failed or Stopped pipeline jobs can be stopped, the job %s for the app %s has status %s", appName, jobName, jobCondition)) }