modules/runner/src/integrationTest/java/org/apache/ignite/internal/distribution/zones/ItDistributionZonesFilterTest.java [177:221]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        String filter = "'$[?(@.region == \"US\" && @.storage == \"SSD\")]'";

        IgniteImpl node0 = node(0);

        Session session = node0.sql().createSession();

        session.execute(null, "CREATE ZONE \"TEST_ZONE\" WITH "
                + "\"REPLICAS\" = 3, "
                + "\"PARTITIONS\" = 2, "
                + "\"DATA_NODES_FILTER\" = " + filter + ", "
                + "\"DATA_NODES_AUTO_ADJUST_SCALE_UP\" = 10000, "
                + "\"DATA_NODES_AUTO_ADJUST_SCALE_DOWN\" = 10000");

        String tableName = "table1";

        session.execute(null, "CREATE TABLE " + tableName + "("
                + COLUMN_KEY + " INT PRIMARY KEY, " + COLUMN_VAL + " VARCHAR) WITH PRIMARY_ZONE='TEST_ZONE'");

        MetaStorageManager metaStorageManager = (MetaStorageManager) IgniteTestUtils
                .getFieldValue(node0, IgniteImpl.class, "metaStorageMgr");

        TableManager tableManager = (TableManager) IgniteTestUtils.getFieldValue(node0, IgniteImpl.class, "distributedTblMgr");

        TableImpl table = (TableImpl) tableManager.table(tableName);

        TablePartitionId partId = new TablePartitionId(table.tableId(), 0);

        // TODO: https://issues.apache.org/jira/browse/IGNITE-19425 here we should have no nodes,
        // which pass the filter, when dataNodes from DistributionZoneManager will be used
        assertValueInStorage(
                metaStorageManager,
                stablePartAssignmentsKey(partId),
                (v) -> ((Set<Assignment>) fromBytes(v))
                        .stream().map(Assignment::consistentId).collect(Collectors.toSet()),
                Set.of(node(0).name()),
                TIMEOUT_MILLIS
        );

        @Language("JSON") String firstNodeAttributes = "{region:{attribute:\"US\"},storage:{attribute:\"SSD\"}}";

        // This node pass the filter
        startNode(1, createStartConfig(firstNodeAttributes));

        // Expected size is 1 because we have timers equals to 10000, so no scale up will be propagated.
        waitDataNodeAndListenersAreHandled(metaStorageManager, 1);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



modules/runner/src/integrationTest/java/org/apache/ignite/internal/distribution/zones/ItDistributionZonesFilterTest.java [246:290]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
        String filter = "'$[?(@.region == \"US\" && @.storage == \"SSD\")]'";

        IgniteImpl node0 = node(0);

        Session session = node0.sql().createSession();

        session.execute(null, "CREATE ZONE \"TEST_ZONE\" WITH "
                + "\"REPLICAS\" = 3, "
                + "\"PARTITIONS\" = 2, "
                + "\"DATA_NODES_FILTER\" = " + filter + ", "
                + "\"DATA_NODES_AUTO_ADJUST_SCALE_UP\" = 10000, "
                + "\"DATA_NODES_AUTO_ADJUST_SCALE_DOWN\" = 10000");

        String tableName = "table1";

        session.execute(null, "CREATE TABLE " + tableName + "("
                + COLUMN_KEY + " INT PRIMARY KEY, " + COLUMN_VAL + " VARCHAR) WITH PRIMARY_ZONE='TEST_ZONE'");

        MetaStorageManager metaStorageManager = (MetaStorageManager) IgniteTestUtils
                .getFieldValue(node0, IgniteImpl.class, "metaStorageMgr");

        TableManager tableManager = (TableManager) IgniteTestUtils.getFieldValue(node0, IgniteImpl.class, "distributedTblMgr");

        TableImpl table = (TableImpl) tableManager.table(tableName);

        TablePartitionId partId = new TablePartitionId(table.tableId(), 0);

        // TODO: https://issues.apache.org/jira/browse/IGNITE-19425 here we should have no nodes,
        // which pass the filter, when dataNodes from DistributionZoneManager will be used
        assertValueInStorage(
                metaStorageManager,
                stablePartAssignmentsKey(partId),
                (v) -> ((Set<Assignment>) fromBytes(v))
                        .stream().map(Assignment::consistentId).collect(Collectors.toSet()),
                Set.of(node(0).name()),
                TIMEOUT_MILLIS
        );

        @Language("JSON") String firstNodeAttributes = "{region:{attribute:\"US\"},storage:{attribute:\"SSD\"}}";

        // This node pass the filter
        startNode(1, createStartConfig(firstNodeAttributes));

        // Expected size is 2 because we have timers equals to 10000, so no scale up will be propagated.
        waitDataNodeAndListenersAreHandled(metaStorageManager, 1);
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



