warnIfLegacyServerpodWithMultipleInstances function
Future<void>
warnIfLegacyServerpodWithMultipleInstances({
- required Client cloudApiClient,
- required String projectId,
- required CommandLogger logger,
- required String? serverpodVersionConstraint,
When the project cannot resolve to Serverpod VersionConstants.serverpodMultiInstanceSafeMinVersion+ and the capsule is scaled beyond a single instance, logs a warning. Failures reading compute are ignored (debug log only).
Implementation
Future<void> warnIfLegacyServerpodWithMultipleInstances({
required final Client cloudApiClient,
required final String projectId,
required final CommandLogger logger,
required final String? serverpodVersionConstraint,
}) async {
if (!serverpodConstraintPrecludesMultiInstanceSafeRelease(
serverpodVersionConstraint,
)) {
return;
}
try {
final compute = await cloudApiClient.compute.readCompute(
cloudCapsuleId: projectId,
);
if (!computeUsesMoreThanOneInstance(compute)) {
return;
}
logger.warning(
'Multiple server instances are enabled, but your Serverpod constraint does not allow it. '
'Upgrade to Serverpod ${VersionConstants.serverpodMultiInstanceSafeMinVersion} '
'or later to reduce the risk of disruption during scaling and deployment.',
newParagraph: true,
);
} on Exception catch (e) {
logger.debug(
'Could not read compute configuration for legacy Serverpod scaling '
'warning: $e',
);
}
}