Beispiel #1
0
 private void publishNode(NodeAndClient nodeAndClient) {
   assert !nodeAndClient.node().isClosed();
   NodeEnvironment nodeEnv = getInstanceFromNode(NodeEnvironment.class, nodeAndClient.node);
   if (nodeEnv.hasNodeFile()) {
     dataDirToClean.addAll(Arrays.asList(nodeEnv.nodeDataLocations()));
   }
   nodes.put(nodeAndClient.name, nodeAndClient);
 }
Beispiel #2
0
 /**
  * Ensures that at least <code>n</code> nodes are present in the cluster. if more nodes than
  * <code>n</code> are present this method will not stop any of the running nodes.
  */
 public synchronized void ensureAtLeastNumNodes(int n) {
   int size = nodes.size();
   for (int i = size; i < n; i++) {
     logger.info("increasing cluster size from {} to {}", size, n);
     NodeAndClient buildNode = buildNode();
     buildNode.node().start();
     publishNode(buildNode);
   }
 }
Beispiel #3
0
 private synchronized NodeAndClient getOrBuildRandomNode() {
   ensureOpen();
   NodeAndClient randomNodeAndClient = getRandomNodeAndClient();
   if (randomNodeAndClient != null) {
     return randomNodeAndClient;
   }
   NodeAndClient buildNode = buildNode();
   buildNode.node().start();
   publishNode(buildNode);
   return buildNode;
 }
Beispiel #4
0
 /** Starts a node with the given settings and returns it's name. */
 public String startNode(Settings settings) {
   NodeAndClient buildNode = buildNode(settings);
   buildNode.node().start();
   publishNode(buildNode);
   return buildNode.name;
 }