diff options
| author | Simon Rettberg | 2026-04-15 15:26:58 +0200 |
|---|---|---|
| committer | Simon Rettberg | 2026-04-15 15:26:58 +0200 |
| commit | d6d57d274177c77b593bde73e194cf3147b047f3 (patch) | |
| tree | 17495ded2505ac9b5e8e81f78f410a510d307886 /dozentenmodulserver/src/main/java | |
| parent | [cliet] Fix NPE (diff) | |
| download | tutor-module-d6d57d274177c77b593bde73e194cf3147b047f3.tar.gz tutor-module-d6d57d274177c77b593bde73e194cf3147b047f3.tar.xz tutor-module-d6d57d274177c77b593bde73e194cf3147b047f3.zip | |
[server] Return image uuid for cow copy mode
Diffstat (limited to 'dozentenmodulserver/src/main/java')
| -rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/cow/CowFinalizer.java | 7 | ||||
| -rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/cow/CowSession.java | 13 |
2 files changed, 15 insertions, 5 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/cow/CowFinalizer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/cow/CowFinalizer.java index 67f38634..9cb1788c 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/cow/CowFinalizer.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/cow/CowFinalizer.java @@ -47,6 +47,8 @@ public class CowFinalizer { private int progressPercent; + private String imageBaseId; + private CowSession cowSession; public CowFinalizer(CowSessionData data, CowSession cowSession) { @@ -71,6 +73,10 @@ public class CowFinalizer { public int progressPercent() { return this.progressPercent; } + + public String imageBaseId() { + return this.imageBaseId; + } public String getError() { return this.error; @@ -187,6 +193,7 @@ public class CowFinalizer { } baseId = DbImage.createImage(data.owner, ibw.imageName); DbImage.updateImageMetadata(null, baseId, ibw); + CowFinalizer.this.imageBaseId = baseId; } DbImage.createImageVersion(baseId, uuid, data.owner, data.newFileSize(), relPath, new ImageVersionWrite(data.restricted), hashesDone ? chunks : null, diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/cow/CowSession.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/cow/CowSession.java index fdcea27b..ad2b1834 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/cow/CowSession.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/cow/CowSession.java @@ -177,6 +177,8 @@ public class CowSession { if (finalizer != null) { ret.tasks.add(new ProgressItem("Hashing modified image", finalizer.progressPercent(), finalizer.getError())); + // This is set if this is a COPY operation and the final image meta data has been written + ret.imageBaseId = finalizer.imageBaseId(); } ret.state = this.status.name(); return Json.serialize(ret); @@ -366,12 +368,11 @@ public class CowSession { if (estimatedSpeedKbs > 0) { delay = (int) ((missing / 1000) / estimatedSpeedKbs); } - if (delay < 1) { - delay = 1; + if (delay > 10) { + LOGGER.info("Throttling client - Missing: " + Util.formatBytes(missing) + ", Speed: " + + Util.formatBytes(estimatedSpeedKbs * 1000) + "/s, Wait: " + delay); } - LOGGER.info("Throttling client - Missing: " + Util.formatBytes(missing) + ", Speed: " - + Util.formatBytes(estimatedSpeedKbs * 1000) + "/s, Wait: " + delay); - return delay; + return delay + 2; // Add some extra margin } try { destinationFile.seek(filePos); @@ -489,6 +490,8 @@ public class CowSession { @SuppressWarnings("unused") String state; List<ProgressItem> tasks = new ArrayList<>(); + @SuppressWarnings("unused") + String imageBaseId; } } |
