Skip to content

Commit 314ecc9

Browse files
committed
support a list of uuids to migrate
1 parent d75d101 commit 314ecc9

File tree

5 files changed

+34
-20
lines changed

5 files changed

+34
-20
lines changed

src/main/java/com/redhat/labs/lodestar/resource/EngagementResource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public Response findAllEngagements(@Context UriInfo uriInfo, @QueryParam("pagina
8888
includeCommits);
8989
builder.entity(ePage.getEngagements());
9090
builder.links(ePage.getLinks(uriInfo.getAbsolutePathBuilder()));
91-
ePage.getHeaders().entrySet().stream().forEach(e -> builder.header(e.getKey(), e.getValue()));
91+
ePage.getHeaders().entrySet().forEach(e -> builder.header(e.getKey(), e.getValue()));
9292

9393
} else {
9494
builder.entity(engagementService.getAllEngagements(includeStatus, includeCommits));

src/main/java/com/redhat/labs/lodestar/resource/MigrationResource.java

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import javax.inject.Inject;
44
import javax.ws.rs.PUT;
55
import javax.ws.rs.Path;
6+
import javax.ws.rs.Produces;
67
import javax.ws.rs.QueryParam;
78
import javax.ws.rs.core.Response;
89

@@ -11,26 +12,37 @@
1112
import org.eclipse.microprofile.openapi.annotations.tags.Tag;
1213

1314
import com.redhat.labs.lodestar.service.MigrationService;
15+
import org.slf4j.Logger;
16+
import org.slf4j.LoggerFactory;
17+
18+
import java.util.List;
1419

1520
@Path("/api/migrate")
1621
@Tag(name = "Migration", description = "Migration services")
1722
public class MigrationResource {
23+
private static final Logger LOGGER = LoggerFactory.getLogger(MigrationResource.class);
1824

1925
@Inject
2026
MigrationService migrationService;
2127

2228
@PUT
2329
@Timed(name = "performedMigration", description = "How much time it takes to migrate", unit = MetricUnits.MILLISECONDS)
30+
@Produces("application/json")
2431
public Response migrate(@QueryParam(value = "participants") boolean migrateParticipants,
2532
@QueryParam("artifacts") boolean migrateArtifacts,
26-
@QueryParam("uuids") boolean migrateUuids,
33+
@QueryParam("projects") boolean migrateUuids,
2734
@QueryParam("hosting") boolean migrateHosting,
2835
@QueryParam("engagements") boolean migrateEngagements,
2936
@QueryParam("overwrite") boolean overwrite,
30-
@QueryParam("uuid") String uuid) {
31-
32-
migrationService.migrate(migrateUuids, migrateParticipants, migrateArtifacts, migrateHosting, migrateEngagements,
33-
overwrite, uuid);
37+
@QueryParam("uuids") List<String> uuids) {
38+
39+
try {
40+
migrationService.migrate(migrateUuids, migrateParticipants, migrateArtifacts, migrateHosting, migrateEngagements,
41+
overwrite, uuids);
42+
} catch (Exception ex) {
43+
LOGGER.error("Migration did not complete successfully", ex);
44+
return Response.status(Response.Status.BAD_REQUEST).entity("{ \"message\": \"Migration did not complete successfully\"}").build();
45+
}
3446

3547
return Response.ok().build();
3648

src/main/java/com/redhat/labs/lodestar/service/FileService.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,13 +52,11 @@ public Optional<File> createFile(Integer projectId, String filePath, File file)
5252
// create multiple files
5353
public boolean createFiles(Integer projectId, CommitMultiple commit) {
5454

55-
Response response = null;
56-
5755
// encode actions in commit
5856
commit.encodeActions();
5957

6058
// call gitlab api to commit
61-
response = gitLabService.commitMultipleFiles(projectId, commit);
59+
Response response = gitLabService.commitMultipleFiles(projectId, commit);
6260

6361
// decode actions in commit
6462
commit.decodeActions();
@@ -105,7 +103,7 @@ public Optional<File> deleteFile(Integer projectId, String filePath, String ref)
105103
// set branch
106104
file.setBranch(ref);
107105
// add commit message
108-
file.setCommitMessage(String.format("git api deleted file. {}", filePath));
106+
file.setCommitMessage(String.format("git api deleted file. %s", filePath));
109107

110108
gitLabService.deleteFile(projectId, filePath, file);
111109
}

src/main/java/com/redhat/labs/lodestar/service/MigrationService.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ public class MigrationService {
5858
* engagements that haven't been migrated.
5959
*/
6060
public void migrate(boolean migrateUuids, boolean migrateParticipants, boolean migrateArtifacts, boolean migrateHosting,
61-
boolean migrateEngagements, boolean overwrite, String uuid) {
61+
boolean migrateEngagements, boolean overwrite, List<String> uuids) {
6262
LOGGER.debug("uuids {} participants {} artifacts {} hosting {} engagements {} overwrite {} uuid {}", migrateUuids,
63-
migrateParticipants, migrateArtifacts, migrateHosting, migrateEngagements, overwrite, uuid);
63+
migrateParticipants, migrateArtifacts, migrateHosting, migrateEngagements, overwrite, uuids.size());
6464

6565
getAllEngagements(); //hydrate before stream
6666

@@ -71,16 +71,20 @@ public void migrate(boolean migrateUuids, boolean migrateParticipants, boolean m
7171
}
7272

7373
LOGGER.info("Start Migrate content");
74-
migrateAll(migrateParticipants, migrateArtifacts, migrateHosting, migrateEngagements, overwrite, uuid);
74+
migrateAll(migrateParticipants, migrateArtifacts, migrateHosting, migrateEngagements, overwrite, uuids);
7575
LOGGER.info("End Migrate content");
7676

7777
}
7878

7979
private void migrateAll(boolean migrateParticipants, boolean migrateArtifacts, boolean migrateHosting,
80-
boolean migrateEngagements, boolean overwrite, String uuid ) {
81-
getAllEngagements().values().forEach(e -> {
82-
LOGGER.debug("Migrating {}", e.getUuid());
83-
if(uuid == null || e.getUuid().equals(uuid)) {
80+
boolean migrateEngagements, boolean overwrite, List<String> uuids ) {
81+
int counter = 0;
82+
for(Engagement e : getAllEngagements().values()) {
83+
84+
if(uuids.isEmpty() || uuids.contains(e.getUuid())) {
85+
counter++;
86+
LOGGER.debug("Migrating ({}) {}", counter, e.getUuid());
87+
8488
List<Action> actions = new ArrayList<>();
8589
String content;
8690
if(migrateEngagements) {
@@ -112,7 +116,7 @@ private void migrateAll(boolean migrateParticipants, boolean migrateArtifacts, b
112116
fileService.createFiles(e.getProjectId(), commit);
113117
}
114118
}
115-
});
119+
}
116120
}
117121

118122
/**

src/test/java/com/redhat/labs/lodestar/service/MigrationServiceTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -87,12 +87,12 @@ public static void setup() {
8787
@Test
8888
void migrate() {
8989
migrationService.migrate(false, false, false, false, false,
90-
false, null);
90+
false, Collections.emptyList());
9191

9292
Mockito.verify(projectServiceMock, Mockito.never()).updateProject(Mockito.any());
9393
Mockito.verify(fileServiceMock, Mockito.never()).createFile(Mockito.anyInt(), Mockito.eq("engagement/participants.json"), Mockito.any(File.class));
9494

95-
migrationService.migrate(true, true, true, true, true, false, null);
95+
migrationService.migrate(true, true, true, true, true, false, Collections.emptyList());
9696

9797
Mockito.verify(projectServiceMock, Mockito.times(2)).updateProject(Mockito.any());
9898
Mockito.verify(fileServiceMock, Mockito.times(3)).createFiles(Mockito.anyInt(), Mockito.any(CommitMultiple.class));

0 commit comments

Comments
 (0)