aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@verizonmedia.com>2021-09-09 18:56:34 +0200
committerValerij Fredriksen <valerijf@verizonmedia.com>2021-09-09 21:41:11 +0200
commit2acd3ea90f5deeff9714ec556fba610f6b0e130c (patch)
tree623cbdbb4a5bc7de406467a078886104fea1c1a1 /controller-server
parent381fa00f92922e011442a1ac8510986d4a5f0f64 (diff)
Use byte[] instead
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageDiff.java10
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java4
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java6
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageDiffTest.java12
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ApplicationStoreMock.java12
5 files changed, 22 insertions, 22 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageDiff.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageDiff.java
index 6b106085b70..aa55326f7b7 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageDiff.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageDiff.java
@@ -22,17 +22,17 @@ import static com.yahoo.vespa.hosted.controller.application.pkg.ZipStreamReader.
*/
public class ApplicationPackageDiff {
- public static String diffAgainstEmpty(ApplicationPackage right) {
+ public static byte[] diffAgainstEmpty(ApplicationPackage right) {
byte[] emptyZip = new byte[]{80, 75, 5, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
return diff(new ApplicationPackage(emptyZip), right);
}
- public static String diff(ApplicationPackage left, ApplicationPackage right) {
+ public static byte[] diff(ApplicationPackage left, ApplicationPackage right) {
return diff(left, right, 10 << 20, 1 << 20, 10 << 20);
}
- static String diff(ApplicationPackage left, ApplicationPackage right, int maxFileSizeToDiff, int maxDiffSizePerFile, int maxTotalDiffSize) {
- if (Arrays.equals(left.zippedContent(), right.zippedContent())) return "No diff\n";
+ static byte[] diff(ApplicationPackage left, ApplicationPackage right, int maxFileSizeToDiff, int maxDiffSizePerFile, int maxTotalDiffSize) {
+ if (Arrays.equals(left.zippedContent(), right.zippedContent())) return "No diff\n".getBytes(StandardCharsets.UTF_8);
Map<String, ZipEntryWithContent> leftContents = readContents(left, maxFileSizeToDiff);
Map<String, ZipEntryWithContent> rightContents = readContents(right, maxFileSizeToDiff);
@@ -51,7 +51,7 @@ public class ApplicationPackageDiff {
.ifPresent(diff -> sb.append("--- ").append(file).append('\n').append(diff).append('\n'));
}
- return sb.length() == 0 ? "No diff\n" : sb.toString();
+ return (sb.length() == 0 ? "No diff\n" : sb.toString()).getBytes(StandardCharsets.UTF_8);
}
private static Optional<String> diff(Optional<ZipEntryWithContent> left, Optional<ZipEntryWithContent> right, int maxDiffSizePerFile) {
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java
index 007f79ed994..122db567a61 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java
@@ -440,7 +440,7 @@ public class JobController {
sourceUrl,
revision.map(SourceRevision::commit),
false));
- String diff = application.get().latestVersion()
+ byte[] diff = application.get().latestVersion()
.map(ApplicationVersion::buildNumber)
.flatMap(build -> build.isPresent() ? Optional.of(build.getAsLong()) : Optional.empty())
.flatMap(prevBuild -> controller.applications().applicationStore().find(id.tenant(), id.application(), prevBuild))
@@ -509,7 +509,7 @@ public class JobController {
ApplicationVersion version = ApplicationVersion.from(Optional.empty(), build, Optional.empty(), Optional.empty(),
Optional.empty(), Optional.empty(), Optional.empty(), true);
- String diff = lastRun.map(run -> run.versions().targetApplication())
+ byte[] diff = lastRun.map(run -> run.versions().targetApplication())
.map(prevVersion -> ApplicationPackageDiff.diff(new ApplicationPackage(controller.applications().applicationStore().get(deploymentId, prevVersion)), applicationPackage))
.orElseGet(() -> ApplicationPackageDiff.diffAgainstEmpty(applicationPackage));
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
index 73622e4ca4b..22bd3c9d062 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/restapi/application/ApplicationApiHandler.java
@@ -25,12 +25,12 @@ import com.yahoo.container.jdisc.HttpRequest;
import com.yahoo.container.jdisc.HttpResponse;
import com.yahoo.container.jdisc.LoggingRequestHandler;
import com.yahoo.io.IOUtils;
+import com.yahoo.restapi.ByteArrayResponse;
import com.yahoo.restapi.ErrorResponse;
import com.yahoo.restapi.MessageResponse;
import com.yahoo.restapi.Path;
import com.yahoo.restapi.ResourceResponse;
import com.yahoo.restapi.SlimeJsonResponse;
-import com.yahoo.restapi.StringResponse;
import com.yahoo.security.KeyUtils;
import com.yahoo.slime.Cursor;
import com.yahoo.slime.Inspector;
@@ -603,7 +603,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
private HttpResponse devApplicationPackageDiff(RunId runId) {
DeploymentId deploymentId = new DeploymentId(runId.application(), runId.job().type().zone(controller.system()));
return controller.applications().applicationStore().getDevDiff(deploymentId, runId.number())
- .map(StringResponse::new)
+ .map(ByteArrayResponse::new)
.orElseThrow(() -> new NotExistsException("No application package diff found for " + runId));
}
@@ -641,7 +641,7 @@ public class ApplicationApiHandler extends AuditLoggingRequestHandler {
private HttpResponse applicationPackageDiff(String tenant, String application, String number) {
TenantAndApplicationId tenantAndApplication = TenantAndApplicationId.from(tenant, application);
return controller.applications().applicationStore().getDiff(tenantAndApplication.tenant(), tenantAndApplication.application(), Long.parseLong(number))
- .map(StringResponse::new)
+ .map(ByteArrayResponse::new)
.orElseThrow(() -> new NotExistsException("No application package diff found for '" + tenantAndApplication + "' with build number " + number));
}
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageDiffTest.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageDiffTest.java
index 101ca42761d..b2aba721a6f 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageDiffTest.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageDiffTest.java
@@ -26,7 +26,7 @@ public class ApplicationPackageDiffTest {
@Test
public void no_diff() {
- assertEquals("No diff\n", diff(app1, app1));
+ assertEquals("No diff\n", new String(diff(app1, app1)));
}
@Test
@@ -42,7 +42,7 @@ public class ApplicationPackageDiffTest {
"@@ -1,0 +1,2 @@\n" +
"+ contents of the\n" +
"+ first file\n" +
- "\n", diffAgainstEmpty(app1));
+ "\n", new String(diffAgainstEmpty(app1)));
}
@Test
@@ -63,7 +63,7 @@ public class ApplicationPackageDiffTest {
"- contents of the\n" +
" first file\n" +
"+ after some changes\n" +
- "\n", diff(app1, app2));
+ "\n", new String(diff(app1, app2)));
}
@Test
@@ -78,7 +78,7 @@ public class ApplicationPackageDiffTest {
"\n" +
"--- file1\n" +
"Diff skipped: File too large (26B -> 53B)\n" +
- "\n", diff(app1, app2, 12, 1000, 1000));
+ "\n", new String(diff(app1, app2, 12, 1000, 1000)));
}
@Test
@@ -93,7 +93,7 @@ public class ApplicationPackageDiffTest {
"\n" +
"--- file1\n" +
"Diff skipped: Diff too large (96B)\n" +
- "\n", diff(app1, app2, 1000, 50, 1000));
+ "\n", new String(diff(app1, app2, 1000, 50, 1000)));
}
@Test
@@ -107,7 +107,7 @@ public class ApplicationPackageDiffTest {
"\n" +
"--- file1\n" +
"Diff skipped: Total diff size >20B)\n" +
- "\n", diff(app1, app2, 1000, 1000, 20));
+ "\n", new String(diff(app1, app2, 1000, 1000, 20)));
}
private static ApplicationPackage applicationPackage(Map<String, String> files) {
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ApplicationStoreMock.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ApplicationStoreMock.java
index c2dd04144ab..77ab9e7d17c 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ApplicationStoreMock.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/integration/ApplicationStoreMock.java
@@ -31,8 +31,8 @@ public class ApplicationStoreMock implements ApplicationStore {
private final Map<ApplicationId, Map<ApplicationVersion, byte[]>> store = new ConcurrentHashMap<>();
private final Map<DeploymentId, byte[]> devStore = new ConcurrentHashMap<>();
- private final Map<ApplicationId, Map<Long, String>> diffs = new ConcurrentHashMap<>();
- private final Map<DeploymentId, Map<Long, String>> devDiffs = new ConcurrentHashMap<>();
+ private final Map<ApplicationId, Map<Long, byte[]>> diffs = new ConcurrentHashMap<>();
+ private final Map<DeploymentId, Map<Long, byte[]>> devDiffs = new ConcurrentHashMap<>();
private final Map<ApplicationId, NavigableMap<Instant, byte[]>> meta = new ConcurrentHashMap<>();
private final Map<DeploymentId, NavigableMap<Instant, byte[]>> metaManual = new ConcurrentHashMap<>();
@@ -58,7 +58,7 @@ public class ApplicationStoreMock implements ApplicationStore {
}
@Override
- public Optional<String> getDiff(TenantName tenantName, ApplicationName applicationName, long buildNumber) {
+ public Optional<byte[]> getDiff(TenantName tenantName, ApplicationName applicationName, long buildNumber) {
return Optional.ofNullable(diffs.get(appId(tenantName, applicationName))).map(map -> map.get(buildNumber));
}
@@ -79,7 +79,7 @@ public class ApplicationStoreMock implements ApplicationStore {
}
@Override
- public void put(TenantName tenant, ApplicationName application, ApplicationVersion applicationVersion, byte[] applicationPackage, String diff) {
+ public void put(TenantName tenant, ApplicationName application, ApplicationVersion applicationVersion, byte[] applicationPackage, byte[] diff) {
store.computeIfAbsent(appId(tenant, application), __ -> new ConcurrentHashMap<>()).put(applicationVersion, applicationPackage);
applicationVersion.buildNumber().ifPresent(buildNumber ->
diffs.computeIfAbsent(appId(tenant, application), __ -> new ConcurrentHashMap<>()).put(buildNumber, diff));
@@ -119,7 +119,7 @@ public class ApplicationStoreMock implements ApplicationStore {
}
@Override
- public Optional<String> getDevDiff(DeploymentId deploymentId, long buildNumber) {
+ public Optional<byte[]> getDevDiff(DeploymentId deploymentId, long buildNumber) {
return Optional.ofNullable(devDiffs.get(deploymentId)).map(map -> map.get(buildNumber));
}
@@ -132,7 +132,7 @@ public class ApplicationStoreMock implements ApplicationStore {
}
@Override
- public void putDev(DeploymentId deploymentId, ApplicationVersion applicationVersion, byte[] applicationPackage, String diff) {
+ public void putDev(DeploymentId deploymentId, ApplicationVersion applicationVersion, byte[] applicationPackage, byte[] diff) {
devStore.put(deploymentId, applicationPackage);
applicationVersion.buildNumber().ifPresent(buildNumber ->
devDiffs.computeIfAbsent(deploymentId, __ -> new ConcurrentHashMap<>()).put(buildNumber, diff));