@@ -61,31 +61,20 @@ public void clusterStateProcessed(String source, ClusterState oldState, ClusterS
61
61
@ Override
62
62
public ClusterState execute (ClusterState currentState ) throws Exception {
63
63
XPackPlugin .checkReadyForXPackCustomMetadata (currentState );
64
- LicensesMetaData licensesMetaData = currentState .metaData ().custom (LicensesMetaData .TYPE );
65
- License currentLicense = LicensesMetaData .extractLicense (licensesMetaData );
66
- if (currentLicense == null || License .LicenseType .isBasic (currentLicense .type ()) == false ) {
67
- long issueDate = clock .millis ();
68
- MetaData .Builder mdBuilder = MetaData .builder (currentState .metaData ());
69
- License .Builder specBuilder = License .builder ()
70
- .uid (UUID .randomUUID ().toString ())
71
- .issuedTo (clusterName )
72
- .maxNodes (LicenseService .SELF_GENERATED_LICENSE_MAX_NODES )
73
- .issueDate (issueDate )
74
- .type (License .LicenseType .BASIC )
75
- .expiryDate (LicenseService .BASIC_SELF_GENERATED_LICENSE_EXPIRATION_MILLIS );
76
- License selfGeneratedLicense = SelfGeneratedLicense .create (specBuilder , currentState .nodes ());
64
+ LicensesMetaData currentLicensesMetaData = currentState .metaData ().custom (LicensesMetaData .TYPE );
65
+ License currentLicense = LicensesMetaData .extractLicense (currentLicensesMetaData );
66
+ if (shouldGenerateNewBasicLicense (currentLicense )) {
67
+ License selfGeneratedLicense = generateBasicLicense (currentState );
77
68
if (request .isAcknowledged () == false && currentLicense != null ) {
78
69
Map <String , String []> ackMessages = LicenseService .getAckMessages (selfGeneratedLicense , currentLicense );
79
70
if (ackMessages .isEmpty () == false ) {
80
71
this .ackMessages .set (ackMessages );
81
72
return currentState ;
82
73
}
83
74
}
84
- Version trialVersion = null ;
85
- if (licensesMetaData != null ) {
86
- trialVersion = licensesMetaData .getMostRecentTrialVersion ();
87
- }
75
+ Version trialVersion = currentLicensesMetaData != null ? currentLicensesMetaData .getMostRecentTrialVersion () : null ;
88
76
LicensesMetaData newLicensesMetaData = new LicensesMetaData (selfGeneratedLicense , trialVersion );
77
+ MetaData .Builder mdBuilder = MetaData .builder (currentState .metaData ());
89
78
mdBuilder .putCustom (LicensesMetaData .TYPE , newLicensesMetaData );
90
79
return ClusterState .builder (currentState ).metaData (mdBuilder ).build ();
91
80
} else {
@@ -98,4 +87,23 @@ public void onFailure(String source, @Nullable Exception e) {
98
87
logger .error (new ParameterizedMessage ("unexpected failure during [{}]" , source ), e );
99
88
listener .onFailure (e );
100
89
}
90
+
91
+ private boolean shouldGenerateNewBasicLicense (License currentLicense ) {
92
+ return currentLicense == null
93
+ || License .LicenseType .isBasic (currentLicense .type ()) == false
94
+ || LicenseService .SELF_GENERATED_LICENSE_MAX_NODES != currentLicense .maxNodes ()
95
+ || LicenseService .BASIC_SELF_GENERATED_LICENSE_EXPIRATION_MILLIS != currentLicense .expiryDate ();
96
+ }
97
+
98
+ private License generateBasicLicense (ClusterState currentState ) {
99
+ final License .Builder specBuilder = License .builder ()
100
+ .uid (UUID .randomUUID ().toString ())
101
+ .issuedTo (clusterName )
102
+ .maxNodes (LicenseService .SELF_GENERATED_LICENSE_MAX_NODES )
103
+ .issueDate (clock .millis ())
104
+ .type (License .LicenseType .BASIC )
105
+ .expiryDate (LicenseService .BASIC_SELF_GENERATED_LICENSE_EXPIRATION_MILLIS );
106
+
107
+ return SelfGeneratedLicense .create (specBuilder , currentState .nodes ());
108
+ }
101
109
}
0 commit comments