Skip to content

Commit 1c15fe0

Browse files
committed
change duplicate host definition from error to warning
1 parent 61850c2 commit 1c15fe0

File tree

3 files changed

+76
-2
lines changed

3 files changed

+76
-2
lines changed

qDup-core/src/main/java/io/hyperfoil/tools/qdup/config/RunConfigBuilder.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,8 @@ public boolean loadYaml(YamlFile yamlFile) {
157157
});
158158
yamlFile.getHostDefinitions().forEach((name, definition) -> {
159159
if (hostDefinitions.containsKey(name) && !hostDefinitions.get(name).equals(definition)) {
160-
addError(String.format("%s tried to load host %s:%s but already defined as %s", yamlFile.getPath(), name, definition, hostDefinitions.get(name)));
160+
logger.warnf("%s tried to load host %s:%s but already defined as %s", yamlFile.getPath(), name, definition, hostDefinitions.get(name));
161+
161162
} else {
162163
hostDefinitions.put(name, definition);
163164
}

qDup-core/src/test/java/io/hyperfoil/tools/qdup/config/RunConfigTest.java

Lines changed: 66 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,82 @@
22

33
import io.hyperfoil.tools.qdup.Host;
44
import io.hyperfoil.tools.qdup.SshTestBase;
5+
import io.hyperfoil.tools.qdup.cmd.Script;
56
import io.hyperfoil.tools.qdup.config.yaml.Parser;
67
import org.junit.Ignore;
78
import org.junit.Test;
89

910
import java.util.List;
1011
import java.util.Set;
12+
import java.util.stream.Collectors;
1113

12-
import static org.junit.Assert.assertEquals;
14+
import static org.junit.Assert.*;
1315

1416
public class RunConfigTest extends SshTestBase {
1517

18+
@Test
19+
public void script_load_order(){
20+
Parser parser = Parser.getInstance();
21+
RunConfigBuilder builder = getBuilder();
22+
builder.loadYaml(parser.loadFile("local",
23+
"""
24+
scripts:
25+
uno:
26+
- sh: echo "hi"
27+
"""
28+
));
29+
builder.loadYaml(parser.loadFile("remote",
30+
"""
31+
scripts:
32+
uno:
33+
- wait-for: bar
34+
"""
35+
));
36+
RunConfig config = builder.buildConfig(parser);
37+
assertFalse("runConfig errors:\n" + config.getErrorStrings().stream().collect(Collectors.joining("\n")), config.hasErrors());
38+
39+
Script uno = config.getScript("uno");
40+
assertNotNull("uno", uno);
41+
assertTrue(uno.getNext().toString().contains("sh"));
42+
}
43+
44+
@Test
45+
public void host_load_order(){
46+
Parser parser = Parser.getInstance();
47+
RunConfigBuilder builder = getBuilder();
48+
builder.loadYaml(parser.loadFile("local",
49+
"""
50+
hosts:
51+
uno: LOCAL//quay.io/fedora/fedora
52+
"""
53+
));
54+
builder.loadYaml(parser.loadFile("remote",
55+
"""
56+
scripts:
57+
foo:
58+
- sh: echo "foo"
59+
hosts:
60+
uno: user@localhost:2222
61+
roles:
62+
test:
63+
hosts:
64+
- uno
65+
setup-scripts:
66+
- foo
67+
"""
68+
));
69+
RunConfig config = builder.buildConfig(parser);
70+
assertFalse("runConfig errors:\n" + config.getErrorStrings().stream().collect(Collectors.joining("\n")), config.hasErrors());
71+
Set<Host> hosts = config.getAllHostsInRoles();
72+
assertEquals(1, hosts.size());
73+
Host first = hosts.iterator().next();
74+
assertNotNull(first);
75+
assertTrue(first.isLocal());
76+
assertTrue(first.isContainer());
77+
assertTrue(first.getDefinedContainer().contains("fedora"));
78+
}
79+
80+
1681
@Test
1782
public void getAllHostsInRoles_alias_same_host(){
1883
Parser parser = Parser.getInstance();

qDup-core/src/test/java/io/hyperfoil/tools/qdup/config/yaml/HostDefinitionConstructTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,14 @@ public static void setupYaml(){
3030
yaml = new Yaml(constructor);
3131
}
3232

33+
@Test
34+
public void string_ip_user(){
35+
Host loaded = yaml.loadAs("userName@127.0.0.1",HostDefinition.class).toHost(new State(""));
36+
assertNotNull("should load from string",loaded);
37+
assertEquals("username","userName",loaded.getUserName());
38+
assertEquals("hostname","127.0.0.1",loaded.getHostName());
39+
assertEquals("port",22,loaded.getPort());
40+
}
3341

3442
@Test
3543
public void string_host_user(){

0 commit comments

Comments
 (0)