Commit d86c96fc authored by Brian Long's avatar Brian Long
Browse files

Merge branch 'develop' into stable

parents 933a7860 29c4b4e1
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -7,6 +7,7 @@ import com.inteligr8.alfresco.asie.model.core.DisableIndexingRequest;
import com.inteligr8.alfresco.asie.model.core.EnableIndexingRequest;
import com.inteligr8.alfresco.asie.model.core.FixAction;
import com.inteligr8.alfresco.asie.model.core.FixRequest;
import com.inteligr8.alfresco.asie.model.core.IndexRequest;
import com.inteligr8.alfresco.asie.model.core.IndexingStatusAction;
import com.inteligr8.alfresco.asie.model.core.NewCoreRequest;
import com.inteligr8.alfresco.asie.model.core.NewDefaultIndexRequest;
@@ -61,6 +62,10 @@ public interface CoreAdminApi extends com.inteligr8.solr.api.CoreAdminApi {
	@Produces(MediaType.APPLICATION_JSON)
	ActionCoreResponse<Action> purge(@BeanParam PurgeRequest request);

	@GET
	@Produces(MediaType.APPLICATION_JSON)
	ActionCoreResponse<Action> index(@BeanParam IndexRequest request);

	@GET
	@Produces(MediaType.APPLICATION_JSON)
	ActionCoreResponse<Action> reindex(@BeanParam ReindexRequest request);
+106 −0
Original line number Diff line number Diff line
package com.inteligr8.alfresco.asie.model.core;

import com.inteligr8.solr.model.JsonFormattedResponseRequest;

import jakarta.annotation.Nonnull;
import jakarta.ws.rs.DefaultValue;
import jakarta.ws.rs.QueryParam;

public class IndexRequest extends JsonFormattedResponseRequest<IndexRequest> {
	
	private static final String ACTION = "index";
	
	@QueryParam("action")
	@DefaultValue(ACTION)
	@Nonnull
	private String action = ACTION;
	
	@QueryParam("core")
	private String core;
	
	@QueryParam("txid")
	private Long transactionId;
	
	@QueryParam("acltxid")
	private Long aclTransactionId;
	
	@QueryParam("nodeId")
	private Long nodeId;
	
	@QueryParam("aclid")
	private Long aclId;
	
	public String getAction() {
		return action;
	}
	
	public void setAction(String action) {
		this.action = action;
	}
	
	public String getCore() {
		return core;
	}
	
	public void setCore(String core) {
		this.core = core;
	}
	
	public IndexRequest withCore(String core) {
		this.core = core;
		return this;
	}
	
	public Long getTransactionId() {
		return transactionId;
	}
	
	public void setTransactionId(Long transactionId) {
		this.transactionId = transactionId;
	}
	
	public IndexRequest withTransactionId(Long transactionId) {
		this.transactionId = transactionId;
		return this;
	}
	
	public Long getAclTransactionId() {
		return aclTransactionId;
	}
	
	public void setAclTransactionId(Long aclTransactionId) {
		this.aclTransactionId = aclTransactionId;
	}
	
	public IndexRequest withAclTransactionId(Long aclTransactionId) {
		this.aclTransactionId = aclTransactionId;
		return this;
	}
	
	public Long getNodeId() {
		return nodeId;
	}
	
	public void setNodeId(Long nodeId) {
		this.nodeId = nodeId;
	}
	
	public IndexRequest withNodeId(Long nodeId) {
		this.nodeId = nodeId;
		return this;
	}
	
	public Long getAclId() {
		return aclId;
	}
	
	public void setAclId(Long aclId) {
		this.aclId = aclId;
	}
	
	public IndexRequest withAclId(Long aclId) {
		this.aclId = aclId;
		return this;
	}

}
+10 −3
Original line number Diff line number Diff line
@@ -50,12 +50,15 @@ public class ShardDiscoveryService implements com.inteligr8.alfresco.asie.spi.Sh
			for (Entry<Shard, Set<ShardState>> flocShard : floc.getValue().entrySet()) {
				for (ShardState shardState : flocShard.getValue()) {
					ShardSet shardSet = ShardSet.from(floc.getKey(), shardState);
					if (shardSet.getCore().equals(core))
					if (shardSet.getCore().equals(core)) {
						this.logger.debug("Found matching shard set: {}: {}", core, shardSet);
						return shardSet;
					}
				}
			}
		}

		this.logger.trace("Did not find matching shard set: {}", core);
		return null;
    }
    
