This is an automated email from the ASF dual-hosted git repository.

namelchev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite.git


The following commit(s) were added to refs/heads/master by this push:
     new fd74772c3f1 IGNITE-19766 Added topology snapshot info to services 
system view (#10783)
fd74772c3f1 is described below

commit fd74772c3f19634f94c73c4cf1cf88083ed85dcb
Author: Nikita Amelchev <[email protected]>
AuthorDate: Thu Jun 22 15:01:09 2023 +0300

    IGNITE-19766 Added topology snapshot info to services system view (#10783)
---
 .../org/apache/ignite/jdbc/thin/JdbcThinMetadataSelfTest.java    | 1 +
 .../test/java/org/apache/ignite/util/SystemViewCommandTest.java  | 1 +
 .../ignite/internal/managers/systemview/SystemViewMBean.java     | 3 ++-
 .../internal/managers/systemview/walker/ServiceViewWalker.java   | 5 ++++-
 .../apache/ignite/internal/processors/service/ServiceInfo.java   | 1 -
 .../java/org/apache/ignite/spi/systemview/view/ServiceView.java  | 9 +++++++++
 .../org/apache/ignite/internal/metric/JmxExporterSpiTest.java    | 1 +
 .../org/apache/ignite/internal/metric/SystemViewSelfTest.java    | 4 ++--
 .../internal/processors/cache/metric/SqlViewExporterSpiTest.java | 4 +++-
 9 files changed, 23 insertions(+), 6 deletions(-)

diff --git 
a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinMetadataSelfTest.java
 
b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinMetadataSelfTest.java
index e8df4956a40..22b07cf579a 100644
--- 
a/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinMetadataSelfTest.java
+++ 
b/modules/clients/src/test/java/org/apache/ignite/jdbc/thin/JdbcThinMetadataSelfTest.java
@@ -895,6 +895,7 @@ public class JdbcThinMetadataSelfTest extends 
JdbcThinAbstractSelfTest {
                 "SYS.SERVICES.NODE_FILTER.null",
                 "SYS.SERVICES.STATICALLY_CONFIGURED.null",
                 "SYS.SERVICES.SERVICE_ID.null",
+                "SYS.SERVICES.TOPOLOGY_SNAPSHOT.null",
                 "SYS.TASKS.AFFINITY_CACHE_NAME.null",
                 "SYS.TASKS.INTERNAL.null",
                 "SYS.TASKS.END_TIME.null",
diff --git 
a/modules/control-utility/src/test/java/org/apache/ignite/util/SystemViewCommandTest.java
 
b/modules/control-utility/src/test/java/org/apache/ignite/util/SystemViewCommandTest.java
index 3561f7a5547..a35389c4cb7 100644
--- 
a/modules/control-utility/src/test/java/org/apache/ignite/util/SystemViewCommandTest.java
+++ 
b/modules/control-utility/src/test/java/org/apache/ignite/util/SystemViewCommandTest.java
@@ -346,6 +346,7 @@ public class SystemViewCommandTest extends 
GridCommandHandlerClusterByClassAbstr
         assertEquals(srvcCfg.getName(), sysView.get(1)); // name
         assertEquals(DummyService.class.getName(), sysView.get(2)); // 
serviceClass
         assertEquals(Integer.toString(srvcCfg.getMaxPerNodeCount()), 
sysView.get(6)); // maxPerNodeCount
+        
assertEquals(F.first(ignite0.services().serviceDescriptors()).topologySnapshot().toString(),
 sysView.get(10));
     }
 
     /** */
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/SystemViewMBean.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/SystemViewMBean.java
index 97e3b1426a6..ae28c2ed88b 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/SystemViewMBean.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/SystemViewMBean.java
@@ -20,6 +20,7 @@ package org.apache.ignite.internal.managers.systemview;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.net.InetSocketAddress;
+import java.util.AbstractMap;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
@@ -289,7 +290,7 @@ public class SystemViewMBean<R> extends 
ReadOnlyDynamicMBean {
             else if (clazz.isAssignableFrom(Class.class))
                 data.put(name, ((Class<?>)val).getName());
             else if (clazz.isAssignableFrom(IgniteUuid.class) || 
clazz.isAssignableFrom(UUID.class) ||
-                clazz.isAssignableFrom(InetSocketAddress.class))
+                clazz.isAssignableFrom(InetSocketAddress.class) || 
clazz.isAssignableFrom(AbstractMap.class))
                 data.put(name, String.valueOf(val));
             else
                 data.put(name, val);
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/walker/ServiceViewWalker.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/walker/ServiceViewWalker.java
index 030396cb0a1..6dfdfaa8821 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/walker/ServiceViewWalker.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/managers/systemview/walker/ServiceViewWalker.java
@@ -17,6 +17,7 @@
 
 package org.apache.ignite.internal.managers.systemview.walker;
 
+import java.util.Map;
 import java.util.UUID;
 import org.apache.ignite.lang.IgniteUuid;
 import org.apache.ignite.spi.systemview.view.ServiceView;
@@ -41,6 +42,7 @@ public class ServiceViewWalker implements 
SystemViewRowAttributeWalker<ServiceVi
         v.accept(7, "affinityKey", String.class);
         v.accept(8, "nodeFilter", Class.class);
         v.accept(9, "staticallyConfigured", boolean.class);
+        v.accept(10, "topologySnapshot", Map.class);
     }
 
     /** {@inheritDoc} */
@@ -55,10 +57,11 @@ public class ServiceViewWalker implements 
SystemViewRowAttributeWalker<ServiceVi
         v.accept(7, "affinityKey", String.class, row.affinityKey());
         v.accept(8, "nodeFilter", Class.class, row.nodeFilter());
         v.acceptBoolean(9, "staticallyConfigured", row.staticallyConfigured());
+        v.accept(10, "topologySnapshot", Map.class, row.topologySnapshot());
     }
 
     /** {@inheritDoc} */
     @Override public int count() {
-        return 10;
+        return 11;
     }
 }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceInfo.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceInfo.java
