@Override
protected PrimaryResult shardOperationOnPrimary(ShardCleanupRequest shardRequest, IndexShard primary) throws IOException, ExecutionException, InterruptedException {
IndexService indexService = indicesService.indexServiceSafe(shardRequest.shardId().getIndex());
List<String> tables = new ArrayList<String>();
MetaData metaData = clusterService.state().metaData();
IndexMetaData indexMetaData = metaData.index(shardRequest.shardId().getIndex());
for(ObjectCursor<MappingMetaData> it : indexMetaData.getMappings().values()) {
MappingMetaData mapping = it.value;
String table = org.elasticsearch.cluster.service.ClusterService.typeToCfName(mapping.type());
tables.add(table);
}
for(int i=0; i < tables.size(); i++)
StorageService.instance.forceKeyspaceCleanup(shardRequest.getRequest().jobs(), indexService.keyspace(), tables.toArray(new String[tables.size()]));
logger.trace("index=[{}] cleanup request executed on keyspace=[{}] tables={} with jobs={}", shardRequest.shardId().getIndex(), indexService.keyspace(), tables, shardRequest.getRequest().jobs());
return new PrimaryResult(shardRequest, new ReplicationResponse());
}