@@ -97,6 +100,7 @@ public class ShardDiscoveryService implements com.inteligr8.alfresco.asie.spi.Sh
			}
		}

		this.logger.trace("Did not find matching node: {}:{}", nodeHostname, nodePort);
		return null;
    }
    
@@ -127,6 +131,7 @@ public class ShardDiscoveryService implements com.inteligr8.alfresco.asie.spi.Sh
				
				ShardInstance shardInstance = shardState.getShardInstance();
				if (node.equals(SolrHost.from(shardInstance))) {
					this.logger.trace("Found shard on node: {}: {}", node, shardInstance.getShard().getInstance());
					Map<Integer, ShardInstanceState> shardStates = setShardStates.get(shardSet);
					if (shardStates == null)
						setShardStates.put(shardSet, shardStates = new HashMap<>());
@@ -152,7 +157,9 @@ public class ShardDiscoveryService implements com.inteligr8.alfresco.asie.spi.Sh
		
		for (Entry<Floc, Map<Shard, Set<ShardState>>> floc : flocs.entrySet()) {
			if (shardMethodSet.contains(floc.getKey().getShardMethod())) {
				this.logger.trace("Found qualifying shard method: {}", floc.getKey().getShardMethod());
				ShardState shardState = this.extractAnyShardState(floc.getValue());
				this.logger.trace("Found single shard state representing shard method: {}: {}", floc.getKey().getShardMethod(), shardState);
				shardSets.add(ShardSet.from(floc.getKey(), shardState));
			}
		}
+24 −0
Original line number Diff line number Diff line
package com.inteligr8.alfresco.asie.rest;

import java.util.concurrent.TimeUnit;
import java.util.concurrent.TimeoutException;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import com.inteligr8.alfresco.asie.service.IndexService;
import com.inteligr8.alfresco.asie.spi.ActionCallback;

@Component(value = "webscript.com.inteligr8.alfresco.asie.indexAcsNode.post")
public class IndexAcsNodeWebScript extends AbstractAcsNodeActionWebScript {
	
	@Autowired
	private IndexService indexSerivce;
	
	@Override
	protected void executeAction(long nodeDbId, ActionCallback callback, long fullQueueTimeout, TimeUnit fullQueueUnit,
			long execTimeout, TimeUnit execUnit) throws TimeoutException, InterruptedException {
		this.indexSerivce.index(nodeDbId, callback, 10L, TimeUnit.SECONDS, 30L, TimeUnit.SECONDS);
    }
    
}
+2 −1
Original line number Diff line number Diff line
@@ -32,6 +32,7 @@ public class ReconcileAcsNodesWebScript extends AbstractAsieWebScript {
	public void executeAuthorized(WebScriptRequest request, WebScriptResponse response) throws IOException {
		final int fromDbId = this.getRequestTemplateIntegerVariable(request, "fromDbId");
		final int toDbId = this.getRequestTemplateIntegerVariable(request, "toDbId");
		final boolean index = Boolean.TRUE.equals(this.getOptionalQueryParameter(request, "index", Boolean.class));
		final boolean reindex = Boolean.TRUE.equals(this.getOptionalQueryParameter(request, "reindex", Boolean.class));
		final boolean includeReconciled = Boolean.TRUE.equals(this.getOptionalQueryParameter(request, "includeReconciled", Boolean.class));
		
@@ -101,7 +102,7 @@ public class ReconcileAcsNodesWebScript extends AbstractAsieWebScript {
		};
		
		try {
			this.reconcileService.reconcile(fromDbId, toDbId, null, reindex, callback, 1L, TimeUnit.HOURS, 2L, TimeUnit.MINUTES);
			this.reconcileService.reconcile(fromDbId, toDbId, null, index, reindex, callback, 1L, TimeUnit.HOURS, 2L, TimeUnit.MINUTES);

			if (responseMap.containsKey("error")) {
				response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
Loading