File tree Expand file tree Collapse file tree 3 files changed +14
-1
lines changed
framework/cluster/src/main/java/com/cloud/cluster/dao
server/src/main/java/org/apache/cloudstack/vm/schedule Expand file tree Collapse file tree 3 files changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -57,4 +57,6 @@ public interface ManagementServerHostDao extends GenericDao<ManagementServerHost
5757 ManagementServerHostVO findOneInUpState (Filter filter );
5858
5959 ManagementServerHostVO findOneInUpStateByLongestRuntime ();
60+
61+ ManagementServerHostVO findOneInUpState (String className );
6062}
Original file line number Diff line number Diff line change @@ -282,4 +282,15 @@ public ManagementServerHostVO findOneInUpStateByLongestRuntime() {
282282 return CollectionUtils .isNotEmpty (msHosts ) ? msHosts .get (0 ) : null ;
283283 }
284284
285+ @ Override
286+ public ManagementServerHostVO findOneInUpState (String className ) {
287+ SearchCriteria <ManagementServerHostVO > sc = StateSearch .create ();
288+ sc .setParameters ("state" , ManagementServerHost .State .Up );
289+ List <ManagementServerHostVO > mshosts = listBy (sc , null );
290+ if (CollectionUtils .isEmpty (mshosts )) {
291+ return null ;
292+ }
293+ int offset = (className == null ) ? 0 : (className .length () % mshosts .size ());
294+ return mshosts .get (offset );
295+ }
285296}
Original file line number Diff line number Diff line change @@ -196,7 +196,7 @@ public boolean start() {
196196 final TimerTask schedulerPollTask = new ManagedContextTimerTask () {
197197 @ Override
198198 protected void runInContext () {
199- ManagementServerHostVO msHost = managementServerHostDao .findOneInUpStateByLongestRuntime ( );
199+ ManagementServerHostVO msHost = managementServerHostDao .findOneInUpState ( this . getClass (). getSimpleName () );
200200 if (msHost == null || (msHost .getMsid () != ManagementServerNode .getManagementServerId ())) {
201201 logger .debug ("Skipping the vm scheduler poll task on this management server" );
202202 return ;
You can’t perform that action at this time.
0 commit comments