package org.elasticsearch.module.graphite.test; import org.elasticsearch.common.Strings; import org.elasticsearch.common.logging.log4j.LogConfigurator; import org.elasticsearch.common.settings.ImmutableSettings; import org.elasticsearch.node.Node; import org.elasticsearch.node.NodeBuilder; import java.io.IOException; public class NodeTestHelper { public static Node createNode(String clusterName, int graphitePort, String refreshInterval) throws IOException { return createNode(clusterName, graphitePort, refreshInterval, null, null, null); } public static Node createNode(String clusterName, int graphitePort, String refreshInterval, String includeRegex, String excludeRegex, String prefix) throws IOException { ImmutableSettings.Builder settingsBuilder = ImmutableSettings.settingsBuilder(); settingsBuilder.put("path.conf", NodeTestHelper.class.getResource("/").getFile()); settingsBuilder.put("gateway.type", "none"); settingsBuilder.put("cluster.name", clusterName); settingsBuilder.put("index.number_of_shards", 1); settingsBuilder.put("index.number_of_replicas", 1); settingsBuilder.put("metrics.graphite.host", "localhost"); settingsBuilder.put("metrics.graphite.port", graphitePort); settingsBuilder.put("metrics.graphite.every", refreshInterval); if (!Strings.isEmpty(prefix)) { settingsBuilder.put("metrics.graphite.prefix", prefix); } if (Strings.hasLength(includeRegex)) { settingsBuilder.put("metrics.graphite.include", includeRegex); } if (Strings.hasLength(excludeRegex)) { settingsBuilder.put("metrics.graphite.exclude", excludeRegex); } LogConfigurator.configure(settingsBuilder.build()); return NodeBuilder.nodeBuilder().settings(settingsBuilder.build()).node(); } }