/*
* Licensed to Elasticsearch under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.elasticsearch.test.cluster;
import java.io.IOException;
import java.net.InetAddress;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.UUID;
import org.apache.cassandra.config.CFMetaData;
import org.apache.cassandra.config.ColumnDefinition;
import org.apache.cassandra.cql3.UntypedResultSet;
import org.apache.cassandra.cql3.UntypedResultSet.Row;
import org.apache.cassandra.db.ConsistencyLevel;
import org.apache.cassandra.dht.Range;
import org.apache.cassandra.dht.Token;
import org.apache.cassandra.exceptions.ConfigurationException;
import org.apache.cassandra.exceptions.InvalidRequestException;
import org.apache.cassandra.exceptions.RequestExecutionException;
import org.apache.cassandra.exceptions.RequestValidationException;
import org.apache.cassandra.service.ClientState;
import org.apache.lucene.search.Query;
import org.apache.lucene.util.BytesRef;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.JsonParseException;
import org.codehaus.jackson.map.JsonMappingException;
import org.elassandra.NoPersistedMetaDataException;
import org.elassandra.cluster.routing.AbstractSearchStrategy;
import org.elassandra.cluster.routing.AbstractSearchStrategy.Router;
import org.elassandra.cluster.routing.PrimaryFirstSearchStrategy.PrimaryFirstRouter;
import org.elassandra.index.search.TokenRangesService;
import org.elasticsearch.Version;
import org.elasticsearch.action.ActionWriteResponse.ShardInfo;
import org.elasticsearch.action.index.IndexRequest;
import org.elasticsearch.cluster.ClusterName;
import org.elasticsearch.cluster.ClusterService;
import org.elasticsearch.cluster.ClusterState;
import org.elasticsearch.cluster.ClusterStateListener;
import org.elasticsearch.cluster.ClusterStateTaskConfig;
import org.elasticsearch.cluster.ClusterStateTaskExecutor;
import org.elasticsearch.cluster.ClusterStateTaskListener;
import org.elasticsearch.cluster.ClusterStateUpdateTask;
import org.elasticsearch.cluster.LocalNodeMasterListener;
import org.elasticsearch.cluster.TimeoutClusterStateListener;
import org.elasticsearch.cluster.block.ClusterBlock;
import org.elasticsearch.cluster.metadata.IndexMetaData;
import org.elasticsearch.cluster.metadata.MappingMetaData;
import org.elasticsearch.cluster.metadata.MetaData;
import org.elasticsearch.cluster.node.DiscoveryNode;
import org.elasticsearch.cluster.node.DiscoveryNodes;
import org.elasticsearch.cluster.routing.OperationRouting;
import org.elasticsearch.cluster.routing.ShardRoutingState;
import org.elasticsearch.cluster.service.PendingClusterTask;
import org.elasticsearch.common.bytes.BytesReference;
import org.elasticsearch.common.component.Lifecycle;
import org.elasticsearch.common.component.LifecycleListener;
import org.elasticsearch.common.settings.Settings;
import org.elasticsearch.common.transport.DummyTransportAddress;
import org.elasticsearch.common.unit.TimeValue;
import org.elasticsearch.index.IndexNotFoundException;
import org.elasticsearch.index.IndexService;
import org.elasticsearch.index.engine.Engine.GetResult;
import org.elasticsearch.index.get.GetField;
import org.elasticsearch.index.mapper.DocumentMapper;
import org.elasticsearch.index.mapper.MapperService;
import org.elasticsearch.index.mapper.Uid;
import org.elasticsearch.index.percolator.PercolatorQueriesRegistry;
import org.elasticsearch.indices.IndicesService;
import org.elasticsearch.tasks.TaskManager;
public class NoopClusterService implements ClusterService {
final ClusterState state;
public NoopClusterService() {
this(ClusterState.builder(new ClusterName("noop")).build());
}
public NoopClusterService(ClusterState state) {
if (state.getNodes().size() == 0) {
state = ClusterState.builder(state).nodes(
DiscoveryNodes.builder()
.put(new DiscoveryNode("noop_id", DummyTransportAddress.INSTANCE, Version.CURRENT))
.localNodeId("noop_id")).build();
}
assert state.getNodes().localNode() != null;
this.state = state;
}
@Override
public DiscoveryNode localNode() {
return state.getNodes().localNode();
}
@Override
public ClusterState state() {
return state;
}
@Override
public void addInitialStateBlock(ClusterBlock block) throws IllegalStateException {
}
@Override
public void removeInitialStateBlock(ClusterBlock block) throws IllegalStateException {
}
@Override
public OperationRouting operationRouting() {
return null;
}
@Override
public void addFirst(ClusterStateListener listener) {
}
@Override
public void addLast(ClusterStateListener listener) {
}
@Override
public void add(ClusterStateListener listener) {
}
@Override
public void remove(ClusterStateListener listener) {
}
@Override
public void add(LocalNodeMasterListener listener) {
}
@Override
public void remove(LocalNodeMasterListener listener) {
}
@Override
public void add(TimeValue timeout, TimeoutClusterStateListener listener) {
}
@Override
public void submitStateUpdateTask(String source, ClusterStateUpdateTask updateTask) {
}
@Override
public <T> void submitStateUpdateTask(String source, T task, ClusterStateTaskConfig config, ClusterStateTaskExecutor<T> executor, ClusterStateTaskListener listener) {
}
@Override
public List<PendingClusterTask> pendingTasks() {
return null;
}
@Override
public int numberOfPendingTasks() {
return 0;
}
@Override
public TimeValue getMaxTaskWaitTime() {
return TimeValue.timeValueMillis(0);
}
@Override
public TaskManager getTaskManager() {
return null;
}
@Override
public Lifecycle.State lifecycleState() {
return null;
}
@Override
public void addLifecycleListener(LifecycleListener listener) {
}
@Override
public void removeLifecycleListener(LifecycleListener listener) {
}
@Override
public ClusterService start() {
return null;
}
@Override
public ClusterService stop() {
return null;
}
@Override
public void close() {
}
@Override
public IndexService indexService(String index) {
// TODO Auto-generated method stub
return null;
}
@Override
public IndexService indexServiceSafe(String index) {
// TODO Auto-generated method stub
return null;
}
@Override
public Router getRouter(IndexMetaData indexMetaData, ClusterState state) {
// TODO Auto-generated method stub
return null;
}
@Override
public PrimaryFirstRouter updateRouter(IndexMetaData indexMetaData, ClusterState state) {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, GetField> flattenGetField(String[] fieldFilter, String path, Object node,
Map<String, GetField> flatFields) {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, List<Object>> flattenTree(Set<String> neededFiedls, String path, Object node,
Map<String, List<Object>> fields) {
// TODO Auto-generated method stub
return null;
}
@Override
public void createOrUpdateElasticAdminKeyspace() {
// TODO Auto-generated method stub
}
@Override
public void createIndexKeyspace(String index, int replicationFactor) throws IOException {
// TODO Auto-generated method stub
}
@Override
public void createSecondaryIndices(IndexMetaData indexMetaData) throws IOException {
// TODO Auto-generated method stub
}
@Override
public void dropSecondaryIndices(IndexMetaData indexMetaData) throws RequestExecutionException {
// TODO Auto-generated method stub
}
@Override
public DocPrimaryKey parseElasticId(String index, String cfName, String id)
throws JsonParseException, JsonMappingException, IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public ClusterState updateNumberOfShards(ClusterState currentState) {
// TODO Auto-generated method stub
return null;
}
@Override
public void submitNumberOfShardsUpdate() {
// TODO Auto-generated method stub
}
@Override
public void updateRoutingTable() {
// TODO Auto-generated method stub
}
@Override
public boolean isStaticDocument(String index, Uid uid)
throws JsonParseException, JsonMappingException, IOException {
// TODO Auto-generated method stub
return false;
}
@Override
public GetResult fetchSourceInternal(String ksName, String index, String type, String id) throws IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<String, Object> rowAsMap(String index, String type, Row row) throws IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public int rowAsMap(String index, String type, Row row, Map<String, Object> map) throws IOException {
// TODO Auto-generated method stub
return 0;
}
@Override
public Object[] rowAsArray(String index, String type, Row row) throws IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public Object[] rowAsArray(String index, String type, Row row, boolean valueForSearch) throws IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public void deleteRow(String index, String type, String id, ConsistencyLevel cl)
throws InvalidRequestException, RequestExecutionException, RequestValidationException, IOException {
// TODO Auto-generated method stub
}
@Override
public void blockingMappingUpdate(IndexService indexService, String type, String source) throws Exception {
// TODO Auto-generated method stub
}
@Override
public void writeMetaDataAsComment(String metaDataString) throws ConfigurationException, IOException {
// TODO Auto-generated method stub
}
@Override
public MetaData readMetaDataAsComment() throws NoPersistedMetaDataException {
// TODO Auto-generated method stub
return null;
}
@Override
public MetaData readMetaDataAsRow(ConsistencyLevel cl) throws NoPersistedMetaDataException {
// TODO Auto-generated method stub
return null;
}
@Override
public void persistMetaData(MetaData currentMetadData, MetaData newMetaData, String source)
throws ConfigurationException, IOException, InvalidRequestException, RequestExecutionException,
RequestValidationException {
// TODO Auto-generated method stub
}
@Override
public MetaData checkForNewMetaData(Long version) throws NoPersistedMetaDataException {
// TODO Auto-generated method stub
return null;
}
@Override
public Map<UUID, ShardRoutingState> getShardRoutingStates(String index) {
// TODO Auto-generated method stub
return null;
}
@Override
public void putShardRoutingState(String index, ShardRoutingState shardRoutingState)
throws JsonGenerationException, JsonMappingException, IOException {
// TODO Auto-generated method stub
}
@Override
public boolean isDatacenterGroupMember(InetAddress endpoint) {
// TODO Auto-generated method stub
return false;
}
@Override
public ShardInfo shardInfo(String index, ConsistencyLevel cl) {
// TODO Auto-generated method stub
return null;
}
@Override
public Settings settings() {
// TODO Auto-generated method stub
return null;
}
@Override
public void dropIndexKeyspace(String ksName) throws IOException {
// TODO Auto-generated method stub
}
@Override
public AbstractSearchStrategy searchStrategy(IndexMetaData indexMetaData, ClusterState state) {
// TODO Auto-generated method stub
return null;
}
@Override
public void createSecondaryIndex(String ksName, MappingMetaData mapping, String className) throws IOException {
// TODO Auto-generated method stub
}
@Override
public void dropSecondaryIndex(String ksName, String cfName) throws RequestExecutionException {
// TODO Auto-generated method stub
}
@Override
public void dropTable(String ksName, String cfName) throws RequestExecutionException {
// TODO Auto-generated method stub
}
@Override
public void updateTableSchema(IndexService indexService, MappingMetaData mappingMd) throws IOException {
// TODO Auto-generated method stub
}
@Override
public void publishGossipStates() {
// TODO Auto-generated method stub
}
@Override
public UntypedResultSet process(ConsistencyLevel cl, ClientState clientState, String query)
throws RequestExecutionException, RequestValidationException, InvalidRequestException {
// TODO Auto-generated method stub
return null;
}
@Override
public UntypedResultSet process(ConsistencyLevel cl, ClientState clientState, String query, Object... values)
throws RequestExecutionException, RequestValidationException, InvalidRequestException {
// TODO Auto-generated method stub
return null;
}
@Override
public void updateDocument(IndicesService indicesService, IndexRequest request, IndexMetaData indexMetaData)
throws Exception {
// TODO Auto-generated method stub
}
@Override
public void insertDocument(IndicesService indicesService, IndexRequest request, IndexMetaData indexMetaData)
throws Exception {
// TODO Auto-generated method stub
}
@Override
public void addPost(ClusterStateListener listener) {
// TODO Auto-generated method stub
}
@Override
public BytesReference source(DocumentMapper docMapper, Map sourceAsMap, String index, Uid uid)
throws JsonParseException, JsonMappingException, IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public BytesReference source(DocumentMapper docMapper, Map sourceAsMap, String index, String type, String id)
throws JsonParseException, JsonMappingException, IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public void addShardStartedBarrier() {
// TODO Auto-generated method stub
}
@Override
public void removeShardStartedBarrier() {
// TODO Auto-generated method stub
}
@Override
public void blockUntilShardsStarted() {
// TODO Auto-generated method stub
}
@Override
public void dropSecondaryIndex(CFMetaData cfMetaData) throws RequestExecutionException {
// TODO Auto-generated method stub
}
@Override
public boolean rowExists(MapperService mapperService, String type, String id)
throws InvalidRequestException, RequestExecutionException, RequestValidationException, IOException {
// TODO Auto-generated method stub
return false;
}
@Override
public UntypedResultSet fetchRow(String ksName, String index, String type, String id, String[] columns,
Map<String, ColumnDefinition> columnDefs)
throws InvalidRequestException, RequestExecutionException, RequestValidationException, IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public UntypedResultSet fetchRow(String ksName, String index, String cfName, String id, String[] columns,
ConsistencyLevel cl, Map<String, ColumnDefinition> columnDefs)
throws InvalidRequestException, RequestExecutionException, RequestValidationException, IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public UntypedResultSet fetchRow(String ksName, String index, String cfName, DocPrimaryKey docPk, String[] columns,
ConsistencyLevel cl, Map<String, ColumnDefinition> columnDefs)
throws InvalidRequestException, RequestExecutionException, RequestValidationException, IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public String buildFetchQuery(String ksName, String index, String cfName, String[] requiredColumns,
boolean forStaticDocument, Map<String, ColumnDefinition> columnDefs)
throws ConfigurationException, IndexNotFoundException, IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public UntypedResultSet fetchRowInternal(String ksName, String index, String cfName, String id, String[] columns,
Map<String, ColumnDefinition> columnDefs) throws ConfigurationException, IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public UntypedResultSet fetchRowInternal(String ksName, String index, String cfName, DocPrimaryKey docPk,
String[] columns, Map<String, ColumnDefinition> columnDefs) throws ConfigurationException, IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public UntypedResultSet fetchRowInternal(String ksName, String index, String cfName, String[] columns,
Object[] pkColumns, boolean forStaticDocument, Map<String, ColumnDefinition> columnDefs)
throws ConfigurationException, IOException {
// TODO Auto-generated method stub
return null;
}
@Override
public String getElasticAdminKeyspaceName() {
// TODO Auto-generated method stub
return null;
}
@Override
public int getLocalDataCenterSize() {
// TODO Auto-generated method stub
return 0;
}
@Override
public TokenRangesService getTokenRangesService() {
// TODO Auto-generated method stub
return null;
}
@Override
public void updateMapping(String ksName, MappingMetaData mapping) {
// TODO Auto-generated method stub
}
@Override
public void recoverShard(String index) {
// TODO Auto-generated method stub
}
}