From b70bd23be37bb7d8fa581b26a0bb6d8c657c9098 Mon Sep 17 00:00:00 2001 From: Prachi Damle Date: Wed, 2 Jul 2014 18:02:40 -0700 Subject: [PATCH] CLOUDSTACK-7047: DeploymentPlanner should include disabled resources only when the VM owner is Admin account Changes: -DeploymentPlanner should include disabled resources only when the VM owner is Admin account. The disabled resources should be ignored when VM is owned by any other user. (cherry picked from commit 40e28de7275804f4483868ba8a737878ff54fba8) --- .../cloud/deploy/DeploymentPlanningManagerImpl.java | 10 +++++----- server/src/com/cloud/deploy/FirstFitPlanner.java | 12 ++++++------ 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java b/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java index f9546156ab1..c61e507276f 100644 --- a/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java +++ b/server/src/com/cloud/deploy/DeploymentPlanningManagerImpl.java @@ -1243,7 +1243,7 @@ public class DeploymentPlanningManagerImpl extends ManagerBase implements Deploy if (s_logger.isDebugEnabled()) { s_logger.debug("We need to allocate new storagepool for this volume"); } - if (!isRootAdmin(plan.getReservationContext())) { + if (!isRootAdmin(vmProfile)) { if (!isEnabledForAllocation(plan.getDataCenterId(), plan.getPodId(), plan.getClusterId())) { if (s_logger.isDebugEnabled()) { s_logger.debug("Cannot allocate new storagepool for this volume in this cluster, allocation state is disabled"); @@ -1359,10 +1359,10 @@ public class DeploymentPlanningManagerImpl extends ManagerBase implements Deploy return true; } - private boolean isRootAdmin(ReservationContext reservationContext) { - if (reservationContext != null) { - if (reservationContext.getAccount() != null) { - return _accountMgr.isRootAdmin(reservationContext.getAccount().getId()); + private boolean isRootAdmin(VirtualMachineProfile vmProfile) { + if (vmProfile != null) { + if (vmProfile.getOwner() != null) { + return _accountMgr.isRootAdmin(vmProfile.getOwner().getId()); } else { return false; } diff --git a/server/src/com/cloud/deploy/FirstFitPlanner.java b/server/src/com/cloud/deploy/FirstFitPlanner.java index 6ffe31f99a2..cd093f32eca 100755 --- a/server/src/com/cloud/deploy/FirstFitPlanner.java +++ b/server/src/com/cloud/deploy/FirstFitPlanner.java @@ -191,7 +191,7 @@ public class FirstFitPlanner extends PlannerBase implements DeploymentClusterPla } podsWithCapacity.removeAll(avoid.getPodsToAvoid()); } - if (!isRootAdmin(plan.getReservationContext())) { + if (!isRootAdmin(vmProfile)) { List disabledPods = listDisabledPods(plan.getDataCenterId()); if (!disabledPods.isEmpty()) { if (s_logger.isDebugEnabled()) { @@ -322,7 +322,7 @@ public class FirstFitPlanner extends PlannerBase implements DeploymentClusterPla prioritizedClusterIds.removeAll(avoid.getClustersToAvoid()); } - if (!isRootAdmin(plan.getReservationContext())) { + if (!isRootAdmin(vmProfile)) { List disabledClusters = new ArrayList(); if (isZone) { disabledClusters = listDisabledClusters(plan.getDataCenterId(), null); @@ -465,10 +465,10 @@ public class FirstFitPlanner extends PlannerBase implements DeploymentClusterPla } - private boolean isRootAdmin(ReservationContext reservationContext) { - if(reservationContext != null){ - if(reservationContext.getAccount() != null){ - return _accountMgr.isRootAdmin(reservationContext.getAccount().getId()); + private boolean isRootAdmin(VirtualMachineProfile vmProfile) { + if (vmProfile != null) { + if (vmProfile.getOwner() != null) { + return _accountMgr.isRootAdmin(vmProfile.getOwner().getId()); }else{ return false; }