diff options
author | Håkon Hallingstad <hakon@oath.com> | 2018-09-06 14:02:58 +0200 |
---|---|---|
committer | Håkon Hallingstad <hakon@oath.com> | 2018-09-06 14:02:58 +0200 |
commit | 6d70f2263889c3993c05f3bf4a22e1c3f0b4bdbd (patch) | |
tree | 58f7d8975124d5520c12c73a222126beef408aa3 /node-admin | |
parent | c1fdecf3cb26f1a3aef2caf290916a4f533c6c58 (diff) |
Enabling multiple YUM repos
Diffstat (limited to 'node-admin')
-rw-r--r-- | node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/Yum.java | 9 | ||||
-rw-r--r-- | node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/YumTest.java | 8 |
2 files changed, 9 insertions, 8 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/Yum.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/Yum.java index 35e3d1f8b9e..f41711c1594 100644 --- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/Yum.java +++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/Yum.java @@ -5,6 +5,7 @@ import com.yahoo.vespa.hosted.node.admin.component.TaskContext; import com.yahoo.vespa.hosted.node.admin.task.util.process.CommandLine; import com.yahoo.vespa.hosted.node.admin.task.util.process.Terminal; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Optional; @@ -162,7 +163,7 @@ public class Yum { private final List<YumPackageName> packages; private final Pattern commandOutputNoopPattern; - private Optional<String> enabledRepo = Optional.empty(); + private List<String> enabledRepo = new ArrayList<>(); private GenericYumCommand(Terminal terminal, String yumCommand, @@ -179,15 +180,15 @@ public class Yum { } @SuppressWarnings("unchecked") - public GenericYumCommand enableRepo(String repo) { - enabledRepo = Optional.of(repo); + public GenericYumCommand enableRepos(String... repos) { + enabledRepo.addAll(Arrays.asList(repos)); return this; } public boolean converge(TaskContext context) { CommandLine commandLine = terminal.newCommandLine(context); commandLine.add("yum", yumCommand, "--assumeyes"); - enabledRepo.ifPresent(repo -> commandLine.add("--enablerepo=" + repo)); + enabledRepo.forEach(repo -> commandLine.add("--enablerepo=" + repo)); commandLine.add(packages.stream().map(YumPackageName::toName).collect(Collectors.toList())); // There's no way to figure out whether a yum command would have been a no-op. diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/YumTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/YumTest.java index 4f2d65bf522..2e65c1aae09 100644 --- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/YumTest.java +++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/YumTest.java @@ -47,13 +47,13 @@ public class YumTest { @Test public void testAlreadyInstalled() { terminal.expectCommand( - "yum install --assumeyes --enablerepo=repo-name package-1 package-2 2>&1", + "yum install --assumeyes --enablerepo=repo1 --enablerepo=repo2 package-1 package-2 2>&1", 0, "foobar\nNothing to do\n"); assertFalse(yum .install("package-1", "package-2") - .enableRepo("repo-name") + .enableRepos("repo1", "repo2") .converge(taskContext)); } @@ -102,7 +102,7 @@ public class YumTest { assertTrue(yum .install("package-1", "package-2") - .enableRepo("repo-name") + .enableRepos("repo-name") .converge(taskContext)); } @@ -185,7 +185,7 @@ public class YumTest { "error"); yum.install("package-1", "package-2") - .enableRepo("repo-name") + .enableRepos("repo-name") .converge(taskContext); fail(); } |