aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server/src/main
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2022-01-27 18:45:04 +0100
committerOla Aunrønning <olaa@verizonmedia.com>2022-01-27 19:09:46 +0100
commit68c1ce17f179e428d41de19e8a9b160d6f2288bc (patch)
tree0cded612b3f16717d447aad5a366f5d10974189d /controller-server/src/main
parent72e7534a3fdc7d4a535302ed77af37c7a0708086 (diff)
Keep one old version. Don't keep hash of entire package.
Diffstat (limited to 'controller-server/src/main')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java12
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackage.java4
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/JobController.java3
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java4
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/RunSerializer.java4
5 files changed, 14 insertions, 13 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
index f0c85e7eeb8..54027d93d77 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
@@ -453,9 +453,15 @@ public class ApplicationController {
.map(Deployment::applicationVersion)
.collect(Collectors.toSet());
- // Remove any version not deployed anywhere
- for (ApplicationVersion version : application.get().versions()) {
- if (!existingVersions.contains(version)) application = application.withoutVersion(version);
+ var oldVersions = application.get().versions()
+ .stream()
+ .filter(version -> !existingVersions.contains(version))
+ .sorted()
+ .collect(Collectors.toList());
+
+ // Remove any version not deployed anywhere - but keep one
+ for (int i = 0; i < oldVersions.size() - 1; i++) {
+ application = application.withoutVersion(oldVersions.get(i));
}
store(application);
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 2ffe7e3ddee..f5910f2a98e 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
@@ -221,9 +221,9 @@ public class ApplicationPackage {
// Hashes all files that require a deployment to be forwarded to configservers
private String calculateBundleHash() {
- Predicate<String> entryMatcher = name -> !name.contains(deploymentFile) && !name.contains(buildMetaFile);
+ Predicate<String> entryMatcher = name -> !name.endsWith(deploymentFile) && !name.endsWith(buildMetaFile);
SortedMap<String, Long> entryCRCs = ZipStreamReader.getEntryCRCs(new ByteArrayInputStream(zippedContent), entryMatcher);
- return Hashing.sha1().hashInt(entryCRCs.hashCode()).toString();
+ return String.valueOf(entryCRCs.hashCode());
}
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 fb722ab7193..1051df2cd1c 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,6 @@ public class JobController {
sourceUrl,
revision.map(SourceRevision::commit),
false,
- Optional.of(applicationPackage.hash()),
Optional.of(applicationPackage.bundleHash())));
byte[] diff = application.get().latestVersion()
.map(v -> v.buildNumber().getAsLong())
@@ -514,7 +513,7 @@ public class JobController {
long build = 1 + lastRun.map(run -> run.versions().targetApplication().buildNumber().orElse(0)).orElse(0L);
ApplicationVersion version = ApplicationVersion.from(Optional.empty(), build, Optional.empty(), Optional.empty(),
- Optional.empty(), Optional.empty(), Optional.empty(), true, Optional.empty(), Optional.empty());
+ Optional.empty(), Optional.empty(), Optional.empty(), true, Optional.empty());
byte[] diff = lastRun.map(run -> run.versions().targetApplication())
.map(prevVersion -> ApplicationPackageDiff.diff(new ApplicationPackage(controller.applications().applicationStore().get(deploymentId, prevVersion)), applicationPackage))
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java
index 8e117876b5a..8fc28588662 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/ApplicationSerializer.java
@@ -113,7 +113,6 @@ public class ApplicationSerializer {
private static final String compileVersionField = "compileVersion";
private static final String buildTimeField = "buildTime";
private static final String sourceUrlField = "sourceUrl";
- private static final String applicationHashField = "applicationHash";
private static final String bundleHashField = "bundleHash";
private static final String lastQueriedField = "lastQueried";
private static final String lastWrittenField = "lastWritten";
@@ -443,10 +442,9 @@ public class ApplicationSerializer {
Optional<String> sourceUrl = SlimeUtils.optionalString(object.field(sourceUrlField));
Optional<String> commit = SlimeUtils.optionalString(object.field(commitField));
boolean deployedDirectly = object.field(deployedDirectlyField).asBool();
- Optional<String> applicationPackageHash = SlimeUtils.optionalString(object.field(applicationHashField));
Optional<String> bundleHash = SlimeUtils.optionalString(object.field(bundleHashField));
- return new ApplicationVersion(sourceRevision, applicationBuildNumber, authorEmail, compileVersion, buildTime, sourceUrl, commit, deployedDirectly, applicationPackageHash, bundleHash);
+ return new ApplicationVersion(sourceRevision, applicationBuildNumber, authorEmail, compileVersion, buildTime, sourceUrl, commit, deployedDirectly, bundleHash);
}
private Optional<SourceRevision> sourceRevisionFromSlime(Inspector object) {
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/RunSerializer.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/RunSerializer.java
index 657625c812c..cd55b689c3c 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/RunSerializer.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/persistence/RunSerializer.java
@@ -96,7 +96,6 @@ class RunSerializer {
private static final String sourceUrlField = "sourceUrl";
private static final String buildField = "build";
private static final String sourceField = "source";
- private static final String applicationHashField = "applicationHash";
private static final String bundleHashField = "bundleHash";
private static final String lastTestRecordField = "lastTestRecord";
private static final String lastVespaLogTimestampField = "lastVespaLogTimestamp";
@@ -181,11 +180,10 @@ class RunSerializer {
Optional<String> sourceUrl = SlimeUtils.optionalString(versionObject.field(sourceUrlField));
Optional<String> commit = SlimeUtils.optionalString(versionObject.field(commitField));
boolean deployedDirectly = versionObject.field(deployedDirectlyField).asBool();
- Optional<String> applicationPackageHash = SlimeUtils.optionalString(versionObject.field(applicationHashField));
Optional<String> bundleHash = SlimeUtils.optionalString(versionObject.field(bundleHashField));
return new ApplicationVersion(source, OptionalLong.of(buildNumber), authorEmail,
- compileVersion, buildTime, sourceUrl, commit, deployedDirectly, applicationPackageHash, bundleHash);
+ compileVersion, buildTime, sourceUrl, commit, deployedDirectly, bundleHash);
}
// Don't change this — introduce a separate array instead.