diff options
author | Valerij Fredriksen <valerijf@verizonmedia.com> | 2021-05-04 17:42:49 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@verizonmedia.com> | 2021-05-04 17:42:49 +0200 |
commit | 2a57da593db86f0df158aaa27f1944fe6a357edd (patch) | |
tree | cc4696d69b400d4aff52fcc59cf3d44175317e9d /node-admin/src/test | |
parent | 448d9205aa15351fbb770a7fbfae88d5b33bbe3d (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.java | 25 |
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); + } } |