package com.silverforge.elasticsearchrawclient.elasticFacade.operations; import com.silverforge.elasticsearchrawclient.R; import com.silverforge.elasticsearchrawclient.elasticFacade.mappers.AliasParser; import com.silverforge.elasticsearchrawclient.model.ElasticSettings; import com.silverforge.elasticsearchrawclient.utils.StreamUtils; import com.silverforge.elasticsearchrawclient.utils.StringUtils; import com.silverforge.webconnector.definitions.Connectable; import com.silverforge.webconnector.model.InvokeStringResult; import java.util.ArrayList; import java.util.List; public class IndexOperations extends Operations { public IndexOperations(Connectable connector, ElasticSettings elasticSettings) { super(connector, elasticSettings); } public boolean createIndex(String indexName, String data) { String path = StringUtils.ensurePath(indexName); InvokeStringResult result = connector.put(path, data); return result.isSuccess(); } public boolean indexExists(String indexName) { String path = StringUtils.ensurePath(indexName); InvokeStringResult result = connector.head(path); return result.isSuccess(); } public void removeIndices(String[] indexNames) { for (String indexName : indexNames) { String path = StringUtils.ensurePath(indexName); connector.delete(path); } } public void addAlias(String indexName, String aliasName) { String addAliasTemplate = StreamUtils.getRawContent(context, R.raw.add_alias); String data = addAliasTemplate .replace("{{INDEXNAME}}", indexName) .replace("{{ALIASNAME}}", aliasName); connector.post("/_aliases", data); } public List<String> getAliases(String index) { ArrayList<String> retValue = new ArrayList<>(); String getPath = String.format("/%s/_aliases", index); InvokeStringResult invokeResult = connector.get(getPath); if (invokeResult.isSuccess()) { List<String> aliasesFromJson = AliasParser.getAliasesFromJson(index, invokeResult.getResult()); retValue.addAll(aliasesFromJson); } return retValue; } public void removeAlias(String indexName, String aliasName) { String addAliasTemplate = StreamUtils.getRawContent(context, R.raw.remove_alias); String data = addAliasTemplate .replace("{{INDEXNAME}}", indexName) .replace("{{ALIASNAME}}", aliasName); connector.post("/_aliases", data); } }