summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@oath.com>2018-09-06 14:02:58 +0200
committerHåkon Hallingstad <hakon@oath.com>2018-09-06 14:02:58 +0200
commit6d70f2263889c3993c05f3bf4a22e1c3f0b4bdbd (patch)
tree58f7d8975124d5520c12c73a222126beef408aa3 /node-admin
parentc1fdecf3cb26f1a3aef2caf290916a4f533c6c58 (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.java9
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/YumTest.java8
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();
}