Reuse expiration date of trial licenses (#30950)

* Retain the expiryDate for trial licenses

While updating the license signature to the new license spec retain
the trial license expiration date to that of the existing license.

Resolves #30882
This commit is contained in:
Ioannis Kakavas 2018-05-31 23:05:58 +03:00 committed by GitHub
parent cd0a375414
commit 3004b9eeec
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 7 additions and 6 deletions

View File

@ -61,10 +61,10 @@ public class StartupSelfGeneratedLicenseTask extends ClusterStateUpdateTask {
"]. Must be trial or basic.");
}
return updateWithLicense(currentState, type);
} else if (LicenseUtils.licenseNeedsExtended(currentLicensesMetaData.getLicense())) {
return extendBasic(currentState, currentLicensesMetaData);
} else if (LicenseUtils.signatureNeedsUpdate(currentLicensesMetaData.getLicense())) {
return updateLicenseSignature(currentState, currentLicensesMetaData);
} else if (LicenseUtils.licenseNeedsExtended(currentLicensesMetaData.getLicense())) {
return extendBasic(currentState, currentLicensesMetaData);
} else {
return currentState;
}
@ -75,11 +75,10 @@ public class StartupSelfGeneratedLicenseTask extends ClusterStateUpdateTask {
MetaData.Builder mdBuilder = MetaData.builder(currentState.metaData());
String type = license.type();
long issueDate = license.issueDate();
long expiryDate;
if ("basic".equals(type)) {
long expiryDate = license.expiryDate();
// extend the basic license expiration date if needed since extendBasic will not be called now
if ("basic".equals(type) && expiryDate != LicenseService.BASIC_SELF_GENERATED_LICENSE_EXPIRATION_MILLIS) {
expiryDate = LicenseService.BASIC_SELF_GENERATED_LICENSE_EXPIRATION_MILLIS;
} else {
expiryDate = issueDate + LicenseService.NON_BASIC_SELF_GENERATED_LICENSE_DURATION.getMillis();
}
License.Builder specBuilder = License.builder()
.uid(license.uid())
@ -92,6 +91,8 @@ public class StartupSelfGeneratedLicenseTask extends ClusterStateUpdateTask {
Version trialVersion = currentLicenseMetaData.getMostRecentTrialVersion();
LicensesMetaData newLicenseMetadata = new LicensesMetaData(selfGeneratedLicense, trialVersion);
mdBuilder.putCustom(LicensesMetaData.TYPE, newLicenseMetadata);
logger.info("Updating existing license to the new version.\n\nOld license:\n {}\n\n New license:\n{}",
license, newLicenseMetadata.getLicense());
return ClusterState.builder(currentState).metaData(mdBuilder).build();
}