index 6a502c7ef55..3d6d60965ff 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceInfo.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/service/ServiceInfo.java
@@ -180,7 +180,6 @@ public class ServiceInfo implements ServiceDescriptor {
     }
 
     /** {@inheritDoc} */
-    @SuppressWarnings("unchecked")
     @Nullable @Override public <K> K affinityKey() {
         return (K)cfg.getAffinityKey();
     }
diff --git 
a/modules/core/src/main/java/org/apache/ignite/spi/systemview/view/ServiceView.java
 
b/modules/core/src/main/java/org/apache/ignite/spi/systemview/view/ServiceView.java
index 9e638ef9f48..ec303340749 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/spi/systemview/view/ServiceView.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/spi/systemview/view/ServiceView.java
@@ -17,15 +17,19 @@
 
 package org.apache.ignite.spi.systemview.view;
 
+import java.util.Map;
 import java.util.UUID;
 import org.apache.ignite.cluster.ClusterNode;
 import org.apache.ignite.internal.managers.systemview.walker.Order;
 import org.apache.ignite.internal.processors.service.ServiceInfo;
 import org.apache.ignite.lang.IgnitePredicate;
 import org.apache.ignite.lang.IgniteUuid;
+import org.apache.ignite.services.ServiceDescriptor;
 
 /**
  * Service representation for a {@link SystemView}.
+ *
+ * @see ServiceDescriptor
  */
 public class ServiceView {
     /** Service descriptor. */
@@ -98,4 +102,9 @@ public class ServiceView {
     public UUID originNodeId() {
         return serviceInfo.originNodeId();
     }
+
+    /** @return Map of number of service instances per node ID. */
+    public Map<UUID, Integer> topologySnapshot() {
+        return serviceInfo.topologySnapshot();
+    }
 }
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/metric/JmxExporterSpiTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/metric/JmxExporterSpiTest.java
index 7bd0b0b421d..1145006a198 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/metric/JmxExporterSpiTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/metric/JmxExporterSpiTest.java
@@ -415,6 +415,7 @@ public class JmxExporterSpiTest extends 
AbstractExporterSpiTest {
         assertEquals(srvcCfg.getName(), sysView.get("name"));
         assertEquals(srvcCfg.getMaxPerNodeCount(), 
sysView.get("maxPerNodeCount"));
         assertEquals(DummyService.class.getName(), 
sysView.get("serviceClass"));
+        assertEquals(F.asMap(ignite.localNode().id(), 1).toString(), 
sysView.get("topologySnapshot"));
     }
 
     /** */
diff --git 
a/modules/core/src/test/java/org/apache/ignite/internal/metric/SystemViewSelfTest.java
 
b/modules/core/src/test/java/org/apache/ignite/internal/metric/SystemViewSelfTest.java
index 6044030c016..dff7e9cdb1f 100644
--- 
a/modules/core/src/test/java/org/apache/ignite/internal/metric/SystemViewSelfTest.java
+++ 
b/modules/core/src/test/java/org/apache/ignite/internal/metric/SystemViewSelfTest.java
@@ -281,7 +281,6 @@ public class SystemViewSelfTest extends 
GridCommonAbstractTest {
 
                 assertEquals(srvcCfg.getName(), sview.name());
                 assertNotNull(sview.serviceId());
-                assertEquals(srvcCfg.getMaxPerNodeCount(), 
sview.maxPerNodeCount());
                 assertEquals(DummyService.class, sview.serviceClass());
                 assertEquals(srvcCfg.getMaxPerNodeCount(), 
sview.maxPerNodeCount());
                 assertNull(sview.cacheName());
@@ -289,6 +288,7 @@ public class SystemViewSelfTest extends 
GridCommonAbstractTest {
                 assertEquals(TestNodeFilter.class, sview.nodeFilter());
                 assertFalse(sview.staticallyConfigured());
                 assertEquals(g.localNode().id(), sview.originNodeId());
+                assertEquals(F.asMap(g.localNode().id(), 1), 
sview.topologySnapshot());
             }
 
             {
@@ -314,7 +314,6 @@ public class SystemViewSelfTest extends 
GridCommonAbstractTest {
 
                 assertEquals(srvcCfg.getName(), sview[0].name());
                 assertNotNull(sview[0].serviceId());
-                assertEquals(srvcCfg.getMaxPerNodeCount(), 
sview[0].maxPerNodeCount());
                 assertEquals(DummyService.class, sview[0].serviceClass());
                 assertEquals(srvcCfg.getMaxPerNodeCount(), 
sview[0].maxPerNodeCount());
                 assertEquals("test-cache", sview[0].cacheName());
@@ -322,6 +321,7 @@ public class SystemViewSelfTest extends 
GridCommonAbstractTest {
                 assertEquals(TestNodeFilter.class, sview[0].nodeFilter());
                 assertFalse(sview[0].staticallyConfigured());
                 assertEquals(g.localNode().id(), sview[0].originNodeId());
+                assertEquals(F.asMap(g.localNode().id(), 2), 
sview[0].topologySnapshot());
             }
         }
     }
diff --git 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/metric/SqlViewExporterSpiTest.java
 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/metric/SqlViewExporterSpiTest.java
index 74aa625cda0..d462f491cb8 100644
--- 
a/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/metric/SqlViewExporterSpiTest.java
+++ 
b/modules/indexing/src/test/java/org/apache/ignite/internal/processors/cache/metric/SqlViewExporterSpiTest.java
@@ -299,7 +299,8 @@ public class SqlViewExporterSpiTest extends 
AbstractExporterSpiTest {
                 "  AFFINITY_KEY, " +
                 "  NODE_FILTER, " +
                 "  STATICALLY_CONFIGURED, " +
-                "  ORIGIN_NODE_ID " +
+                "  ORIGIN_NODE_ID, " +
+                "  TOPOLOGY_SNAPSHOT " +
                 "FROM SYS.SERVICES");
 
         assertEquals(ignite0.context().service().serviceDescriptors().size(), 
srvs.size());
@@ -309,6 +310,7 @@ public class SqlViewExporterSpiTest extends 
AbstractExporterSpiTest {
         assertEquals(srvcCfg.getName(), sysView.get(0));
         assertEquals(DummyService.class.getName(), sysView.get(2));
         assertEquals(srvcCfg.getMaxPerNodeCount(), sysView.get(4));
+        
assertEquals(F.first(ignite0.services().serviceDescriptors()).topologySnapshot().toString(),
 sysView.get(10));
     }
 
     /** */

Reply via email to