summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2022-02-24 04:04:41 +0100
committerJon Marius Venstad <venstad@gmail.com>2022-02-24 04:04:41 +0100
commitfabf174e6349de1faaf8b209d63bcb174edf0c46 (patch)
treeffcac4515b319133b7af74dc3562b963f8db1dda /controller-server
parent76885dd3a758e050faf0c3da95e18c7853dec991 (diff)
Include tests in versino hash
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackage.java6
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java3
-rw-r--r--controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java8
3 files changed, 10 insertions, 7 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackage.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackage.java
index 34e2f1350f0..8e0c029aeab 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackage.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackage.java
@@ -237,6 +237,12 @@ public class ApplicationPackage {
.hash().toString();
}
+ public static String calculateHash(byte[] bytes) {
+ return Hashing.sha1().newHasher()
+ .putBytes(bytes)
+ .hash().toString();
+ }
+
/** Maps normalized paths to cached content read from a zip archive. */
private static class ZipArchiveCache {
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 60c41ef520d..7f5d486820e 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
@@ -452,13 +452,14 @@ public class JobController {
Optional<ApplicationPackage> previousPackage = previousVersion.flatMap(previous -> controller.applications().applicationStore().find(id.tenant(), id.application(), previous.buildNumber().getAsLong()))
.map(ApplicationPackage::new);
long previousBuild = previousVersion.map(latestVersion -> latestVersion.buildNumber().getAsLong()).orElse(0L);
+ String packageHash = applicationPackage.bundleHash() + ApplicationPackage.calculateHash(testPackageBytes);
version.set(ApplicationVersion.from(revision, 1 + previousBuild, authorEmail,
applicationPackage.compileVersion(),
applicationPackage.buildTime(),
sourceUrl,
revision.map(SourceRevision::commit),
false,
- Optional.of(applicationPackage.bundleHash())));
+ Optional.of(packageHash)));
byte[] diff = previousPackage.map(previous -> ApplicationPackageDiff.diff(previous, applicationPackage))
.orElseGet(() -> ApplicationPackageDiff.diffAgainstEmpty(applicationPackage));
diff --git a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java
index 1e41421de53..a8c04c0c4fe 100644
--- a/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java
+++ b/controller-server/src/test/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentContext.java
@@ -272,17 +272,13 @@ public class DeploymentContext {
/** Submit given application package for deployment */
public DeploymentContext submit(ApplicationPackage applicationPackage, Optional<SourceRevision> sourceRevision, long salt) {
- var buffer = new ByteArrayOutputStream();
- ZipStreamReader.transferAndWrite(buffer,
- new ByteArrayInputStream(applicationPackage.zippedContent()),
- "salt",
- new byte[]{ (byte) (salt >> 56), (byte) (salt >> 48), (byte) (salt >> 40), (byte) (salt >> 32), (byte) (salt >> 24), (byte) (salt >> 16), (byte) (salt >> 8), (byte) salt });
var projectId = tester.controller().applications()
.requireApplication(applicationId)
.projectId()
.orElse(1000); // These are really set through submission, so just pick one if it hasn't been set.
+ var testerpackage = new byte[]{ (byte) (salt >> 56), (byte) (salt >> 48), (byte) (salt >> 40), (byte) (salt >> 32), (byte) (salt >> 24), (byte) (salt >> 16), (byte) (salt >> 8), (byte) salt };
lastSubmission = jobs.submit(applicationId, sourceRevision, Optional.of("a@b"), Optional.empty(),
- projectId, new ApplicationPackage(buffer.toByteArray()), new byte[0]);
+ projectId, applicationPackage, testerpackage);
return this;
}