On 04/17/2012 02:27 PM, Ori Liel wrote:
> My idea for that was to
introduce<force>true|false</force> as well.
> Without force=true, we won't delete a disk if it's currently floating.
>
If the disk is floating it will only appear in root collection (...api/disks), and DELETE
from
there is non-ambiguous, as there's no option to detach - so I don't see how
adding 'force' there
helps us.
Floating disks should be both in the root context, and also in the VM
context for each VM the floating disk is attached to, right? So floating
disks would appear 1+N_attach times in the API, once in the root
context, and once for each VM they are attached to.
Regarding the root context: you are right that DELETE in the root
context is unambiguous, and therefore we don't need "detach" or
"force"
arguments there. And because in 3.0 we didn't have a disk collection in
the root context, backwards compatibility isn't an issue here.
In your previous mail you suggested the same thing for attached
floating disk, so perhaps you meant
that here as well? (sorry for only responding now, by the way). But that does break API -
for example,
a simple script deleting all disks from a VM would fail because suddenly deleting
requires 'force=true'.
A 3.0 client does not know how to create a floating disk. So in my view,
it does not need to know how to delete one.
Is your concern about the case where a 3.1 client creates a floating
disk, and you would like a 3.0 client to be able to delete that. I think
this is a too strong interpretation of backwards compatibility. So far
all ISV software that integrates with us and does provisioning of VMs,
both creates and deletes VMs. And properly written software will issue
an error message when a disk DELETE fails. In the end there could be
many other reasons why a disk DELETE can fail, right? We are adding one
more reason a disk DELETE will fail, namely that the disk is floating.
Regards,
Geert