[Engine-devel] Floating Disks implementation in REST-API

Livnat Peer lpeer at redhat.com
Wed Apr 18 11:09:18 UTC 2012


On 18/04/12 13:36, Einav Cohen wrote:
> [Top Posting]
> 
> Let's try to concentrate on the subject of this thread (we can discuss shared disks in a separate thread):
> 
> - I agree with Ori: Disks root collection should have all disks, not only floating (shared?) disks. Disk is an important business entity, which "deserves" a full root collection of its own - I think it is more aligned with the existing api structure (VMs are shown both in the VMs root collection as well as under their Cluster/DC).


+1

> 
> - Regarding possibilities 1 vs. 2 below: I prefer #1 (again - agreeing with Ori, IIRC): Although risky in a sense, at least existing users/scripts won't be harmed because of this, since the behavior is backward compatible. Regarding new users - they should know what they are doing, and they should always be careful when using DELETE, no matter from which context. It also "looks" better (more symmetrical, adding a new POST action is avoided).
> 

I find option one confusing, I prefer #2.

Does anyone have an idea how to model detach and attach as PUT (update)
operation instead of DELETE(remove) and POST(add).

Pros: - we avoid confusing delete disk with detach disk
      - symmetrical (for attach detach)
Cons: - not sure we have this approach in other places in the API
      - is it confusing for the user?


Livnat

> Comments?
> 
> 
> ----- Original Message -----
>> From: "Ori Liel" <oliel at redhat.com>
>> To: engine-devel at ovirt.org
>> Cc: "Eoghan Glynn" <eglynn at redhat.com>
>> Sent: Monday, April 16, 2012 3:33:27 PM
>> Subject: Re: [Engine-devel] Floating Disks implementation in REST-API
>>
>> I'd like us to move forward with this.
>>
>> The option of using 'attach' action does not exist, because, as
>> Eoghan observed, we would be executing an action on an entity which
>> doesn't exist in the collection: (.../api/vms/{vm:id}/disks/???-no
>> entity-???/attach)
>>
>> There are two options left on the table; let's see if we can agree on
>> one of them:
>>
>> 1)
>>         POST/api/vms/{vm:id}/disks
>>         <disk id="{disk:id}"/>                               =>
>>          attach disk
>>
>>         DELETE .../api/vms/{vm:id}/disks/{disk:id}
>>         <disk><detach>true</detach><disk>                    =>
>>          detach disk
>>
>> Pros: symmetrical
>> Cons: risky (if user wants to detach but forgot to give parameter,
>> disk will be deleted).
>>
>> 2)
>>
>>         POST/api/vms/{vm:id}/disks
>>         <disk id="{disk:id}"/>                               =>
>>          attach disk
>>
>>         DELETE .../api/vms/{vm:id}/disks/{disk:id}/detach    =>
>>          detach disk
>>
>> Pros: not dangerous
>> Cons: asymmetrical, attach done like add, but detach done using
>> action.
>>
>>
>> No solution is perfect but we need to decide.
>>
>> Thanks,
>>
>> Ori.
>> _______________________________________________
>> Engine-devel mailing list
>> Engine-devel at ovirt.org
>> http://lists.ovirt.org/mailman/listinfo/engine-devel
>>
>>
>>
> _______________________________________________
> Engine-devel mailing list
> Engine-devel at ovirt.org
> http://lists.ovirt.org/mailman/listinfo/engine-devel




More information about the Devel mailing list