Merge pull request #15 from smgoller/sole-tenant
Convert to sole tenant style cluster.
diff --git a/harness/src/main/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructureFactory.java b/harness/src/main/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructureFactory.java
index 00ed0c5..f63cda2 100644
--- a/harness/src/main/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructureFactory.java
+++ b/harness/src/main/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructureFactory.java
@@ -19,13 +19,14 @@
import java.util.Arrays;
import java.util.Collection;
+import java.util.List;
import org.apache.geode.perftest.infrastructure.Infrastructure;
import org.apache.geode.perftest.infrastructure.InfrastructureFactory;
public class SshInfrastructureFactory implements InfrastructureFactory {
- private final Collection<String> hosts;
+ private final List<String> hosts;
private final String user;
public SshInfrastructureFactory(String user, String... hosts) {
@@ -34,8 +35,12 @@
}
@Override
- public Infrastructure create(int nodes) throws Exception {
- return new SshInfrastructure(hosts, user);
+ public Infrastructure create(int nodes) {
+ if (nodes > hosts.size()) {
+ throw new IllegalStateException(
+ "Not enough hosts to create " + nodes + " nodes. Available hosts: " + hosts);
+ }
+ return new SshInfrastructure(hosts.subList(0, nodes), user);
}
public Collection<String> getHosts() {
diff --git a/harness/src/test/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructureFactoryTest.java b/harness/src/test/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructureFactoryTest.java
new file mode 100644
index 0000000..9c929a1
--- /dev/null
+++ b/harness/src/test/java/org/apache/geode/perftest/infrastructure/ssh/SshInfrastructureFactoryTest.java
@@ -0,0 +1,36 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geode.perftest.infrastructure.ssh;
+
+import org.assertj.core.api.Assertions;
+import org.junit.Test;
+
+import org.apache.geode.perftest.infrastructure.Infrastructure;
+
+public class SshInfrastructureFactoryTest {
+
+ @Test
+ public void ignoresExtraHosts() {
+ SshInfrastructureFactory factory =
+ new SshInfrastructureFactory("user", "localhost", "localhost", "localhost");
+ Infrastructure infra = factory.create(2);
+
+ Assertions.assertThat(infra.getNodes()).hasSize(2);
+ }
+
+}