Fix upgrades of instances with missing creation time
authorHrvoje Ribicic <riba@google.com>
Tue, 27 Oct 2015 18:38:16 +0000 (18:38 +0000)
committerHrvoje Ribicic <riba@google.com>
Wed, 28 Oct 2015 14:41:04 +0000 (14:41 +0000)
commita4589ce1f4e744a713ccc3f6bbe7aaf18242a084
tree18fc96a41e8cc1fc535a8f59cb108808e2124695
parentdbd26816416837911d2a62bc266575b6b480b40c
Fix upgrades of instances with missing creation time

Some instances from very old Ganeti versions may not have any creation
time information embedded in the config. The upgrade code does not
expect this, and crashes horribly when trying to populate newly
separate disk objects with the same creation time, and this patch
fixes things by inserting a fake value: 0.

The value was chosen because the serialization and deserialization of
such an instance in Haskell yields a value of 0 for the ctime, making
the time consistent between instance and disk. While showing the epoch
time instead of N/A in gnt-instance info is suboptimal, due to the age
of the Ganeti version in which these instances must have been created,
they are at least still ordered correctly.

Signed-off-by: Gerard Oskamp <gjo@google.com>
Signed-off-by: Hrvoje Ribicic <riba@google.com>
Reviewed-by: Klaus Aehlig <aehlig@google.com>
test/data/cluster_config_2.11.json
test/py/cfgupgrade_unittest.py
tools/cfgupgrade