From 5a75799a515b2e737706ff3fdf7537d5d2dd690a Mon Sep 17 00:00:00 2001 From: Pratick Chokhani Date: Mon, 22 Jun 2026 11:59:07 +0530 Subject: [PATCH] fix(Spanner): Fixed shard file config structure in reverse replication FT tests. --- .../SpannerToSourceDbFTBase.java | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/v2/spanner-to-sourcedb/src/test/java/com/google/cloud/teleport/v2/templates/failureinjectiontesting/SpannerToSourceDbFTBase.java b/v2/spanner-to-sourcedb/src/test/java/com/google/cloud/teleport/v2/templates/failureinjectiontesting/SpannerToSourceDbFTBase.java index 3df81dbb2c..2c316fe52d 100644 --- a/v2/spanner-to-sourcedb/src/test/java/com/google/cloud/teleport/v2/templates/failureinjectiontesting/SpannerToSourceDbFTBase.java +++ b/v2/spanner-to-sourcedb/src/test/java/com/google/cloud/teleport/v2/templates/failureinjectiontesting/SpannerToSourceDbFTBase.java @@ -18,8 +18,8 @@ import static org.apache.beam.it.truthmatchers.PipelineAsserts.assertThatPipeline; import com.google.cloud.teleport.v2.spanner.migrations.shard.Shard; +import com.google.cloud.teleport.v2.spanner.migrations.source.config.JdbcShardConfig; import com.google.gson.Gson; -import com.google.gson.JsonArray; import com.google.gson.JsonObject; import com.google.pubsub.v1.SubscriptionName; import com.google.pubsub.v1.TopicName; @@ -29,6 +29,7 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; @@ -102,11 +103,10 @@ protected void createAndUploadReverseShardConfigToGcs( shard.setPassword(cloudSqlResourceManager.getPassword()); shard.setPort(String.valueOf(cloudSqlResourceManager.getPort())); shard.setDbName(cloudSqlResourceManager.getDatabaseName()); - JsonObject jsObj = new Gson().toJsonTree(shard).getAsJsonObject(); - jsObj.remove("secretManagerUri"); // remove field secretManagerUri - JsonArray ja = new JsonArray(); - ja.add(jsObj); - String shardFileContents = ja.toString(); + JdbcShardConfig jdbcShardConfig = new JdbcShardConfig(); + jdbcShardConfig.setShardConfigs(Collections.singletonList(shard)); + JsonObject jsObj = new Gson().toJsonTree(jdbcShardConfig).getAsJsonObject(); + String shardFileContents = jsObj.toString(); LOG.info("Shard file contents: {}", shardFileContents); gcsResourceManager.createArtifact("input/shard.json", shardFileContents); } @@ -116,7 +116,7 @@ protected void createAndUploadReverseShardConfigToGcs( List cloudSqlResourceManagers, String privateHost, List logicalShardIds) { - JsonArray ja = new JsonArray(); + List shardConfigs = new ArrayList<>(); for (int i = 0; i < cloudSqlResourceManagers.size(); ++i) { Shard shard = new Shard(); shard.setLogicalShardId(logicalShardIds.get(i)); @@ -126,11 +126,12 @@ protected void createAndUploadReverseShardConfigToGcs( shard.setPassword(cloudSqlResourceManager.getPassword()); shard.setPort(String.valueOf(cloudSqlResourceManager.getPort())); shard.setDbName(cloudSqlResourceManager.getDatabaseName()); - JsonObject jsObj = new Gson().toJsonTree(shard).getAsJsonObject(); - jsObj.remove("secretManagerUri"); // remove field secretManagerUri - ja.add(jsObj); + shardConfigs.add(shard); } - String shardFileContents = ja.toString(); + JdbcShardConfig jdbcShardConfig = new JdbcShardConfig(); + jdbcShardConfig.setShardConfigs(shardConfigs); + JsonObject jsObj = new Gson().toJsonTree(jdbcShardConfig).getAsJsonObject(); + String shardFileContents = jsObj.toString(); LOG.info("Shard file contents: {}", shardFileContents); gcsResourceManager.createArtifact("input/shard.json", shardFileContents); }