Skip to content

Instantly share code, notes, and snippets.

@suresk
suresk / launch.json
Created February 24, 2017 18:27
Run a single Mocha file test in VS Code
{
"name": "Debug with mocha",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
"stopOnEntry": false,
"args": ["--no-timeouts", "${relativeFile}"],
"cwd": "${workspaceRoot}"
}
@suresk
suresk / launch.json
Last active February 24, 2017 18:27
Run a single mocha file in VS Code, with a dummy mocha.opts
{
"name": "Debug with mocha",
"type": "node",
"request": "launch",
"program": "${workspaceRoot}/node_modules/mocha/bin/_mocha",
"stopOnEntry": false,
"args": ["--no-timeouts", "--opts", "${workspaceRoot}/test/mocha-debug.opts", "${relativeFile}"],
"cwd": "${workspaceRoot}"
}
@suresk
suresk / gist:6f9deb979fcfcab8cc6ed05f308fb364
Created April 10, 2016 06:18
Elasticsearch create/move alias
// Add/rename alias
if(currentIndex > -1)
{
renameAlias(aliasName, buildIndexName(aliasName, currentIndex), indexName);
}
else
{
elasticClient.admin().indices().prepareAliases().addAlias(indexName, aliasName).execute();
}
@suresk
suresk / gist:03a9374323b8c9a51389f565c1a4ec75
Created April 10, 2016 06:11
Elasticsearch clear lock
private void releaseLock(String aliasName)
{
synchronized (aliasName)
{
DeleteRequest deleteRequest = new DeleteRequest().index(LOCK_DIRECTORY).type(LOCK_TYPE).id(aliasName);
elasticClient.delete(deleteRequest);
}
}
@suresk
suresk / gist:18f6db58b52fb770381328bfca9d3341
Created April 10, 2016 06:09
Elasticsearch rebuild job
// Do the indexing
T res = job.rebuildIndex(indexName);
....
public interface IndexRebuildJob<T>
{
public T rebuildIndex(String indexName);
}
@suresk
suresk / gist:38012ca8845019a9a8ef09e2659627d8
Created April 10, 2016 06:07
Elasticsearch put mapping
String mapping = getMapFile(aliasName);
if(mapping != null)
{
elasticClient.admin().indices().putMapping(new PutMappingRequest(indexName).source(getMapFile(aliasName)));
}
...
private String getMapFile(String aliasName)
// Create the index
Settings.Builder settingsBuilder = Settings.builder();
for(Map.Entry<String, Integer> setting : config.getIndexSettings().entrySet())
{
settingsBuilder.put(setting.getKey(), setting.getValue());
}
elasticClient.admin().indices().create(new CreateIndexRequest(indexName, settingsBuilder.build()));
@suresk
suresk / gist:ffc05117c36cd3cabc66be69f95f58c0
Created April 10, 2016 06:02
Elasticsearch delete index if it exists
// Delete it, if it already exists
if(elasticClient.admin().indices().exists(new IndicesExistsRequest(indexName)).actionGet().isExists())
{
elasticClient.admin().indices().delete(new DeleteIndexRequest(indexName));
}
@suresk
suresk / gist:fe07f27c22463dbbff0454e40f1e4e53
Created April 10, 2016 05:59
Elasticsearch determine new index
private int findCurrentIndex(String aliasName, int indexCount)
{
Map<String, AliasOrIndex> allAliases = elasticClient
.admin()
.cluster()
.state(Requests.clusterStateRequest())
.actionGet()
.getState()
.getMetaData()
.getAliasAndIndexLookup();
@suresk
suresk / gist:19f16576ed7cecec6576db261f4659cc
Last active April 10, 2016 05:55
Elasticsearch get distributed lock
private boolean getLock(String aliasName)
{
synchronized (aliasName)
{
IndexRequestBuilder indexRequest = elasticClient.prepareIndex(LOCK_DIRECTORY, LOCK_TYPE, aliasName).setSource("{}").setOpType(OpType.CREATE);
boolean successful = false;
try
{
IndexResponse response = indexRequest.get();