Implement the disk template conversion feature
Implement the disk template conversion feature

This patch provides support for converting between all the available
disk templates in Ganeti. It extends the 'CheckArguments' and
'CheckPrereq' methods of the 'LUInstanceSetParams' LU to cover the
necessary checks for the template conversion interface.

This patch does not provide support for conversions targeting the
'blockdev' template which acts only as a source template, since these
volumes are adopted pre-existent block devices. Also, conversions from
or to the 'diskless' template are not supported. The rest template
conversions are supported and use the '_ConvertInstanceTemplate'
interface. The only conversions that do not use this interface are the
ones between 'plain' <-> 'drbd', which fall back on Ganeti's existing
mechanism.

Signed-off-by: Dimitris Bliablias <56dc08131759a716534a4a0da56f0029eaf4af5d@gmail.com>
Signed-off-by: Petr Pudlak <9d19625f8ee825a2c398462ed335cbcf98f79c32@google.com>
Reviewed-by: Petr Pudlak <9d19625f8ee825a2c398462ed335cbcf98f79c32@google.com>

leshchevds/ganeti,mbakke/ganeti,ganeti-github-testing/ganeti-test-1,ganeti/ganeti,onponomarev/ganeti,ganeti-github-testing/ganeti-test-1,bitemyapp/ganeti,apyrgio/ganeti,dimara/ganeti,andir/ganeti,andir/ganeti,onponomarev/ganeti,yiannist/ganeti,yiannist/ganeti,mbakke/ganeti,ganeti/ganeti,ganeti/ganeti,mbakke/ganeti,dimara/ganeti,andir/ganeti,bitemyapp/ganeti,leshchevds/ganeti,leshchevds/ganeti,apyrgio/ganeti,yiannist/ganeti,grnet/snf-ganeti,grnet/snf-ganeti