Yeah, if your precondition fails you don't need to call super.allocateTo() at 
all, simply return empty list. You can refer FirstFitRoutingAllocator that does 
the exact same thing.

-Prachi 

-----Original Message-----
From: Amir Nashat [mailto:amir.nas...@citrix.com] 
Sent: Wednesday, August 08, 2012 3:07 PM
To: 'cloudstack-users@incubator.apache.org'
Subject: RE: CloudStack Allocator Pre-Condition Check

Ok, I'll use your suggestion of returning an empty list which is what my 
intention was with setting the returnUpTo value to 0. I won't modify the 
returnUpTo value but rather return an empty ArrayList if my pre-condition 
fails. 

It seems my approach was wrong so it's no longer important but to answer your 
question of how I was planning on setting returnUpT=0, I was going to extend 
the FirstFitAllocator class, override the allocateTo() method and if my 
pre-condition failed I would set a value of  returnUpTo = 0 and call the 
super.allocateTo() passing in the modified returnUpTo.

Thanks again for your help!

Amir



-----Original Message-----
From: Prachi Damle [mailto:prachi.da...@citrix.com] 
Sent: Wednesday, August 08, 2012 2:36 PM
To: cloudstack-users@incubator.apache.org
Subject: RE: CloudStack Allocator Pre-Condition Check

Yes you can use vmProfile.getHostName(). 

About the returnUpTo Value, I don't see why you should set it 0. 
returnUpTo = 1 means you allocator should atmost  1 suitable host - it could 
still return empty result.
returnUpTo = -1 would mean lalloctaor should return as many matching hosts as 
it finds. 

If your pre-condition is not satisfied by the VM profile, you can just return 
an empty list irrespective of the returnUpto value. 

Also where do you plan to set the returnUpto value ? The existing 
FirstFitPlanner sets the returnUpTo = -1 and calls the allocators. 
Are you planning on implementing custom planner and set a different returnUpto 
value?

-Prachi

-----Original Message-----
From: Amir Nashat [mailto:amir.nas...@citrix.com] 
Sent: Wednesday, August 08, 2012 2:16 PM
To: 'cloudstack-users@incubator.apache.org'
Subject: RE: CloudStack Allocator Pre-Condition Check

Hi Prachi,

So are you suggesting to set the returnUpTo value to 0?

To confirm, I can get the hostname of the guest VM from vmProfile.getHostName() 
...this is correct?

Thanks for your feedback!

Amir



-----Original Message-----
From: Prachi Damle [mailto:prachi.da...@citrix.com] 
Sent: Wednesday, August 08, 2012 2:12 PM
To: cloudstack-users@incubator.apache.org
Subject: RE: CloudStack Allocator Pre-Condition Check

 Amir,

Yes to add any custom checks on top of the existing host allocation you will 
need to write your HostAllocator extending the default FirstFitAllocator. Also 
replace the FirstFitAllocator in componets.xml by your custom allocator.
If your condition verification fails, your allocator should return an empty 
list of hosts and not an error. The deployment planner will handle the empty 
result returned by the host allocator.

Thanks,
Prachi


-----Original Message-----
From: Amir Nashat [mailto:amir.nas...@citrix.com] 
Sent: Wednesday, August 08, 2012 1:58 PM
To: cloudstack-users@incubator.apache.org
Subject: CloudStack Allocator Pre-Condition Check

Hello,

I would like to get feedback as to the best approach for performing a 
pre-condition check before allocating a guest vm to a physical host. For my 
example, a pre-condition check is to verify the guest vm does not use an 
existing DNS entry. If the pre-condition fails we do not want to allocate the 
guest vm to the physical host and we want to record this as an error condition.

As far as I can tell the only option I have is to extend the default 
FirstFitAllocator class and override the allocateTo methods to first perform my 
pre-condition verification and if it passes then to call the the overridden 
allocateTo() method. If it fails then I would throw a RuntimeException of some 
sort or possibly set the returnUpTo value equal to 0.

Can you please advise as what would be the best approach? If anyone else is 
performing pre-conditions checks in their allocation logic before provisioning 
a guest VM please let me know of your approach.


Thank you,

Amir

Reply via email to