When listing the application's capabilities we currently show 'permissions' 
both for each version, and outside versions altogether: 

GET .../api/capabilities

<capabilities>
  <permits></permits>
  <version major="3" minor="1" 
href="/api/capabilities/332e3133-2e31-332e-3133-2e31332e3133" 
id="332e3133-2e31-332e-3133-2e31332e3133">
     <permits>...</permits>
  </version>
  <version major="3" minor="0" 
href="/api/capabilities/332e3033-2e30-332e-3033-2e30332e3033" 
id="332e3033-2e30-332e-3033-2e30332e3033">
     <permits>...</permits>
  </version>
</capabilities>


1) Permissions should only exist within a version; their current existence 
outside 'version' is for backwards compatibility only. We assume that no one 
(except perhaps Automation) uses these non-version-specific permissions these 
days, and we'd like to remove them. 

2) Regarding permissions within a version - Oded brought up that some 
permissions which are only relevant for 3.1 are listed also under 3.0 (for 
example, quota related permissions). In order for the API layer to be able to 
group permissions by version, permission<-->version metadata must exist 
somewhere. The permissions enum in the engine seems a natural place to put it, 
as Michael commented. Setting out to do this, I realized that 
which-permission-belongs-to-which-version is knowledge that I don't have, and 
don't really know how to get efficiently, and I sort of got stuck because of 
this. Ideas regarding this issue? 

Thanks, 

Ori. 

_______________________________________________
Engine-devel mailing list
Engine-devel@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-devel

Reply via email to