Makes lot of sense. Would the same API allow the caller just to check (not actually proceed to create) whether resources are present for a particular payload? This may be useful for the client who want to proactively check and avoid returning failure.
Are there any race condition possibilities when multiple requests are received? ---- Madan Ganesh Velayudham P.M.P, C.S.M., madangan...@me.com On 01-Feb-2014, at 5:56 am, Alena Prokharchyk <alena.prokharc...@citrix.com> wrote: > Currently there is no way to know if there is enough resources for vm > deployment, before actual deployVm call is made. The sequence is the > following: > > 1) Deploy Vm is called > 2) DB record is created for the Vm > 3) Storage/Host allocators determine whethere there are enough resources for > vm to be deployed, and return deploy destination to the caller stack. > 4) If allocator returns valid deploy destination, VM gets actually > created/started on the backend. If allocators don't return the destination, > the DB record created on step 2) gets destroyed, and ResourceAllocation > exception is thrown back to the API caller. > > The API I'm going to introduce, would help you to determine whether CS > physical resources - hosts, storages - can potentially accomodate vm > deployment (considering template/service/diskOffering) at a given time, w/o > actually calling the deploy vm. Some admins might find this call useful as > they can always make this check before submitting the deployVm, so in case it > returns NO, you can fail the deployment immediately, w/o calling deployVm. > Also you can make this call to determine what is lacking for certain vm > deployment, and expand your physical resources accordingly. > > Please let me know if see any pitfalls in the proposal, as well if you see > any other use cases that can be solved using this API. > > Prachi, can you please point me to an existing method (or interface) defined > in Allocators code serving this purpose? > > Thanks, > -Alena.