Revision 78521495

b/lib/utils/version.py
119 119
    return "can only downgrade one minor version at a time"
120 120

  
121 121
  return None
122

  
123

  
124
def ShouldCfgdowngrade(version, current=CURRENT_VERSION):
125
  """Decide whether cfgupgrade --downgrade should be called.
126

  
127
  Given the current version and the version to change to, decide
128
  if in the transition process cfgupgrade --downgrade should
129
  be called
130

  
131
  @param version: The version to upgrade to as (major, minor, revision)
132
  @type version: tuple
133
  @param current: The versino to upgrade from as (major, minor, revision)
134
  @type current: tuple
135
  @rtype: bool
136
  @return: True, if cfgupgrade --downgrade should be called.
137

  
138
  """
139
  return version[0] == current[0] and version[1] == current[1] - 1
b/test/py/ganeti.utils.version_unittest.py
56 56
        self.assertEquals(version.UpgradeRange((2,10,0), current=(2,9,0)),
57 57
                          "automatic upgrades only supported from 2.10 onwards")
58 58

  
59
class ShouldCfgdowngradeTest(unittest.TestCase):
60
    def testShouldCfgDowngrade(self):
61
        self.assertTrue(version.ShouldCfgdowngrade((2,9,3), current=(2,10,0)))
62
        self.assertTrue(version.ShouldCfgdowngrade((2,9,0), current=(2,10,4)))
63
        self.assertFalse(version.ShouldCfgdowngrade((2,9,0), current=(2,11,0)))
64
        self.assertFalse(version.ShouldCfgdowngrade((2,9,0), current=(3,10,0)))
65
        self.assertFalse(version.ShouldCfgdowngrade((2,10,0), current=(3,10,0)))
66

  
59 67

  
60 68
if __name__ == "__main__":
61 69
  testutils.GanetiTestProgram()

Also available in: Unified diff