On Fri, Sep 20, 2013 at 07:41:06PM +0200, Thomas Thrainer wrote:
> The physical_id field is no longer supported in disk objects, so remove
> it during upgrades.
> 
> Signed-off-by: Thomas Thrainer <[email protected]>
> ---
>  test/py/cfgupgrade_unittest.py | 6 ++++++
>  tools/cfgupgrade               | 3 +++
>  2 files changed, 9 insertions(+)
> 
> diff --git a/test/py/cfgupgrade_unittest.py b/test/py/cfgupgrade_unittest.py
> index 47ebd9d..09b16c4 100755
> --- a/test/py/cfgupgrade_unittest.py
> +++ b/test/py/cfgupgrade_unittest.py
> @@ -392,6 +392,12 @@ class TestCfgupgrade(unittest.TestCase):
>      _RunUpgrade(self.tmpdir, False, True, downgrade=True)
>      oldconf = self._LoadTestDataConfig(oldconfname)
>      newconf = self._LoadConfig()
> +
> +    # downgrade from 2.10 to 2.9 does not add physical_id to disks, which is 
> ok
> +    for inst in oldconf["instances"].values():
> +      for disk in inst["disks"]:
> +        del disk["physical_id"]
> +
>      self.assertEqual(oldconf, newconf)
>  
>    def testDowngradeFullConfigBackwardFrom_2_7(self):
> diff --git a/tools/cfgupgrade b/tools/cfgupgrade
> index 0054d20..b280185 100755
> --- a/tools/cfgupgrade
> +++ b/tools/cfgupgrade
> @@ -194,6 +194,9 @@ def UpgradeInstances(config_data):
>        raise Error("Instance '%s' doesn't have a disks entry?!" % instance)
>      disks = iobj["disks"]
>      for idx, dobj in enumerate(disks):
> +      if "physical_id" in dobj:
> +        del dobj["physical_id"]
> +
>        expected = "disk/%s" % idx
>        current = dobj.get("iv_name", "")
>        if current != expected:
> -- 
> 1.8.4
> 

LGTM.

Thanks,
Jose

-- 
Jose Antonio Lopes
Ganeti Engineering
Google Germany GmbH
Dienerstr. 12, 80331, München

Registergericht und -nummer: Hamburg, HRB 86891
Sitz der Gesellschaft: Hamburg
Geschäftsführer: Graham Law, Christine Elizabeth Flores
Steuernummer: 48/725/00206
Umsatzsteueridentifikationsnummer: DE813741370

Reply via email to