For many users the change from uniform disk templates would make their lifes more difficult. Therefore we want to be externally compatible as far as possible.
Signed-off-by: Aaron Karper <[email protected]> --- doc/design-disks.rst | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/doc/design-disks.rst b/doc/design-disks.rst index 18fb75c..b5d0fab 100644 --- a/doc/design-disks.rst +++ b/doc/design-disks.rst @@ -169,6 +169,32 @@ with the instance's disk objects. So in the backend we will only have to replace the ``disks`` slot with ``disks_info``. +Supporting the old interface +~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +The current interface is designed with a uniform disk type in mind and +this interface should still be supported to not break tools and +workflows downstream. + +The behaviour is fully compatible for instances with constantly +attached, uniform disks. + +Whenever an operation operates on an instance, the operation will only +consider the disks attached. If the operation is specific to a disk +type, it will only consider disks with that type and ignore the rest +(but throw an error as before if no disk of that type is attached). + +When setting the disk template of an instance, we convert all currently +attached disks to that template. This means that all disk types +currently attached must be convertible to the new template. + +Since the disk template as a configuration value is going away, it needs +to be replaced for queries. If the instance has no disks, the +disk_template will be 'diskless', if it has disks of a single type, its +disk_template will be that type, and if it has disks of multiple types, +the new disk template 'mixed' will be returned. + + Eliminating the disk template from the instance ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -- 2.1.0.rc2.206.gedb03e5
