|
129 | 129 | import io.tehuti.Metric; |
130 | 130 | import io.tehuti.metrics.MetricsRepository; |
131 | 131 | import java.io.File; |
| 132 | +import java.io.FileWriter; |
132 | 133 | import java.io.IOException; |
133 | 134 | import java.nio.ByteBuffer; |
134 | 135 | import java.nio.file.Files; |
@@ -1215,20 +1216,32 @@ public void testCrashedDaVinciWithIngestionIsolation() throws Exception { |
1215 | 1216 | while (port1 == port2) { |
1216 | 1217 | port2 = TestUtils.getFreePort(); |
1217 | 1218 | } |
1218 | | - ForkedJavaProcess forkedDaVinciUserApp = ForkedJavaProcess.exec( |
1219 | | - DaVinciUserApp.class, |
1220 | | - zkHosts, |
1221 | | - baseDataPath, |
1222 | | - storeName, |
1223 | | - "100", |
1224 | | - "10", |
1225 | | - "true", |
1226 | | - Integer.toString(port1), |
1227 | | - Integer.toString(port2), |
1228 | | - StorageClass.DISK.toString(), |
1229 | | - "false", |
1230 | | - "false", |
1231 | | - "false"); |
| 1219 | + |
| 1220 | + // Start the first DaVinci Client using DaVinciUserApp for regular ingestion |
| 1221 | + File configDir = Utils.getTempDataDirectory(); |
| 1222 | + File configFile = new File(configDir, "dvc-config.properties"); |
| 1223 | + |
| 1224 | + Properties props = new Properties(); |
| 1225 | + props.setProperty("zk.hosts", zkHosts); |
| 1226 | + props.setProperty("base.data.path", baseDataPath); |
| 1227 | + props.setProperty("store.name", storeName); |
| 1228 | + props.setProperty("sleep.seconds", "100"); |
| 1229 | + props.setProperty("heartbeat.timeout.seconds", "10"); |
| 1230 | + props.setProperty("ingestion.isolation", "true"); |
| 1231 | + props.setProperty("blob.transfer.server.port", Integer.toString(port1)); |
| 1232 | + props.setProperty("blob.transfer.client.port", Integer.toString(port2)); |
| 1233 | + props.setProperty("storage.class", StorageClass.DISK.toString()); |
| 1234 | + props.setProperty("record.transformer.enabled", "false"); |
| 1235 | + props.setProperty("blob.transfer.manager.enabled", "false"); |
| 1236 | + props.setProperty("batch.push.report.enabled", "false"); |
| 1237 | + |
| 1238 | + // Write properties to file |
| 1239 | + try (FileWriter writer = new FileWriter(configFile)) { |
| 1240 | + props.store(writer, null); |
| 1241 | + } |
| 1242 | + |
| 1243 | + ForkedJavaProcess forkedDaVinciUserApp = ForkedJavaProcess.exec(DaVinciUserApp.class, configFile.getAbsolutePath()); |
| 1244 | + |
1232 | 1245 | // Sleep long enough so the forked Da Vinci app process can finish ingestion. |
1233 | 1246 | Thread.sleep(60000); |
1234 | 1247 | IsolatedIngestionUtils.executeShellCommand("kill " + forkedDaVinciUserApp.pid()); |
@@ -1293,20 +1306,28 @@ public void testBlobP2PTransferAmongDVC(boolean batchPushReportEnable) throws Ex |
1293 | 1306 | setUpStore(storeName, paramsConsumer, properties -> {}, true); |
1294 | 1307 |
|
1295 | 1308 | // Start the first DaVinci Client using DaVinciUserApp for regular ingestion |
1296 | | - ForkedJavaProcess.exec( |
1297 | | - DaVinciUserApp.class, |
1298 | | - zkHosts, |
1299 | | - dvcPath1, |
1300 | | - storeName, |
1301 | | - "100", |
1302 | | - "10", |
1303 | | - "false", |
1304 | | - Integer.toString(port1), |
1305 | | - Integer.toString(port2), |
1306 | | - StorageClass.DISK.toString(), |
1307 | | - "false", |
1308 | | - "true", |
1309 | | - String.valueOf(batchPushReportEnable)); |
| 1309 | + File configDir = Utils.getTempDataDirectory(); |
| 1310 | + File configFile = new File(configDir, "dvc-config.properties"); |
| 1311 | + Properties props = new Properties(); |
| 1312 | + props.setProperty("zk.hosts", zkHosts); |
| 1313 | + props.setProperty("base.data.path", dvcPath1); |
| 1314 | + props.setProperty("store.name", storeName); |
| 1315 | + props.setProperty("sleep.seconds", "100"); |
| 1316 | + props.setProperty("heartbeat.timeout.seconds", "10"); |
| 1317 | + props.setProperty("ingestion.isolation", "false"); |
| 1318 | + props.setProperty("blob.transfer.server.port", Integer.toString(port1)); |
| 1319 | + props.setProperty("blob.transfer.client.port", Integer.toString(port2)); |
| 1320 | + props.setProperty("storage.class", StorageClass.DISK.toString()); |
| 1321 | + props.setProperty("record.transformer.enabled", "false"); |
| 1322 | + props.setProperty("blob.transfer.manager.enabled", "true"); |
| 1323 | + props.setProperty("batch.push.report.enabled", String.valueOf(batchPushReportEnable)); |
| 1324 | + |
| 1325 | + // Write properties to file |
| 1326 | + try (FileWriter writer = new FileWriter(configFile)) { |
| 1327 | + props.store(writer, null); |
| 1328 | + } |
| 1329 | + |
| 1330 | + ForkedJavaProcess.exec(DaVinciUserApp.class, configFile.getAbsolutePath()); |
1310 | 1331 |
|
1311 | 1332 | // Wait for the first DaVinci Client to complete ingestion |
1312 | 1333 | Thread.sleep(60000); |
@@ -1422,20 +1443,28 @@ public void testBlobP2PTransferForNonLaggingDaVinciClient() throws Exception { |
1422 | 1443 | setUpStore(storeName, paramsConsumer, properties -> {}, true); |
1423 | 1444 |
|
1424 | 1445 | // Start the first DaVinci Client using DaVinciUserApp for regular ingestion |
1425 | | - ForkedJavaProcess.exec( |
1426 | | - DaVinciUserApp.class, |
1427 | | - zkHosts, |
1428 | | - dvcPath1, |
1429 | | - storeName, |
1430 | | - "100", |
1431 | | - "10", |
1432 | | - "false", |
1433 | | - Integer.toString(port1), |
1434 | | - Integer.toString(port2), |
1435 | | - StorageClass.DISK.toString(), |
1436 | | - "false", |
1437 | | - "true", |
1438 | | - "false"); |
| 1446 | + File configDir = Utils.getTempDataDirectory(); |
| 1447 | + File configFile = new File(configDir, "dvc-config.properties"); |
| 1448 | + Properties props = new Properties(); |
| 1449 | + props.setProperty("zk.hosts", zkHosts); |
| 1450 | + props.setProperty("base.data.path", dvcPath1); |
| 1451 | + props.setProperty("store.name", storeName); |
| 1452 | + props.setProperty("sleep.seconds", "100"); |
| 1453 | + props.setProperty("heartbeat.timeout.seconds", "10"); |
| 1454 | + props.setProperty("ingestion.isolation", "false"); |
| 1455 | + props.setProperty("blob.transfer.server.port", Integer.toString(port1)); |
| 1456 | + props.setProperty("blob.transfer.client.port", Integer.toString(port2)); |
| 1457 | + props.setProperty("storage.class", StorageClass.DISK.toString()); |
| 1458 | + props.setProperty("record.transformer.enabled", "false"); |
| 1459 | + props.setProperty("blob.transfer.manager.enabled", "true"); |
| 1460 | + props.setProperty("batch.push.report.enabled", "false"); |
| 1461 | + |
| 1462 | + // Write properties to file |
| 1463 | + try (FileWriter writer = new FileWriter(configFile)) { |
| 1464 | + props.store(writer, null); |
| 1465 | + } |
| 1466 | + |
| 1467 | + ForkedJavaProcess.exec(DaVinciUserApp.class, configFile.getAbsolutePath()); |
1439 | 1468 |
|
1440 | 1469 | // Wait for the first DaVinci Client to complete ingestion |
1441 | 1470 | Thread.sleep(60000); |
@@ -1609,20 +1638,28 @@ public void testBlobP2PTransferAmongDVCWithServerShutdown(boolean isGracefulShut |
1609 | 1638 | setUpStore(storeName, paramsConsumer, properties -> {}, true); |
1610 | 1639 |
|
1611 | 1640 | // Start the first DaVinci Client using DaVinciUserApp |
1612 | | - ForkedJavaProcess forkedDaVinciUserApp = ForkedJavaProcess.exec( |
1613 | | - DaVinciUserApp.class, |
1614 | | - zkHosts, |
1615 | | - dvcPath1, |
1616 | | - storeName, |
1617 | | - "100", |
1618 | | - "10", |
1619 | | - "false", |
1620 | | - Integer.toString(port1), |
1621 | | - Integer.toString(port2), |
1622 | | - StorageClass.DISK.toString(), |
1623 | | - "false", |
1624 | | - "true", |
1625 | | - "false"); |
| 1641 | + File configDir = Utils.getTempDataDirectory(); |
| 1642 | + File configFile = new File(configDir, "dvc-config.properties"); |
| 1643 | + Properties props = new Properties(); |
| 1644 | + props.setProperty("zk.hosts", zkHosts); |
| 1645 | + props.setProperty("base.data.path", dvcPath1); |
| 1646 | + props.setProperty("store.name", storeName); |
| 1647 | + props.setProperty("sleep.seconds", "100"); |
| 1648 | + props.setProperty("heartbeat.timeout.seconds", "10"); |
| 1649 | + props.setProperty("ingestion.isolation", "false"); |
| 1650 | + props.setProperty("blob.transfer.server.port", Integer.toString(port1)); |
| 1651 | + props.setProperty("blob.transfer.client.port", Integer.toString(port2)); |
| 1652 | + props.setProperty("storage.class", StorageClass.DISK.toString()); |
| 1653 | + props.setProperty("record.transformer.enabled", "false"); |
| 1654 | + props.setProperty("blob.transfer.manager.enabled", "true"); |
| 1655 | + props.setProperty("batch.push.report.enabled", "false"); |
| 1656 | + |
| 1657 | + // Write properties to file |
| 1658 | + try (FileWriter writer = new FileWriter(configFile)) { |
| 1659 | + props.store(writer, null); |
| 1660 | + } |
| 1661 | + |
| 1662 | + ForkedJavaProcess forkedDaVinciUserApp = ForkedJavaProcess.exec(DaVinciUserApp.class, configFile.getAbsolutePath()); |
1626 | 1663 |
|
1627 | 1664 | // Wait for the first DaVinci Client to complete ingestion |
1628 | 1665 | Thread.sleep(60000); |
|
0 commit comments