fix circular dependency on LicensesService
Original commit: elastic/x-pack-elasticsearch@d419878c35
This commit is contained in:
parent
a034f96497
commit
533220e15a
|
@ -51,15 +51,16 @@ public class LicensePlugin extends AbstractPlugin {
|
|||
module.registerAction(PutLicenseAction.INSTANCE, TransportPutLicenseAction.class);
|
||||
module.registerAction(GetLicenseAction.INSTANCE, TransportGetLicenseAction.class);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<Class<? extends LifecycleComponent>> services() {
|
||||
return ImmutableSet.<Class<? extends LifecycleComponent>>of(LicensesService.class);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
@Override
|
||||
public Collection<Class<? extends Module>> modules() {
|
||||
return ImmutableSet.<Class<? extends Module>>of(LicenseModule.class);
|
||||
}*/
|
||||
}
|
||||
//TODO: module binding? (LicenseModule)
|
||||
}
|
||||
|
|
|
@ -61,7 +61,7 @@ public class TransportDeleteLicenseAction extends TransportMasterNodeOperationAc
|
|||
//listener.onResponse(new DeleteLicenseResponse(licenses));
|
||||
|
||||
//TODO:: add features of the license to be deleted
|
||||
licensesService.unregisteredLicenses("delete_licenses []", request, new ActionListener<ClusterStateUpdateResponse>() {
|
||||
licensesService.unregisteredLicenses(clusterService, "delete_licenses []", request, new ActionListener<ClusterStateUpdateResponse>() {
|
||||
@Override
|
||||
public void onResponse(ClusterStateUpdateResponse clusterStateUpdateResponse) {
|
||||
listener.onResponse(new DeleteLicenseResponse(clusterStateUpdateResponse.isAcknowledged()));
|
||||
|
|
|
@ -19,6 +19,7 @@ import org.elasticsearch.common.settings.Settings;
|
|||
import org.elasticsearch.license.plugin.core.LicensesService;
|
||||
import org.elasticsearch.threadpool.ThreadPool;
|
||||
import org.elasticsearch.transport.TransportService;
|
||||
import org.elasticsearch.node.Node;
|
||||
|
||||
public class TransportPutLicenseAction extends TransportMasterNodeOperationAction<PutLicenseRequest, PutLicenseResponse> {
|
||||
|
||||
|
@ -55,7 +56,7 @@ public class TransportPutLicenseAction extends TransportMasterNodeOperationActio
|
|||
@Override
|
||||
protected void masterOperation(final PutLicenseRequest request, ClusterState state, final ActionListener<PutLicenseResponse> listener) throws ElasticsearchException {
|
||||
//TODO
|
||||
licensesService.registerLicenses("put_licenses []",request, new ActionListener<ClusterStateUpdateResponse>() {
|
||||
licensesService.registerLicenses(clusterService, "put_licenses []",request, new ActionListener<ClusterStateUpdateResponse>() {
|
||||
@Override
|
||||
public void onResponse(ClusterStateUpdateResponse clusterStateUpdateResponse) {
|
||||
listener.onResponse(new PutLicenseResponse(clusterStateUpdateResponse.isAcknowledged()));
|
||||
|
|
|
@ -20,6 +20,8 @@ import org.elasticsearch.license.core.LicenseBuilders;
|
|||
import org.elasticsearch.license.plugin.action.delete.DeleteLicenseRequest;
|
||||
import org.elasticsearch.license.plugin.action.put.PutLicenseRequest;
|
||||
|
||||
import java.util.concurrent.atomic.AtomicBoolean;
|
||||
|
||||
/**
|
||||
* Service responsible for maintaining and providing access to licenses on nodes.
|
||||
*
|
||||
|
@ -31,20 +33,22 @@ public class LicensesService extends AbstractLifecycleComponent<LicensesService>
|
|||
|
||||
// private final Injector injector;
|
||||
|
||||
private final ClusterService clusterService;
|
||||
//private final ClusterService clusterService;
|
||||
|
||||
//private volatile ESLicenses licenses = null;//ImmutableMap.of();
|
||||
|
||||
private AtomicBoolean registerClusterStateListener = new AtomicBoolean(false);
|
||||
|
||||
@Inject
|
||||
public LicensesService(Settings settings, ClusterService clusterService/*, Injector injector*/) {
|
||||
public LicensesService(Settings settings /*ClusterService clusterService, Injector injector*/) {
|
||||
super(settings);
|
||||
//this.injector = injector;
|
||||
this.clusterService = clusterService;
|
||||
//this.clusterService = clusterService;
|
||||
// Doesn't make sense to maintain repositories on non-master and non-data nodes
|
||||
// Nothing happens there anyway
|
||||
if (DiscoveryNode.dataNode(settings) || DiscoveryNode.masterNode(settings)) {
|
||||
clusterService.add(this);
|
||||
}
|
||||
//if (DiscoveryNode.dataNode(settings) || DiscoveryNode.masterNode(settings)) {
|
||||
// clusterService.add(this);
|
||||
//}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -53,7 +57,12 @@ public class LicensesService extends AbstractLifecycleComponent<LicensesService>
|
|||
* This method can be only called on the master node. It tries to create a new licenses on the master
|
||||
* and if it was successful it adds the license to cluster metadata.
|
||||
*/
|
||||
public void registerLicenses(final String source, final PutLicenseRequest request, final ActionListener<ClusterStateUpdateResponse> listener) {
|
||||
public void registerLicenses(ClusterService clusterService, String source, final PutLicenseRequest request, final ActionListener<ClusterStateUpdateResponse> listener) {
|
||||
if (registerClusterStateListener.compareAndSet(false, true)) {
|
||||
if (DiscoveryNode.dataNode(settings) || DiscoveryNode.masterNode(settings)) {
|
||||
clusterService.add(this);
|
||||
}
|
||||
}
|
||||
final LicensesMetaData newLicenseMetaData = new LicensesMetaData(request.license());
|
||||
//TODO: add a source field to request
|
||||
clusterService.submitStateUpdateTask(source, new AckedClusterStateUpdateTask<ClusterStateUpdateResponse>(request, listener) {
|
||||
|
@ -84,7 +93,7 @@ public class LicensesService extends AbstractLifecycleComponent<LicensesService>
|
|||
}
|
||||
|
||||
//TODO
|
||||
public void unregisteredLicenses(final String source, final DeleteLicenseRequest request, final ActionListener<ClusterStateUpdateResponse> listener) {
|
||||
public void unregisteredLicenses(ClusterService clusterService, String source, final DeleteLicenseRequest request, final ActionListener<ClusterStateUpdateResponse> listener) {
|
||||
clusterService.submitStateUpdateTask(source, new AckedClusterStateUpdateTask<ClusterStateUpdateResponse>(request, listener) {
|
||||
@Override
|
||||
protected ClusterStateUpdateResponse newResponse(boolean acknowledged) {
|
||||
|
|
Loading…
Reference in New Issue