remove trial package
Original commit: elastic/x-pack-elasticsearch@0b194a31a1
This commit is contained in:
parent
c5c6de5864
commit
93607c8403
|
@ -1,88 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
||||||
* or more contributor license agreements. Licensed under the Elastic License;
|
|
||||||
* you may not use this file except in compliance with the Elastic License.
|
|
||||||
*/
|
|
||||||
package org.elasticsearch.license.plugin.core.trial;
|
|
||||||
|
|
||||||
import org.apache.commons.codec.binary.Base64;
|
|
||||||
import org.elasticsearch.license.core.LicensesCharset;
|
|
||||||
|
|
||||||
import java.nio.ByteBuffer;
|
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
import static org.elasticsearch.license.plugin.core.trial.TrialLicensesBuilder.trialLicensesBuilder;
|
|
||||||
|
|
||||||
public class TrialLicenseUtils {
|
|
||||||
|
|
||||||
public static TrialLicenses.TrialLicense fromEncodedTrialLicense(String encodedTrialLicense) {
|
|
||||||
byte[] encodedBytes = Base64.decodeBase64(encodedTrialLicense);
|
|
||||||
ByteBuffer byteBuffer = ByteBuffer.wrap(encodedBytes);
|
|
||||||
|
|
||||||
int uidLen = byteBuffer.getInt();
|
|
||||||
byte[] uidBytes = new byte[uidLen];
|
|
||||||
byteBuffer.get(uidBytes);
|
|
||||||
String uid = new String(uidBytes, LicensesCharset.UTF_8);
|
|
||||||
|
|
||||||
int issuedToLen = byteBuffer.getInt();
|
|
||||||
byte[] issuedToBytes = new byte[issuedToLen];
|
|
||||||
byteBuffer.get(issuedToBytes);
|
|
||||||
String issuedTo = new String(issuedToBytes, LicensesCharset.UTF_8);
|
|
||||||
|
|
||||||
int featureLen = byteBuffer.getInt();
|
|
||||||
byte[] featureBytes = new byte[featureLen];
|
|
||||||
byteBuffer.get(featureBytes);
|
|
||||||
String feature = new String(featureBytes, LicensesCharset.UTF_8);
|
|
||||||
|
|
||||||
int maxNodes = byteBuffer.getInt();
|
|
||||||
long issueDate = byteBuffer.getLong();
|
|
||||||
long expiryDate = byteBuffer.getLong();
|
|
||||||
|
|
||||||
return TrialLicensesBuilder.trialLicenseBuilder()
|
|
||||||
.uid(uid)
|
|
||||||
.issuedTo(issuedTo)
|
|
||||||
.feature(feature)
|
|
||||||
.maxNodes(maxNodes)
|
|
||||||
.issueDate(issueDate)
|
|
||||||
.expiryDate(expiryDate)
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static String toEncodedTrialLicense(TrialLicenses.TrialLicense trialLicense) {
|
|
||||||
byte[] uidBytes = trialLicense.uid().getBytes(LicensesCharset.UTF_8);
|
|
||||||
byte[] featureBytes = trialLicense.feature().getBytes(LicensesCharset.UTF_8);
|
|
||||||
byte[] issuedToBytes = trialLicense.issuedTo().getBytes(LicensesCharset.UTF_8);
|
|
||||||
|
|
||||||
// uid len + uid bytes + issuedTo len + issuedTo bytes + feature bytes length + feature bytes + maxNodes + issueDate + expiryDate
|
|
||||||
int len = 4 + uidBytes.length + 4 + issuedToBytes.length + 4 + featureBytes.length + 4 + 8 + 8;
|
|
||||||
final byte[] encodedLicense = new byte[len];
|
|
||||||
ByteBuffer byteBuffer = ByteBuffer.wrap(encodedLicense);
|
|
||||||
|
|
||||||
byteBuffer.putInt(uidBytes.length);
|
|
||||||
byteBuffer.put(uidBytes);
|
|
||||||
|
|
||||||
byteBuffer.putInt(issuedToBytes.length);
|
|
||||||
byteBuffer.put(issuedToBytes);
|
|
||||||
|
|
||||||
byteBuffer.putInt(featureBytes.length);
|
|
||||||
byteBuffer.put(featureBytes);
|
|
||||||
|
|
||||||
byteBuffer.putInt(trialLicense.maxNodes());
|
|
||||||
byteBuffer.putLong(trialLicense.issueDate());
|
|
||||||
byteBuffer.putLong(trialLicense.expiryDate());
|
|
||||||
|
|
||||||
return Base64.encodeBase64String(encodedLicense);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TrialLicenses fromEncodedTrialLicenses(String[] encodedTrialLicenses) {
|
|
||||||
final TrialLicensesBuilder trialLicensesBuilder = trialLicensesBuilder();
|
|
||||||
for (String encodedTrialLicense : encodedTrialLicenses) {
|
|
||||||
trialLicensesBuilder.license(fromEncodedTrialLicense(encodedTrialLicense));
|
|
||||||
}
|
|
||||||
return trialLicensesBuilder.build();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TrialLicenses fromEncodedTrialLicenses(Set<String> encodedTrialLicenses) {
|
|
||||||
return fromEncodedTrialLicenses(encodedTrialLicenses.toArray(new String[encodedTrialLicenses.size()]));
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,31 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
||||||
* or more contributor license agreements. Licensed under the Elastic License;
|
|
||||||
* you may not use this file except in compliance with the Elastic License.
|
|
||||||
*/
|
|
||||||
package org.elasticsearch.license.plugin.core.trial;
|
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
|
|
||||||
public interface TrialLicenses extends Iterable<TrialLicenses.TrialLicense> {
|
|
||||||
|
|
||||||
public Collection<TrialLicense> trialLicenses();
|
|
||||||
|
|
||||||
public TrialLicense getTrialLicense(String feature);
|
|
||||||
|
|
||||||
public interface TrialLicense {
|
|
||||||
|
|
||||||
public String issuedTo();
|
|
||||||
|
|
||||||
public String feature();
|
|
||||||
|
|
||||||
public long issueDate();
|
|
||||||
|
|
||||||
public long expiryDate();
|
|
||||||
|
|
||||||
public int maxNodes();
|
|
||||||
|
|
||||||
public String uid();
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,203 +0,0 @@
|
||||||
/*
|
|
||||||
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
|
||||||
* or more contributor license agreements. Licensed under the Elastic License;
|
|
||||||
* you may not use this file except in compliance with the Elastic License.
|
|
||||||
*/
|
|
||||||
package org.elasticsearch.license.plugin.core.trial;
|
|
||||||
|
|
||||||
import org.elasticsearch.common.collect.ImmutableMap;
|
|
||||||
import org.elasticsearch.common.unit.TimeValue;
|
|
||||||
import org.elasticsearch.license.core.DateUtils;
|
|
||||||
import org.elasticsearch.license.core.ESLicense;
|
|
||||||
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import static org.elasticsearch.license.plugin.core.trial.TrialLicenses.TrialLicense;
|
|
||||||
|
|
||||||
public class TrialLicensesBuilder {
|
|
||||||
|
|
||||||
public static TrialLicenses EMPTY = trialLicensesBuilder().build();
|
|
||||||
|
|
||||||
public static final String ISSUER = "elasticsearch";
|
|
||||||
|
|
||||||
public static final ESLicense.Type TYPE = ESLicense.Type.TRIAL;
|
|
||||||
|
|
||||||
public static final ESLicense.SubscriptionType SUBSCRIPTION_TYPE = ESLicense.SubscriptionType.NONE;
|
|
||||||
|
|
||||||
public static TrialLicensesBuilder trialLicensesBuilder() {
|
|
||||||
return new TrialLicensesBuilder();
|
|
||||||
}
|
|
||||||
|
|
||||||
public static TrialLicenseBuilder trialLicenseBuilder() {
|
|
||||||
return new TrialLicenseBuilder();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public static TrialLicenses merge(TrialLicenses trialLicenses, TrialLicenses mergeTrialLicenses) {
|
|
||||||
if (trialLicenses == null && mergeTrialLicenses == null) {
|
|
||||||
throw new IllegalArgumentException("both licenses can not be null");
|
|
||||||
} else if (trialLicenses == null) {
|
|
||||||
return mergeTrialLicenses;
|
|
||||||
} else if (mergeTrialLicenses == null) {
|
|
||||||
return trialLicenses;
|
|
||||||
} else {
|
|
||||||
return trialLicensesBuilder()
|
|
||||||
.licenses(trialLicenses.trialLicenses())
|
|
||||||
.licenses(mergeTrialLicenses.trialLicenses())
|
|
||||||
.build();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private final ImmutableMap.Builder<String, TrialLicense> licenseBuilder;
|
|
||||||
|
|
||||||
public TrialLicensesBuilder() {
|
|
||||||
licenseBuilder = ImmutableMap.builder();
|
|
||||||
}
|
|
||||||
|
|
||||||
public TrialLicensesBuilder license(TrialLicense trialLicense) {
|
|
||||||
licenseBuilder.put(trialLicense.feature(), trialLicense);
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TrialLicensesBuilder licenses(TrialLicenses trialLicenses) {
|
|
||||||
return licenses(trialLicenses.trialLicenses());
|
|
||||||
}
|
|
||||||
|
|
||||||
public TrialLicensesBuilder licenses(Collection<TrialLicense> trialLicenses) {
|
|
||||||
for (TrialLicense trialLicense : trialLicenses) {
|
|
||||||
license(trialLicense);
|
|
||||||
}
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TrialLicenses build() {
|
|
||||||
final ImmutableMap<String, TrialLicense> licenseMap = licenseBuilder.build();
|
|
||||||
return new TrialLicenses() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Collection<TrialLicense> trialLicenses() {
|
|
||||||
return licenseMap.values();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public TrialLicense getTrialLicense(String feature) {
|
|
||||||
return licenseMap.get(feature);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Iterator<TrialLicense> iterator() {
|
|
||||||
return licenseMap.values().iterator();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class TrialLicenseBuilder {
|
|
||||||
private String featureType;
|
|
||||||
private long expiryDate = -1;
|
|
||||||
private long issueDate = -1;
|
|
||||||
private TimeValue duration;
|
|
||||||
private int maxNodes = -1;
|
|
||||||
private String uid = null;
|
|
||||||
private String issuedTo;
|
|
||||||
|
|
||||||
public TrialLicenseBuilder() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public TrialLicenseBuilder uid(String uid) {
|
|
||||||
this.uid = uid;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TrialLicenseBuilder issuedTo(String issuedTo) {
|
|
||||||
this.issuedTo = issuedTo;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TrialLicenseBuilder maxNodes(int maxNodes) {
|
|
||||||
this.maxNodes = maxNodes;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TrialLicenseBuilder feature(String featureType) {
|
|
||||||
this.featureType = featureType;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TrialLicenseBuilder issueDate(long issueDate) {
|
|
||||||
this.issueDate = issueDate;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TrialLicenseBuilder duration(TimeValue duration) {
|
|
||||||
this.duration = duration;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TrialLicenseBuilder expiryDate(long expiryDate) {
|
|
||||||
this.expiryDate = expiryDate;
|
|
||||||
return this;
|
|
||||||
}
|
|
||||||
|
|
||||||
public TrialLicense build() {
|
|
||||||
verify();
|
|
||||||
if (expiryDate == -1) {
|
|
||||||
expiryDate = issueDate + duration.millis();
|
|
||||||
}
|
|
||||||
if (uid == null) {
|
|
||||||
uid = UUID.randomUUID().toString();
|
|
||||||
}
|
|
||||||
return new TrialLicense() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String issuedTo() {
|
|
||||||
return issuedTo;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String feature() {
|
|
||||||
return featureType;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public long issueDate() {
|
|
||||||
return issueDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public long expiryDate() {
|
|
||||||
return expiryDate;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public int maxNodes() {
|
|
||||||
return maxNodes;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String uid() {
|
|
||||||
return uid;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
private void verify() {
|
|
||||||
String msg = null;
|
|
||||||
if (issuedTo == null) {
|
|
||||||
msg = "issuedTo has to be set";
|
|
||||||
} else if (featureType == null) {
|
|
||||||
msg = "feature has to be set";
|
|
||||||
} else if (issueDate == -1) {
|
|
||||||
msg = "issueDate has to be set";
|
|
||||||
} else if (duration == null && expiryDate == -1) {
|
|
||||||
msg = "duration or expiryDate has to be set";
|
|
||||||
} else if (maxNodes == -1) {
|
|
||||||
msg = "maxNodes has to be set";
|
|
||||||
}
|
|
||||||
if (msg != null) {
|
|
||||||
throw new IllegalArgumentException(msg);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
Loading…
Reference in New Issue