X-Git-Url: https://code.grnet.gr/git/ganeti-local/blobdiff_plain/362c5845d2686cff68c495dc904a1e3d5477a5f3..43c16a8a1adfd543751fcaf60ad4c8e04cf83688:/test/cfgupgrade_unittest.py diff --git a/test/cfgupgrade_unittest.py b/test/cfgupgrade_unittest.py index 3bbddcf..a8eb8bc 100755 --- a/test/cfgupgrade_unittest.py +++ b/test/cfgupgrade_unittest.py @@ -1,7 +1,7 @@ #!/usr/bin/python # -# Copyright (C) 2010 Google Inc. +# Copyright (C) 2010, 2012 Google Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -161,12 +161,16 @@ class TestCfgupgrade(unittest.TestCase): def testRapiUsers(self): self.assertFalse(os.path.exists(self.rapi_users_path)) self.assertFalse(os.path.exists(self.rapi_users_path_pre24)) + self.assertFalse(os.path.exists(os.path.dirname(self.rapi_users_path))) utils.WriteFile(self.rapi_users_path_pre24, data="some user\n") self._TestSimpleUpgrade(constants.BuildVersion(2, 3, 0), False) + self.assertTrue(os.path.isdir(os.path.dirname(self.rapi_users_path))) self.assert_(os.path.islink(self.rapi_users_path_pre24)) self.assert_(os.path.isfile(self.rapi_users_path)) + self.assertEqual(os.readlink(self.rapi_users_path_pre24), + self.rapi_users_path) for path in [self.rapi_users_path, self.rapi_users_path_pre24]: self.assertEqual(utils.ReadFile(path), "some user\n") @@ -180,6 +184,8 @@ class TestCfgupgrade(unittest.TestCase): self.assert_(os.path.islink(self.rapi_users_path_pre24)) self.assert_(os.path.isfile(self.rapi_users_path)) + self.assertEqual(os.readlink(self.rapi_users_path_pre24), + self.rapi_users_path) for path in [self.rapi_users_path, self.rapi_users_path_pre24]: self.assertEqual(utils.ReadFile(path), "other user\n") @@ -187,13 +193,77 @@ class TestCfgupgrade(unittest.TestCase): self.assertFalse(os.path.exists(self.rapi_users_path)) self.assertFalse(os.path.exists(self.rapi_users_path_pre24)) + os.mkdir(os.path.dirname(self.rapi_users_path)) os.symlink(self.rapi_users_path, self.rapi_users_path_pre24) - utils.WriteFile(self.rapi_users_path_pre24, data="hello world\n") + utils.WriteFile(self.rapi_users_path, data="hello world\n") self._TestSimpleUpgrade(constants.BuildVersion(2, 2, 0), False) - self.assert_(os.path.isfile(self.rapi_users_path)) + self.assert_(os.path.isfile(self.rapi_users_path) and + not os.path.islink(self.rapi_users_path)) self.assert_(os.path.islink(self.rapi_users_path_pre24)) + self.assertEqual(os.readlink(self.rapi_users_path_pre24), + self.rapi_users_path) + for path in [self.rapi_users_path, self.rapi_users_path_pre24]: + self.assertEqual(utils.ReadFile(path), "hello world\n") + + def testRapiUsersExistingTarget(self): + self.assertFalse(os.path.exists(self.rapi_users_path)) + self.assertFalse(os.path.exists(self.rapi_users_path_pre24)) + + os.mkdir(os.path.dirname(self.rapi_users_path)) + utils.WriteFile(self.rapi_users_path, data="other user\n") + utils.WriteFile(self.rapi_users_path_pre24, data="hello world\n") + + self.assertRaises(Exception, self._TestSimpleUpgrade, + constants.BuildVersion(2, 2, 0), False) + + for path in [self.rapi_users_path, self.rapi_users_path_pre24]: + self.assert_(os.path.isfile(path) and not os.path.islink(path)) + self.assertEqual(utils.ReadFile(self.rapi_users_path), "other user\n") + self.assertEqual(utils.ReadFile(self.rapi_users_path_pre24), + "hello world\n") + + def testRapiUsersDryRun(self): + self.assertFalse(os.path.exists(self.rapi_users_path)) + self.assertFalse(os.path.exists(self.rapi_users_path_pre24)) + + utils.WriteFile(self.rapi_users_path_pre24, data="some user\n") + self._TestSimpleUpgrade(constants.BuildVersion(2, 3, 0), True) + + self.assertFalse(os.path.isdir(os.path.dirname(self.rapi_users_path))) + self.assertTrue(os.path.isfile(self.rapi_users_path_pre24) and + not os.path.islink(self.rapi_users_path_pre24)) + self.assertFalse(os.path.exists(self.rapi_users_path)) + + def testRapiUsers24AndAboveDryRun(self): + self.assertFalse(os.path.exists(self.rapi_users_path)) + self.assertFalse(os.path.exists(self.rapi_users_path_pre24)) + + os.mkdir(os.path.dirname(self.rapi_users_path)) + utils.WriteFile(self.rapi_users_path, data="other user\n") + self._TestSimpleUpgrade(constants.BuildVersion(2, 3, 0), True) + + self.assertTrue(os.path.isfile(self.rapi_users_path) and + not os.path.islink(self.rapi_users_path)) + self.assertFalse(os.path.exists(self.rapi_users_path_pre24)) + self.assertEqual(utils.ReadFile(self.rapi_users_path), "other user\n") + + def testRapiUsersExistingSymlinkDryRun(self): + self.assertFalse(os.path.exists(self.rapi_users_path)) + self.assertFalse(os.path.exists(self.rapi_users_path_pre24)) + + os.mkdir(os.path.dirname(self.rapi_users_path)) + os.symlink(self.rapi_users_path, self.rapi_users_path_pre24) + utils.WriteFile(self.rapi_users_path, data="hello world\n") + + self._TestSimpleUpgrade(constants.BuildVersion(2, 2, 0), True) + + self.assertTrue(os.path.islink(self.rapi_users_path_pre24)) + self.assertTrue(os.path.isfile(self.rapi_users_path) and + not os.path.islink(self.rapi_users_path)) + self.assertEqual(os.readlink(self.rapi_users_path_pre24), + self.rapi_users_path) for path in [self.rapi_users_path, self.rapi_users_path_pre24]: self.assertEqual(utils.ReadFile(path), "hello world\n") @@ -209,6 +279,15 @@ class TestCfgupgrade(unittest.TestCase): def testUpgradeFrom_2_3(self): self._TestSimpleUpgrade(constants.BuildVersion(2, 3, 0), False) + def testUpgradeFrom_2_4(self): + self._TestSimpleUpgrade(constants.BuildVersion(2, 4, 0), False) + + def testUpgradeFrom_2_5(self): + self._TestSimpleUpgrade(constants.BuildVersion(2, 5, 0), False) + + def testUpgradeFrom_2_6(self): + self._TestSimpleUpgrade(constants.BuildVersion(2, 6, 0), False) + def testUpgradeCurrent(self): self._TestSimpleUpgrade(constants.CONFIG_VERSION, False) @@ -224,6 +303,15 @@ class TestCfgupgrade(unittest.TestCase): def testUpgradeDryRunFrom_2_3(self): self._TestSimpleUpgrade(constants.BuildVersion(2, 3, 0), True) + def testUpgradeDryRunFrom_2_4(self): + self._TestSimpleUpgrade(constants.BuildVersion(2, 4, 0), True) + + def testUpgradeDryRunFrom_2_5(self): + self._TestSimpleUpgrade(constants.BuildVersion(2, 5, 0), True) + + def testUpgradeDryRunFrom_2_6(self): + self._TestSimpleUpgrade(constants.BuildVersion(2, 6, 0), True) + def testUpgradeCurrentDryRun(self): self._TestSimpleUpgrade(constants.CONFIG_VERSION, True)