]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-18850 remove usage main branch project UUID in ce task
authorLéo Geoffroy <leo.geoffroy@sonarsource.com>
Mon, 3 Apr 2023 07:35:11 +0000 (09:35 +0200)
committersonartech <sonartech@sonarsource.com>
Tue, 4 Apr 2023 20:03:16 +0000 (20:03 +0000)
server/sonar-ce-common/src/it/java/org/sonar/ce/queue/CeQueueImplIT.java
server/sonar-ce-common/src/main/java/org/sonar/ce/queue/CeTaskSubmit.java
server/sonar-ce/src/it/java/org/sonar/ce/queue/InternalCeQueueImplIT.java
server/sonar-webserver-webapi/src/it/java/org/sonar/server/ce/ws/CancelActionIT.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/ce/projectdump/ExportSubmitterImpl.java
server/sonar-webserver-webapi/src/main/java/org/sonar/server/ce/queue/ReportSubmitter.java

index e2bf5ee90b5d3731e4a28498a102bc4163a461b8..296cf5486295a36e6f4eb189085b60e157d9ecf3 100644 (file)
@@ -92,7 +92,7 @@ public class CeQueueImplIT {
   @Test
   public void submit_populates_component_name_and_key_of_CeTask_if_component_exists() {
     ComponentDto componentDto = insertComponent(ComponentTesting.newPrivateProjectDto("PROJECT_1"));
-    CeTaskSubmit taskSubmit = createTaskSubmit(CeTaskTypes.REPORT, Component.fromDto(componentDto), null);
+    CeTaskSubmit taskSubmit = createTaskSubmit(CeTaskTypes.REPORT, Component.fromDto(componentDto.uuid(), componentDto.uuid()), null);
 
     CeTask task = underTest.submit(taskSubmit);
 
@@ -227,7 +227,7 @@ public class CeQueueImplIT {
   @Test
   public void massSubmit_populates_component_name_and_key_of_CeTask_if_project_exists() {
     ComponentDto componentDto1 = insertComponent(ComponentTesting.newPrivateProjectDto("PROJECT_1"));
-    CeTaskSubmit taskSubmit1 = createTaskSubmit(CeTaskTypes.REPORT, Component.fromDto(componentDto1), null);
+    CeTaskSubmit taskSubmit1 = createTaskSubmit(CeTaskTypes.REPORT, Component.fromDto(componentDto1.uuid(), componentDto1.uuid()), null);
     CeTaskSubmit taskSubmit2 = createTaskSubmit("something", newComponent(randomAlphabetic(12)), null);
 
     List<CeTask> tasks = underTest.massSubmit(asList(taskSubmit1, taskSubmit2));
@@ -242,8 +242,8 @@ public class CeQueueImplIT {
     ComponentDto project = insertComponent(ComponentTesting.newPrivateProjectDto("PROJECT_1"));
     ComponentDto branch1 = db.components().insertProjectBranch(project);
     ComponentDto branch2 = db.components().insertProjectBranch(project);
-    CeTaskSubmit taskSubmit1 = createTaskSubmit(CeTaskTypes.REPORT, Component.fromDto(branch1), null);
-    CeTaskSubmit taskSubmit2 = createTaskSubmit("something", Component.fromDto(branch2), null);
+    CeTaskSubmit taskSubmit1 = createTaskSubmit(CeTaskTypes.REPORT, Component.fromDto(branch1.uuid(), project.uuid()), null);
+    CeTaskSubmit taskSubmit2 = createTaskSubmit("something", Component.fromDto(branch2.uuid(), project.uuid()), null);
 
     List<CeTask> tasks = underTest.massSubmit(asList(taskSubmit1, taskSubmit2));
 
index b950b1305736d88363e2135f9f1872f3364d94b7..dcfc17b554506dba9c3800414a2b7faee2be332e 100644 (file)
@@ -126,9 +126,8 @@ public final class CeTaskSubmit {
       this.mainComponentUuid = requireNonNull(nullToEmpty(mainComponentUuid), "mainComponentUuid can't be null");
     }
 
-    public static Component fromDto(ComponentDto dto) {
-      String uuid = dto.uuid();
-      return new Component(uuid, firstNonNull(dto.getMainBranchProjectUuid(), uuid));
+    public static Component fromDto(String componentUuid, String mainComponentUuid) {
+      return new Component(componentUuid, mainComponentUuid);
     }
 
     public static Component fromDto(ProjectDto dto) {
index fdf5b58d390209061d55905df968643fa6ffbd43..01d31b788040ba24b1fa94390886238032803b09 100644 (file)
@@ -96,7 +96,8 @@ public class InternalCeQueueImplIT {
 
   @Test
   public void submit_returns_task_populated_from_CeTaskSubmit_and_creates_CeQueue_row() {
-    CeTaskSubmit taskSubmit = createTaskSubmit(CeTaskTypes.REPORT, newProjectDto("PROJECT_1"), "rob");
+    ComponentDto project1 = newProjectDto("PROJECT_1");
+    CeTaskSubmit taskSubmit = createTaskSubmit(CeTaskTypes.REPORT, project1, project1, "rob");
     CeTask task = underTest.submit(taskSubmit);
     UserDto userDto = db.getDbClient().userDao().selectByUuid(db.getSession(), taskSubmit.getSubmitterUuid());
     verifyCeTask(taskSubmit, task, null, userDto);
@@ -106,7 +107,7 @@ public class InternalCeQueueImplIT {
   @Test
   public void submit_populates_component_name_and_key_of_CeTask_if_component_exists() {
     ComponentDto componentDto = insertComponent(newProjectDto("PROJECT_1"));
-    CeTaskSubmit taskSubmit = createTaskSubmit(CeTaskTypes.REPORT, componentDto, null);
+    CeTaskSubmit taskSubmit = createTaskSubmit(CeTaskTypes.REPORT, componentDto, componentDto, null);
 
     CeTask task = underTest.submit(taskSubmit);
 
@@ -124,7 +125,8 @@ public class InternalCeQueueImplIT {
 
   @Test
   public void massSubmit_returns_tasks_for_each_CeTaskSubmit_populated_from_CeTaskSubmit_and_creates_CeQueue_row_for_each() {
-    CeTaskSubmit taskSubmit1 = createTaskSubmit(CeTaskTypes.REPORT, newProjectDto("PROJECT_1"), "rob");
+    ComponentDto project1 = newProjectDto("PROJECT_1");
+    CeTaskSubmit taskSubmit1 = createTaskSubmit(CeTaskTypes.REPORT, project1, project1, "rob");
     CeTaskSubmit taskSubmit2 = createTaskSubmit("some type");
 
     List<CeTask> tasks = underTest.massSubmit(asList(taskSubmit1, taskSubmit2));
@@ -140,8 +142,9 @@ public class InternalCeQueueImplIT {
   @Test
   public void massSubmit_populates_component_name_and_key_of_CeTask_if_component_exists() {
     ComponentDto componentDto1 = insertComponent(newProjectDto("PROJECT_1"));
-    CeTaskSubmit taskSubmit1 = createTaskSubmit(CeTaskTypes.REPORT, componentDto1, null);
-    CeTaskSubmit taskSubmit2 = createTaskSubmit("something", newProjectDto("non existing component uuid"), null);
+    CeTaskSubmit taskSubmit1 = createTaskSubmit(CeTaskTypes.REPORT, componentDto1, componentDto1, null);
+    ComponentDto nonExistingComponent = newProjectDto("non existing component uuid");
+    CeTaskSubmit taskSubmit2 = createTaskSubmit("something", nonExistingComponent, nonExistingComponent, null);
 
     List<CeTask> tasks = underTest.massSubmit(asList(taskSubmit1, taskSubmit2));
 
@@ -384,7 +387,7 @@ public class InternalCeQueueImplIT {
   public void peek_populates_name_and_key_for_existing_component_and_main_component() {
     ComponentDto project = db.components().insertPrivateProject();
     ComponentDto branch = db.components().insertProjectBranch(project);
-    CeTask task = submit(CeTaskTypes.REPORT, branch);
+    CeTask task = submit(CeTaskTypes.REPORT, project, branch);
 
     Optional<CeTask> peek = underTest.peek(WORKER_UUID_1, true);
     assertThat(peek).isPresent();
@@ -686,21 +689,26 @@ public class InternalCeQueueImplIT {
     return ComponentTesting.newPublicProjectDto(uuid).setName("name_" + uuid).setKey("key_" + uuid);
   }
 
-  private CeTask submit(String reportType, ComponentDto componentDto) {
-    return underTest.submit(createTaskSubmit(reportType, componentDto, null));
+  private CeTask submit(String reportType, ComponentDto mainBranchComponent) {
+    return underTest.submit(createTaskSubmit(reportType, mainBranchComponent, mainBranchComponent, null));
+  }
+
+  private CeTask submit(String reportType, ComponentDto mainBranchComponent, ComponentDto branchComponent) {
+    return underTest.submit(createTaskSubmit(reportType, mainBranchComponent, branchComponent, null));
   }
 
   private CeTaskSubmit createTaskSubmit(String type) {
-    return createTaskSubmit(type, null, null);
+    return createTaskSubmit(type, null, null, null);
   }
 
-  private CeTaskSubmit createTaskSubmit(String type, @Nullable ComponentDto componentDto, @Nullable String submitterUuid) {
+  private CeTaskSubmit createTaskSubmit(String type, @Nullable ComponentDto mainBranchComponentDto, @Nullable ComponentDto componentDto,
+    @Nullable String submitterUuid) {
     CeTaskSubmit.Builder builder = underTest.prepareSubmit()
       .setType(type)
       .setSubmitterUuid(submitterUuid)
       .setCharacteristics(emptyMap());
-    if (componentDto != null) {
-      builder.setComponent(CeTaskSubmit.Component.fromDto(componentDto));
+    if (componentDto != null && mainBranchComponentDto != null) {
+      builder.setComponent(CeTaskSubmit.Component.fromDto(componentDto.uuid(), mainBranchComponentDto.uuid()));
     }
     return builder.build();
   }
index 34300d161c25e72e87b1024a5640450566e6b1da..77b4a274191f6bc6671b40642f543371c75c60be 100644 (file)
@@ -178,13 +178,13 @@ public class CancelActionIT {
     userSession.logIn().setSystemAdministrator();
   }
 
-  private CeQueueDto createTaskSubmit(@Nullable ComponentDto componentDto) {
+  private CeQueueDto createTaskSubmit(@Nullable ComponentDto mainBranchComponent) {
     CeTaskSubmit.Builder submission = queue.prepareSubmit()
       .setType(CeTaskTypes.REPORT)
       .setSubmitterUuid(null)
       .setCharacteristics(emptyMap());
-    if (componentDto != null) {
-      submission.setComponent(CeTaskSubmit.Component.fromDto(componentDto));
+    if (mainBranchComponent != null) {
+      submission.setComponent(CeTaskSubmit.Component.fromDto(mainBranchComponent.uuid(), mainBranchComponent.uuid()));
     }
     CeTask task = queue.submit(submission.build());
     return db.getDbClient().ceQueueDao().selectByUuid(db.getSession(), task.getUuid()).get();
index 10fd0d126728156e508dd809e9b29e7d7be47684..99e37b6d9ed468c1703c905b1d6d6d2a9c6f6cda 100644 (file)
@@ -48,11 +48,11 @@ public class ExportSubmitterImpl implements ExportSubmitter {
     requireNonNull(projectKey, "Project key can not be null");
 
     try (DbSession dbSession = dbClient.openSession(false)) {
-      Optional<ComponentDto> project = dbClient.componentDao().selectByKey(dbSession, projectKey);
-      checkArgument(project.isPresent(), "Project with key [%s] does not exist", projectKey);
+      Optional<ComponentDto> mainBranch = dbClient.componentDao().selectByKey(dbSession, projectKey);
+      checkArgument(mainBranch.isPresent(), "Project with key [%s] does not exist", projectKey);
 
       CeTaskSubmit submit = ceQueue.prepareSubmit()
-        .setComponent(fromDto(project.get()))
+        .setComponent(fromDto(mainBranch.get().uuid(), mainBranch.get().uuid()))
         .setType(CeTaskTypes.PROJECT_EXPORT)
         .setSubmitterUuid(submitterUuid)
         .setCharacteristics(emptyMap())
index 8577c3f248e7930cd6062899ae4ce66dc7237760..924ab2f0de684e640a268105ca79e6060c23adad 100644 (file)
@@ -110,7 +110,7 @@ public class ReportSubmitter {
       }
 
       checkScanPermission(branchComponent);
-      return submitReport(dbSession, reportInput, branchComponent, characteristics);
+      return submitReport(dbSession, reportInput, branchComponent, mainBranch, characteristics);
     }
   }
 
@@ -175,15 +175,14 @@ public class ReportSubmitter {
     return projectDefaultVisibility.get(dbSession);
   }
 
-  private CeTask submitReport(DbSession dbSession, InputStream reportInput, ComponentDto project, Map<String, String> characteristics) {
+  private CeTask submitReport(DbSession dbSession, InputStream reportInput, ComponentDto branch, BranchDto mainBranch, Map<String, String> characteristics) {
     CeTaskSubmit.Builder submit = queue.prepareSubmit();
 
     // the report file must be saved before submitting the task
     dbClient.ceTaskInputDao().insert(dbSession, submit.getUuid(), reportInput);
     dbSession.commit();
-
     submit.setType(CeTaskTypes.REPORT);
-    submit.setComponent(CeTaskSubmit.Component.fromDto(project));
+    submit.setComponent(CeTaskSubmit.Component.fromDto(branch.uuid(), mainBranch.getUuid()));
     submit.setSubmitterUuid(userSession.getUuid());
     submit.setCharacteristics(characteristics);
     return queue.submit(submit.build());