return True
return version < (major, minor, revision)
+
+
+def IsEqual(version, major, minor, revision):
+ """Decide if a given version matches the given version.
+
+ If the revision is set to None, only major and minor are compared.
+
+ @param version: (major, minor, revision) or None, with None being
+ before all versions
+ @type version: (int, int, int) or None
+ @param major: major version
+ @type major: int
+ @param minor: minor version
+ @type minor: int
+ @param revision: revision
+ @type revision: int
+
+ """
+ if version is None:
+ return False
+
+ if revision is None:
+ current_major, current_minor, _ = version
+ return (current_major, current_minor) == (major, minor)
+
+ return version == (major, minor, revision)
self.assertTrue(version.IsBefore((2, 10, 1), 2, 11, 0))
self.assertFalse(version.IsBefore((2, 11, 0), 2, 10, 3))
+class IsEqualTest(unittest.Testcase):
+ def testIsEqual(self):
+ self.assertTrue(version.IsEqual((2, 10, 0), 2, 10, 0))
+ self.assertFalse(version.IsEqual((2, 10, 0), 2, 10, 2))
+ self.assertFalse(version.IsEqual((2, 10, 0), 2, 12, 0))
+ self.assertFalse(version.IsEqual((2, 10, 0), 3, 10, 0))
+ self.assertTrue(version.IsEqual((2, 10, 0), 2, 10, None))
+ self.assertTrue(version.IsEqual((2, 10, 5), 2, 10, None))
+ self.assertFalse(version.IsEqual((2, 11, 5), 2, 10, None))
+ self.assertFalse(version.IsEqual((3, 10, 5), 2, 10, None))
if __name__ == "__main__":
testutils.GanetiTestProgram()
version = utils.version.ParseVersion(versionstring)
- if utils.version.IsBefore(version, 2, 11, 0):
+ if utils.version.IsBefore(version, 2, 11, 0) or \
+ utils.version.IsEqual(version, 2, 12, None):
result = utils.RunCmd(["gnt-cluster", "renew-crypto",
"--new-node-certificates", "-f"])
if result.failed: