aboutsummaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionFactoryImpl.java4
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java35
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java9
4 files changed, 9 insertions, 41 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java
index b8093f52ebc..a57bfeda12e 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java
@@ -85,6 +85,8 @@ public abstract class Session {
}
void setApplicationPackageReference(FileReference applicationPackageReference) {
+ if (applicationPackageReference == null) throw new IllegalArgumentException(String.format(
+ "Null application package FileReference for tenant: %s, session: %d", tenant, sessionId));
zooKeeperClient.writeApplicationPackageReference(applicationPackageReference);
}
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionFactoryImpl.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionFactoryImpl.java
index 658b0513043..5397ad30fdc 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionFactoryImpl.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionFactoryImpl.java
@@ -134,7 +134,9 @@ public class SessionFactoryImpl implements SessionFactory, LocalSessionLoader {
LocalSession session = create(existingApp, existingApplicationId, activeSessionId, internalRedeploy, timeoutBudget);
// Note: Needs to be kept in sync with calls in SessionPreparer.writeStateToZooKeeper()
session.setApplicationId(existingApplicationId);
- if (distributeApplicationPackage.value()) session.setApplicationPackageReference(existingSession.getApplicationPackageReference());
+ if (distributeApplicationPackage.value() && existingSession.getApplicationPackageReference() != null) {
+ session.setApplicationPackageReference(existingSession.getApplicationPackageReference());
+ }
session.setVespaVersion(existingSession.getVespaVersion());
session.setDockerImageRepository(existingSession.getDockerImageRepository());
session.setAthenzDomain(existingSession.getAthenzDomain());
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
index 0211b00e128..e6dbae5a421 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
@@ -44,7 +44,6 @@ import com.yahoo.vespa.config.server.tenant.EndpointCertificateMetadataStore;
import com.yahoo.vespa.config.server.tenant.EndpointCertificateRetriever;
import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.flags.BooleanFlag;
-import com.yahoo.vespa.flags.FetchVector;
import com.yahoo.vespa.flags.FlagSource;
import com.yahoo.vespa.flags.Flags;
import org.xml.sax.SAXException;
@@ -81,7 +80,6 @@ public class SessionPreparer {
private final Zone zone;
private final SecretStore secretStore;
private final BooleanFlag distributeApplicationPackage;
- private final BooleanFlag unsetEndpoints;
@Inject
public SessionPreparer(ModelFactoryRegistry modelFactoryRegistry,
@@ -104,7 +102,6 @@ public class SessionPreparer {
this.zone = zone;
this.secretStore = secretStore;
this.distributeApplicationPackage = Flags.CONFIGSERVER_DISTRIBUTE_APPLICATION_PACKAGE.bindTo(flagSource);
- this.unsetEndpoints = Flags.CONFIGSERVER_UNSET_ENDPOINTS.bindTo(flagSource);
}
/**
@@ -120,10 +117,7 @@ public class SessionPreparer {
public ConfigChangeActions prepare(SessionContext context, DeployLogger logger, PrepareParams params,
Optional<ApplicationSet> currentActiveApplicationSet, Path tenantPath,
Instant now) {
- boolean allowUnsettingEndpoints = unsetEndpoints.with(FetchVector.Dimension.APPLICATION_ID, params.getApplicationId().serializedForm())
- .value();
- Preparation preparation = new Preparation(context, logger, params, currentActiveApplicationSet, tenantPath,
- allowUnsettingEndpoints);
+ Preparation preparation = new Preparation(context, logger, params, currentActiveApplicationSet, tenantPath);
// Note: Done before pre-processing, requires that to be done by users of the distributed package
var distributedApplicationPackage = preparation.distributeApplicationPackage();
@@ -135,11 +129,7 @@ public class SessionPreparer {
if ( ! params.isDryRun()) {
preparation.writeStateZK(distributedApplicationPackage);
preparation.writeEndpointCertificateMetadataZK();
- if (allowUnsettingEndpoints) {
- preparation.writeContainerEndpointsZK();
- } else {
- preparation.legacyWriteContainerEndpointsZK();
- }
+ preparation.writeContainerEndpointsZK();
preparation.writeApplicationRoles();
preparation.distribute();
}
@@ -187,8 +177,7 @@ public class SessionPreparer {
private final FileDistributionProvider fileDistributionProvider;
Preparation(SessionContext context, DeployLogger logger, PrepareParams params,
- Optional<ApplicationSet> currentActiveApplicationSet, Path tenantPath,
- boolean allowUnsettingEndpoints) {
+ Optional<ApplicationSet> currentActiveApplicationSet, Path tenantPath) {
this.context = context;
this.logger = logger;
this.params = params;
@@ -205,11 +194,7 @@ public class SessionPreparer {
endpointCertificateSecrets = endpointCertificateMetadata
.or(() -> endpointCertificateMetadataStore.readEndpointCertificateMetadata(applicationId))
.flatMap(endpointCertificateRetriever::readEndpointCertificateSecrets);
- if (allowUnsettingEndpoints) {
- this.containerEndpoints = readEndpointsIfNull(params.containerEndpoints());
- } else {
- this.containerEndpoints = getEndpoints(params.containerEndpoints());
- }
+ this.containerEndpoints = readEndpointsIfNull(params.containerEndpoints());
this.athenzDomain = params.athenzDomain();
this.applicationRolesStore = new ApplicationRolesStore(curator, tenantPath);
this.applicationRoles = params.applicationRoles()
@@ -311,12 +296,6 @@ public class SessionPreparer {
checkTimeout("write container endpoints to zookeeper");
}
- void legacyWriteContainerEndpointsZK() {
- if (!containerEndpoints.isEmpty()) {
- writeContainerEndpointsZK();
- }
- }
-
void writeApplicationRoles() {
applicationRoles.ifPresent(roles ->
applicationRolesStore.writeApplicationRoles(applicationId, roles));
@@ -340,12 +319,6 @@ public class SessionPreparer {
return List.copyOf(endpoints);
}
- private List<ContainerEndpoint> getEndpoints(List<ContainerEndpoint> endpoints) {
- if (endpoints == null || endpoints.isEmpty()) {
- endpoints = this.containerEndpointsCache.read(applicationId);
- }
- return List.copyOf(endpoints);
- }
}
private void writeStateToZooKeeper(SessionZooKeeperClient zooKeeperClient,
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java
index 7a2b10e88c8..d55bb35bfde 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java
@@ -252,15 +252,6 @@ public class SessionPreparerTest {
params = new PrepareParams.Builder().applicationId(applicationId).containerEndpoints("[]").build();
prepare(new File("src/test/resources/deploy/hosted-app"), params);
assertEquals(List.of(), readContainerEndpoints(applicationId));
-
- // Preparing with empty container endpoints keeps old value with feature flag turned off
- params = new PrepareParams.Builder().applicationId(applicationId).containerEndpoints(endpoints).build();
- prepare(new File("src/test/resources/deploy/hosted-app"), params);
- assertEquals(expected, readContainerEndpoints(applicationId));
- flagSource.withBooleanFlag(Flags.CONFIGSERVER_UNSET_ENDPOINTS.id(), false);
- params = new PrepareParams.Builder().applicationId(applicationId).containerEndpoints("[]").build();
- prepare(new File("src/test/resources/deploy/hosted-app"), params);
- assertEquals(expected, readContainerEndpoints(applicationId));
}
@Test