Repository: ignite Updated Branches: refs/heads/master 297df324d -> 666f22008
IGNITE-8430 implemented getCurrentCoordinatorFormatted method in IgniteMXBean - Fixes #3957. Signed-off-by: dpavlov <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/666f2200 Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/666f2200 Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/666f2200 Branch: refs/heads/master Commit: 666f22008b57d27fd33fcee720ff66ab2ae1a998 Parents: 297df32 Author: Anton Kalashnikov <[email protected]> Authored: Tue May 8 17:10:53 2018 +0300 Committer: dpavlov <[email protected]> Committed: Tue May 8 17:10:53 2018 +0300 ---------------------------------------------------------------------- .../apache/ignite/internal/IgniteKernal.java | 22 ++++++++++++++++++++ .../org/apache/ignite/mxbean/IgniteMXBean.java | 6 ++++++ .../ignite/util/mbeans/GridMBeanSelfTest.java | 16 +++++++++++--- 3 files changed, 41 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/666f2200/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java index 7029f19..86c85e8 100644 --- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java +++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java @@ -105,6 +105,7 @@ import org.apache.ignite.internal.binary.BinaryMarshaller; import org.apache.ignite.internal.binary.BinaryUtils; import org.apache.ignite.internal.cluster.ClusterGroupAdapter; import org.apache.ignite.internal.cluster.IgniteClusterEx; +import org.apache.ignite.internal.processors.affinity.AffinityTopologyVersion; import org.apache.ignite.internal.processors.failure.FailureProcessor; import org.apache.ignite.internal.managers.GridManager; import org.apache.ignite.internal.managers.checkpoint.GridCheckpointManager; @@ -297,6 +298,9 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable { /** Force complete reconnect future. */ private static final Object STOP_RECONNECT = new Object(); + /** Separator for formatted coordinator properties. */ + public static final String COORDINATOR_PROPERTIES_SEPARATOR = ","; + static { LongJVMPauseDetector.start(); } @@ -503,6 +507,24 @@ public class IgniteKernal implements IgniteEx, IgniteMXBean, Externalizable { } /** {@inheritDoc} */ + @Override public String getCurrentCoordinatorFormatted() { + ClusterNode node = ctx.discovery().oldestAliveServerNode(AffinityTopologyVersion.NONE); + + if (node == null) + return ""; + + return new StringBuilder() + .append(node.addresses()) + .append(COORDINATOR_PROPERTIES_SEPARATOR) + .append(node.id()) + .append(COORDINATOR_PROPERTIES_SEPARATOR) + .append(node.order()) + .append(COORDINATOR_PROPERTIES_SEPARATOR) + .append(node.hostNames()) + .toString(); + } + + /** {@inheritDoc} */ @Override public String getCommunicationSpiFormatted() { assert cfg != null; http://git-wip-us.apache.org/repos/asf/ignite/blob/666f2200/modules/core/src/main/java/org/apache/ignite/mxbean/IgniteMXBean.java ---------------------------------------------------------------------- diff --git a/modules/core/src/main/java/org/apache/ignite/mxbean/IgniteMXBean.java b/modules/core/src/main/java/org/apache/ignite/mxbean/IgniteMXBean.java index 77ea035..cc4bc5b 100644 --- a/modules/core/src/main/java/org/apache/ignite/mxbean/IgniteMXBean.java +++ b/modules/core/src/main/java/org/apache/ignite/mxbean/IgniteMXBean.java @@ -433,6 +433,12 @@ public interface IgniteMXBean { public void dumpDebugInfo(); /** + * Gets a formatted properties of current coordinator. + */ + @MXBeanDescription("Formatted properties of current coordinator.") + public String getCurrentCoordinatorFormatted(); + + /** * Runs IO latency test against all remote server nodes in cluster. * * @param warmup Warmup duration in milliseconds. http://git-wip-us.apache.org/repos/asf/ignite/blob/666f2200/modules/core/src/test/java/org/apache/ignite/util/mbeans/GridMBeanSelfTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/util/mbeans/GridMBeanSelfTest.java b/modules/core/src/test/java/org/apache/ignite/util/mbeans/GridMBeanSelfTest.java index 4f5ed19..4e329f9 100644 --- a/modules/core/src/test/java/org/apache/ignite/util/mbeans/GridMBeanSelfTest.java +++ b/modules/core/src/test/java/org/apache/ignite/util/mbeans/GridMBeanSelfTest.java @@ -22,6 +22,7 @@ import javax.management.MBeanInfo; import javax.management.MBeanOperationInfo; import javax.management.MBeanParameterInfo; import javax.management.StandardMBean; +import org.apache.ignite.internal.IgniteEx; import org.apache.ignite.internal.mxbean.IgniteStandardMXBean; import org.apache.ignite.mxbean.IgniteMXBean; import org.apache.ignite.mxbean.MXBeanDescription; @@ -161,10 +162,19 @@ public class GridMBeanSelfTest extends GridCommonAbstractTest { */ public void testIgniteKernalReturnsValidMBeanInfo() throws Exception { try { - IgniteMXBean ignite = (IgniteMXBean)startGrid(); + IgniteEx igniteCrd = startGrid(0); - assertNotNull(ignite.getUserAttributesFormatted()); - assertNotNull(ignite.getLifecycleBeansFormatted()); + IgniteMXBean igniteMXBean = (IgniteMXBean)startGrid(1); + + assertNotNull(igniteMXBean.getUserAttributesFormatted()); + assertNotNull(igniteMXBean.getLifecycleBeansFormatted()); + + String coordinatorFormatted = igniteMXBean.getCurrentCoordinatorFormatted(); + + assertTrue(coordinatorFormatted.contains(igniteCrd.localNode().addresses().toString())); + assertTrue(coordinatorFormatted.contains(igniteCrd.localNode().hostNames().toString())); + assertTrue(coordinatorFormatted.contains(Long.toString(igniteCrd.localNode().order()))); + assertTrue(coordinatorFormatted.contains(igniteCrd.localNode().id().toString())); } finally { stopAllGrids();
