From: Tomas Cere Date: Tue, 22 Dec 2015 14:39:22 +0000 (+0100) Subject: BUG 3274 - Generate multiple configs for same port X-Git-Tag: release/beryllium~43^2 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=06b3ad150816b67b65bb063b06ce906fac75aedc;p=netconf.git BUG 3274 - Generate multiple configs for same port Change-Id: I1fdf43efa6b0abf3df9e8844b06d30ace2425b50 Signed-off-by: Tomas Cere --- diff --git a/opendaylight/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/Main.java b/opendaylight/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/Main.java index ee8cce6703..7f6595f614 100644 --- a/opendaylight/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/Main.java +++ b/opendaylight/netconf/tools/netconf-testtool/src/main/java/org/opendaylight/netconf/test/tool/Main.java @@ -53,6 +53,9 @@ public final class Main { @Arg(dest = "devices-count") public int deviceCount; + @Arg(dest = "devices-per-port") + public int devicesPerPort; + @Arg(dest = "starting-port") public int startingPort; @@ -94,10 +97,15 @@ public final class Main { parser.addArgument("--device-count") .type(Integer.class) .setDefault(1) - .type(Integer.class) - .help("Number of simulated netconf devices to spin") + .help("Number of simulated netconf devices to spin. This is the number of actual ports open for the devices.") .dest("devices-count"); + parser.addArgument("--devices-per-port") + .type(Integer.class) + .setDefault(1) + .help("Amount of config files generated per port to spoof more devices then are actually running") + .dest("devices-per-port"); + parser.addArgument("--schemas-dir") .type(File.class) .help("Directory containing yang schemas to describe simulated devices. Some schemas e.g. netconf monitoring and inet types are included by default") @@ -172,6 +180,7 @@ public final class Main { void validate() { checkArgument(deviceCount > 0, "Device count has to be > 0"); checkArgument(startingPort > 1023, "Starting port has to be > 1023"); + checkArgument(devicesPerPort > 0, "Atleast one device per port needed"); if(schemasDir != null) { checkArgument(schemasDir.exists(), "Schemas dir has to exist"); @@ -197,7 +206,10 @@ public final class Main { } if(params.distroFolder != null) { final ConfigGenerator configGenerator = new ConfigGenerator(params.distroFolder, openDevices); - final List generated = configGenerator.generate(params.ssh, params.generateConfigBatchSize, params.generateConfigsTimeout, params.generateConfigsAddress); + final List generated = configGenerator.generate( + params.ssh, params.generateConfigBatchSize, + params.generateConfigsTimeout, params.generateConfigsAddress, + params.devicesPerPort); configGenerator.updateFeatureFile(generated); configGenerator.changeLoadOrder(); } @@ -255,7 +267,9 @@ public final class Main { this.openDevices = openDevices; } - public List generate(final boolean useSsh, final int batchSize, final int generateConfigsTimeout, final String address) { + public List generate(final boolean useSsh, final int batchSize, + final int generateConfigsTimeout, final String address, + final int devicesPerPort) { if(configDir.exists() == false) { Preconditions.checkState(configDir.mkdirs(), "Unable to create directory " + configDir); } @@ -289,21 +303,23 @@ public final class Main { batchStart = openDevice; } - final String name = String.valueOf(openDevice) + SIM_DEVICE_SUFFIX; - String configContent = String.format(middleBlueprint, name, address, String.valueOf(openDevice), String.valueOf(!useSsh)); - configContent = String.format("%s%s%d%s\n%s\n", configContent, "", generateConfigsTimeout, "", ""); - - b.append(configContent); - connectorCount++; - if(connectorCount == batchSize) { - b.append(after); - final File to = new File(configDir, String.format(SIM_DEVICE_CFG_PREFIX + "%d-%d.xml", batchStart, openDevice)); - generatedConfigs.add(to); - Files.write(b.toString(), to, Charsets.UTF_8); - connectorCount = 0; - b = new StringBuilder(); - b.append(before); - batchStart = null; + for (int i = 0; i < devicesPerPort; i++) { + final String name = String.valueOf(openDevice) + SIM_DEVICE_SUFFIX + (i == 0 ? "" : "-" + String.valueOf(i)); + String configContent = String.format(middleBlueprint, name, address, String.valueOf(openDevice), String.valueOf(!useSsh)); + configContent = String.format("%s%s%d%s\n%s\n", configContent, "", generateConfigsTimeout, "", ""); + + b.append(configContent); + connectorCount++; + if(connectorCount == batchSize) { + b.append(after); + final File to = new File(configDir, String.format(SIM_DEVICE_CFG_PREFIX + "%d-%d.xml", batchStart, openDevice)); + generatedConfigs.add(to); + Files.write(b.toString(), to, Charsets.UTF_8); + connectorCount = 0; + b = new StringBuilder(); + b.append(before); + batchStart = null; + } } }