summaryrefslogtreecommitdiffstats
path: root/node-admin/src/test
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@verizonmedia.com>2021-05-04 17:42:49 +0200
committerValerij Fredriksen <valerijf@verizonmedia.com>2021-05-04 17:42:49 +0200
commit2a57da593db86f0df158aaa27f1944fe6a357edd (patch)
treecc4696d69b400d4aff52fcc59cf3d44175317e9d /node-admin/src/test
parent448d9205aa15351fbb770a7fbfae88d5b33bbe3d (diff)
Skip invoking yum on install/remove if package(s) are present/missing in rpm
Diffstat (limited to 'node-admin/src/test')
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/task/util/yum/YumTest.java25
1 files changed, 25 insertions, 0 deletions
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 37695ca9504..92f8f78d255 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
@@ -78,6 +78,7 @@ public class YumTest {
@Test
public void testAlreadyInstalled() {
+ mockRpmQuery("package-1", null);
mockYumVersion();
terminal.expectCommand(
"yum install --assumeyes --enablerepo=repo1 --enablerepo=repo2 --setopt skip_missing_names_on_install=False package-1 package-2 2>&1",
@@ -90,6 +91,7 @@ public class YumTest {
.converge(taskContext));
// RHEL 8
+ mockRpmQuery("package-1", null);
mockYumVersion(YumVersion.rhel8);
terminal.expectCommand(
"yum install --assumeyes --enablerepo=repo1 --enablerepo=repo2 --setopt skip_missing_names_on_install=False package-1 package-2 2>&1",
@@ -125,6 +127,7 @@ public class YumTest {
@Test
public void testAlreadyRemoved() {
+ mockRpmQuery("package-1", YumPackageName.fromString("package-1-1.2.3-1"));
mockYumVersion();
terminal.expectCommand(
"yum remove --assumeyes package-1 package-2 2>&1",
@@ -136,6 +139,7 @@ public class YumTest {
.converge(taskContext));
// RHEL 8
+ mockRpmQuery("package-1", YumPackageName.fromString("package-1-1.2.3-1"));
mockYumVersion(YumVersion.rhel8);
terminal.expectCommand(
"yum remove --assumeyes package-1 package-2 2>&1",
@@ -147,7 +151,15 @@ public class YumTest {
}
@Test
+ public void skipsYumRemoveNotInRpm() {
+ mockRpmQuery("package-1", null);
+ mockRpmQuery("package-2", null);
+ assertFalse(yum.remove("package-1", "package-2").converge(taskContext));
+ }
+
+ @Test
public void testInstall() {
+ mockRpmQuery("package-1", null);
mockYumVersion();
terminal.expectCommand(
"yum install --assumeyes --setopt skip_missing_names_on_install=False package-1 package-2 2>&1",
@@ -160,7 +172,15 @@ public class YumTest {
}
@Test
+ public void skipsYumInstallIfInRpm() {
+ mockRpmQuery("package-1", YumPackageName.fromString("package-1-1.2.3-1"));
+ mockRpmQuery("package-2", YumPackageName.fromString("1:package-2-1.2.3-1.el7.x86_64"));
+ assertFalse(yum.install("package-1-1.2.3-1", "package-2").converge(taskContext));
+ }
+
+ @Test
public void testInstallWithEnablerepo() {
+ mockRpmQuery("package-1", null);
mockYumVersion();
terminal.expectCommand(
"yum install --assumeyes --enablerepo=repo-name --setopt skip_missing_names_on_install=False package-1 package-2 2>&1",
@@ -273,6 +293,7 @@ public class YumTest {
@Test(expected = ChildProcessFailureException.class)
public void testFailedInstall() {
+ mockRpmQuery("package-1", null);
mockYumVersion();
terminal.expectCommand(
"yum install --assumeyes --enablerepo=repo-name --setopt skip_missing_names_on_install=False package-1 package-2 2>&1",
@@ -288,6 +309,7 @@ public class YumTest {
@Test
public void testUnknownPackages() {
+ mockRpmQuery("package-1", null);
mockYumVersion();
terminal.expectCommand(
"yum install --assumeyes --setopt skip_missing_names_on_install=False package-1 package-2 package-3 2>&1",
@@ -328,4 +350,7 @@ public class YumTest {
mockYumVersion(YumVersion.rhel7);
}
+ private void mockRpmQuery(String packageName, YumPackageName installedOrNull) {
+ new YumTester(terminal).expectQueryInstalled(packageName).andReturn(installedOrNull);
+ }
}