/** * @param nodesCnt Count of nodes to generate. * @return Nodes list. */ private List<ClusterNode> createBaseNodes(int nodesCnt) { List<ClusterNode> nodes = new ArrayList<>(nodesCnt); for (int i = 0; i < nodesCnt; i++) { GridTestNode node = new GridTestNode(UUID.randomUUID()); // two neighbours nodes node.setAttribute(IgniteNodeAttributes.ATTR_MACS, MAC_PREF + i / 2); nodes.add(node); } return nodes; }
/** * @param nodesCnt Nodes count to test. */ public ServiceReassignmentFunctionSelfTest(int nodesCnt) { assertTrue(nodesCnt > 0); nodes = new ArrayList<>(); processors = new ArrayList<>(); for (int i = 0; i < nodesCnt; i++) nodes.add(new GridTestNode(UUID.randomUUID())); for (int i = 0; i < nodesCnt; i++) processors.add(mockServiceProcessor()); }
/** * @param nodes Topology. * @param iter Iteration count. * @return Discovery event. */ @NotNull private DiscoveryEvent addNode(List<ClusterNode> nodes, int iter) { GridTestNode node = new GridTestNode(UUID.randomUUID()); // two neighbours nodes node.setAttribute(IgniteNodeAttributes.ATTR_MACS, MAC_PREF + "_add_" + iter / 4); nodes.add(node); return new DiscoveryEvent(nodes.get(0), "", EventType.EVT_NODE_JOINED, node); }
/** {@inheritDoc} */ @Override protected GridSpiTestContext initSpiContext() throws Exception { GridSpiTestContext ctx = super.initSpiContext(); ctx.setLocalNode(new GridTestNode(UUID.randomUUID())); return ctx; }
/** * @param cnt Number of nodes. */ public void createRemoteNodes(int cnt) { for (int i = 0; i < cnt; i++) addNode(new GridTestNode(UUID.randomUUID(), createMetrics(1, 1))); }
/** */ public void createLocalNode() { setLocalNode(new GridTestNode(UUID.randomUUID(), createMetrics(1, 1))); }
/** {@inheritDoc} */ @Override protected GridSpiTestContext initSpiContext() throws Exception { GridSpiTestContext ctx = super.initSpiContext(); GridTestNode loc = new GridTestNode(UUID.randomUUID()); addSpiDependency(loc); ctx.setLocalNode(loc); GridTestNode rmt = new GridTestNode(UUID.randomUUID()); ctx.addNode(rmt); addSpiDependency(rmt); return ctx; }
/** {@inheritDoc} */ @Override protected GridSpiTestContext initSpiContext() throws Exception { GridSpiTestContext ctx = super.initSpiContext(); ctx.setLocalNode(addSpiDependency(new GridTestNode(UUID.randomUUID()))); ctx.addNode(addSpiDependency(new GridTestNode(UUID.randomUUID()))); return ctx; }
/** {@inheritDoc} */ @Override protected GridSpiTestContext initSpiContext() throws Exception { GridSpiTestContext ctx = super.initSpiContext(); for (int i = 0; i < RMT_NODE_CNT; i++) { GridTestNode node = new GridTestNode(UUID.randomUUID()); node.setAttribute("load", (double)(i + 1)); ctx.addNode(node); } return ctx; }
/** {@inheritDoc} */ @Override protected GridSpiTestContext initSpiContext() throws Exception { GridSpiTestContext ctx = super.initSpiContext(); GridTestNode locNode = new GridTestNode(UUID.randomUUID()); addSpiDependency(locNode); ctx.setLocalNode(locNode); return ctx; }
/** {@inheritDoc} */ @Override protected GridSpiTestContext initSpiContext() throws Exception { GridSpiTestContext ctx = super.initSpiContext(); GridTestNode locNode = new GridTestNode(UUID.randomUUID()); addSpiDependency(locNode); ctx.setLocalNode(locNode); return ctx; }
/** {@inheritDoc} */ @Override protected GridSpiTestContext initSpiContext() throws Exception { GridSpiTestContext ctx = super.initSpiContext(); GridTestNode locNode = new GridTestNode(UUID.randomUUID()); addSpiDependency(locNode); ctx.setLocalNode(locNode); return ctx; }
/** * @throws Exception If test failed. */ @Test public void testTwoNodes() throws Exception { AlwaysFailoverSpi spi = getSpi(); List<ClusterNode> nodes = new ArrayList<>(); nodes.add(new GridTestNode(UUID.randomUUID())); nodes.add(new GridTestNode(UUID.randomUUID())); ComputeJobResult jobRes = new GridTestJobResult(nodes.get(0)); ClusterNode node = spi.failover(new GridFailoverTestContext(new GridTestTaskSession(), jobRes), nodes); assert node != null; assert node.equals(nodes.get(1)); checkFailedNodes(jobRes, 1); }
/** */ @Test public void testNodeNotInTopology() throws Exception { ComputeTaskSession ses = new GridTestTaskSession(); ClusterNode node = new GridTestNode(UUID.randomUUID()); List<ClusterNode> notInTop = Arrays.asList(node); try { getSpi().getBalancedNode(ses, notInTop, new GridTestJob()); } catch (IgniteException e) { assertTrue(e.getMessage().contains("Task topology does not have alive nodes")); } } }
/** * @throws Exception If failed. */ @Test public void testSingleNode() throws Exception { AlwaysFailoverSpi spi = getSpi(); List<ClusterNode> nodes = new ArrayList<>(); ClusterNode node = new GridTestNode(UUID.randomUUID()); nodes.add(node); node = spi.failover(new GridFailoverTestContext(new GridTestTaskSession(), new GridTestJobResult(node)), nodes); assert node == null; }
/** * @throws Exception If failed. */ @Test public void testAlwaysNull() throws Exception { List<ClusterNode> nodes = new ArrayList<>(); ClusterNode node = new GridTestNode(UUID.randomUUID()); nodes.add(node); assert getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), new GridTestJobResult(node)), nodes) == null; } }
/** * @throws Exception If failed. */ @SuppressWarnings({"ObjectEquality"}) @Test public void testSingleNode() throws Exception { List<ClusterNode> nodes = Collections.singletonList((ClusterNode)new GridTestNode(UUID.randomUUID())); ClusterNode node = getSpi().getBalancedNode(new GridTestTaskSession(), nodes, new GridTestJob()); assert nodes.contains(node); // Verify that same instance is returned every time. ClusterNode balancedNode = getSpi().getBalancedNode(new GridTestTaskSession(), nodes, new GridTestJob()); assert node == balancedNode; }
/** {@inheritDoc} */ @Override protected GridSpiTestContext initSpiContext() throws Exception { GridSpiTestContext ctx = super.initSpiContext(); GridTestNode locNode = new GridTestNode(UUID.randomUUID()); addSpiDependency(locNode); ctx.setLocalNode(locNode); GridTestNode rmtNode = new GridTestNode(UUID.randomUUID()); addSpiDependency(rmtNode); rmtNode.setAttribute(U.spiAttribute(getSpi(), WAIT_JOBS_THRESHOLD_NODE_ATTR), getWaitJobsThreshold()); ClusterMetricsSnapshot metrics = new ClusterMetricsSnapshot(); metrics.setCurrentWaitingJobs(2); rmtNode.setMetrics(metrics); ctx.addNode(rmtNode); return ctx; }
/** * @throws Exception If test failed. */ @Test public void testThiefNotInTopology() throws Exception { ClusterNode rmt = new GridTestNode(UUID.randomUUID()); GridTestJobResult failed = new GridTestJobResult(rmt); failed.getJobContext().setAttribute(THIEF_NODE_ATTR, rmt.id()); ClusterNode other = getSpi().failover(new GridFailoverTestContext(new GridTestTaskSession(), failed), new ArrayList<>(getSpiContext().nodes())); assert other != null; assert other != rmt; assert getSpiContext().nodes().contains(other); checkAttributes(failed.getJobContext(), rmt, 1); }
/** {@inheritDoc} */ @Override protected void beforeTest() throws Exception { super.beforeTest(); rmtNode = new GridTestNode(UUID.randomUUID()); addSpiDependency(rmtNode); rmtNode.setAttribute(U.spiAttribute(getSpi(), WAIT_JOBS_THRESHOLD_NODE_ATTR), getWaitJobsThreshold()); ClusterMetricsSnapshot metrics = new ClusterMetricsSnapshot(); metrics.setCurrentWaitingJobs(2); rmtNode.setMetrics(metrics); getSpiContext().addNode(rmtNode); getSpi().setStealingEnabled(true); }