Skip to content

Commit fbcab01

Browse files
committed
Revert "CLOUDSTACK-6650: Reorder Cluster list in deployment planner to protect"
This reverts commit d910b4f since it is causing encryption/decryption issues with RPM builds
1 parent 0af0c04 commit fbcab01

11 files changed

Lines changed: 4 additions & 514 deletions

File tree

core/src/com/cloud/agent/api/StartupRoutingCommand.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,7 @@
1919

2020
package com.cloud.agent.api;
2121

22-
import java.util.ArrayList;
2322
import java.util.HashMap;
24-
import java.util.List;
2523
import java.util.Map;
2624

2725
import com.cloud.host.Host;
@@ -41,7 +39,6 @@ public class StartupRoutingCommand extends StartupCommand {
4139
String pool;
4240
HypervisorType hypervisorType;
4341
Map<String, String> hostDetails; //stuff like host os, cpu capabilities
44-
List<String> hostTags = new ArrayList<String>();
4542
String hypervisorVersion;
4643
HashMap<String, HashMap<String, VgpuTypesInfo>> groupDetails = new HashMap<String, HashMap<String, VgpuTypesInfo>>();
4744

@@ -165,14 +162,6 @@ public void setHypervisorVersion(String hypervisorVersion) {
165162
this.hypervisorVersion = hypervisorVersion;
166163
}
167164

168-
public List<String> getHostTags() {
169-
return hostTags;
170-
}
171-
172-
public void setHostTags(String hostTag) {
173-
this.hostTags.add(hostTag);
174-
}
175-
176165
public HashMap<String, HashMap<String, VgpuTypesInfo>> getGpuGroupDetails() {
177166
return groupDetails;
178167
}

engine/schema/src/com/cloud/host/dao/HostTagsDao.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,4 @@ public interface HostTagsDao extends GenericDao<HostTagVO, Long> {
2727

2828
List<String> gethostTags(long hostId);
2929

30-
List<String> getDistinctImplicitHostTags(List<Long> hostIds, String[] implicitHostTags);
31-
3230
}

engine/schema/src/com/cloud/host/dao/HostTagsDaoImpl.java

Lines changed: 0 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -25,28 +25,19 @@
2525

2626
import com.cloud.host.HostTagVO;
2727
import com.cloud.utils.db.GenericDaoBase;
28-
import com.cloud.utils.db.GenericSearchBuilder;
2928
import com.cloud.utils.db.SearchBuilder;
3029
import com.cloud.utils.db.SearchCriteria;
3130
import com.cloud.utils.db.TransactionLegacy;
32-
import com.cloud.utils.db.SearchCriteria.Func;
3331

3432
@Component
3533
@Local(value = HostTagsDao.class)
3634
public class HostTagsDaoImpl extends GenericDaoBase<HostTagVO, Long> implements HostTagsDao {
3735
protected final SearchBuilder<HostTagVO> HostSearch;
38-
protected final GenericSearchBuilder<HostTagVO, String> DistinctImplictTagsSearch;
3936

4037
public HostTagsDaoImpl() {
4138
HostSearch = createSearchBuilder();
4239
HostSearch.and("hostId", HostSearch.entity().getHostId(), SearchCriteria.Op.EQ);
4340
HostSearch.done();
44-
45-
DistinctImplictTagsSearch = createSearchBuilder(String.class);
46-
DistinctImplictTagsSearch.select(null, Func.DISTINCT, DistinctImplictTagsSearch.entity().getTag());
47-
DistinctImplictTagsSearch.and("hostIds", DistinctImplictTagsSearch.entity().getHostId(), SearchCriteria.Op.IN);
48-
DistinctImplictTagsSearch.and("implicitTags", DistinctImplictTagsSearch.entity().getTag(), SearchCriteria.Op.IN);
49-
DistinctImplictTagsSearch.done();
5041
}
5142

5243
@Override
@@ -63,14 +54,6 @@ public List<String> gethostTags(long hostId) {
6354
return hostTags;
6455
}
6556

66-
@Override
67-
public List<String> getDistinctImplicitHostTags(List<Long> hostIds, String[] implicitHostTags) {
68-
SearchCriteria<String> sc = DistinctImplictTagsSearch.create();
69-
sc.setParameters("hostIds", hostIds.toArray(new Object[hostIds.size()]));
70-
sc.setParameters("implicitTags", (Object[])implicitHostTags);
71-
return customSearch(sc, null);
72-
}
73-
7457
@Override
7558
public void persist(long hostId, List<String> hostTags) {
7659
TransactionLegacy txn = TransactionLegacy.currentTxn();

plugins/deployment-planners/implicit-dedication/test/org/apache/cloudstack/implicitplanner/ImplicitPlannerTest.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,8 @@
6969
import com.cloud.deploy.DeploymentPlanner.ExcludeList;
7070
import com.cloud.deploy.ImplicitDedicationPlanner;
7171
import com.cloud.exception.InsufficientServerCapacityException;
72-
import com.cloud.gpu.dao.HostGpuGroupsDao;
7372
import com.cloud.host.HostVO;
7473
import com.cloud.host.dao.HostDao;
75-
import com.cloud.host.dao.HostTagsDao;
7674
import com.cloud.resource.ResourceManager;
7775
import com.cloud.service.ServiceOfferingVO;
7876
import com.cloud.service.dao.ServiceOfferingDao;
@@ -469,16 +467,6 @@ public HostDao hostDao() {
469467
return Mockito.mock(HostDao.class);
470468
}
471469

472-
@Bean
473-
public HostTagsDao hostTagsDao() {
474-
return Mockito.mock(HostTagsDao.class);
475-
}
476-
477-
@Bean
478-
public HostGpuGroupsDao hostGpuGroupsDao() {
479-
return Mockito.mock(HostGpuGroupsDao.class);
480-
}
481-
482470
@Bean
483471
public DataCenterDao dcDao() {
484472
return Mockito.mock(DataCenterDao.class);

plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/XenServer620SP1Resource.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,9 +84,6 @@ protected void fillHostInfo(Connection conn, StartupRoutingCommand cmd) {
8484
try {
8585
HashMap<String, HashMap<String, VgpuTypesInfo>> groupDetails = getGPUGroupDetails(conn);
8686
cmd.setGpuGroupDetails(groupDetails);
87-
if (groupDetails != null && !groupDetails.isEmpty()) {
88-
cmd.setHostTags("GPU");
89-
}
9087
} catch (Exception e) {
9188
if (s_logger.isDebugEnabled()) {
9289
s_logger.debug("Error while getting GPU device info from host " + cmd.getName(), e);

server/src/com/cloud/configuration/Config.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1360,14 +1360,6 @@ public enum Config {
13601360
"false",
13611361
"Deploys a VM per zone to manage secondary storage if true, otherwise secondary storage is mounted on management server",
13621362
null),
1363-
ImplicitHostTags(
1364-
"Hidden",
1365-
ManagementServer.class,
1366-
String.class,
1367-
"implicit.host.tags",
1368-
"GPU",
1369-
"Tag hosts at the time of host disovery based on the host properties/capabilities",
1370-
null),
13711363
CreatePoolsInPod(
13721364
"Hidden",
13731365
ManagementServer.class,

server/src/com/cloud/deploy/FirstFitPlanner.java

Lines changed: 4 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717
package com.cloud.deploy;
1818

1919
import java.util.ArrayList;
20-
import java.util.Collections;
21-
import java.util.Comparator;
2220
import java.util.HashMap;
2321
import java.util.List;
2422
import java.util.Map;
@@ -46,14 +44,9 @@
4644
import com.cloud.dc.dao.DataCenterDao;
4745
import com.cloud.dc.dao.HostPodDao;
4846
import com.cloud.exception.InsufficientServerCapacityException;
49-
import com.cloud.gpu.GPU;
50-
import com.cloud.gpu.dao.HostGpuGroupsDao;
51-
import com.cloud.host.Host;
5247
import com.cloud.host.dao.HostDao;
53-
import com.cloud.host.dao.HostTagsDao;
5448
import com.cloud.hypervisor.Hypervisor.HypervisorType;
5549
import com.cloud.offering.ServiceOffering;
56-
import com.cloud.service.dao.ServiceOfferingDetailsDao;
5750
import com.cloud.storage.StorageManager;
5851
import com.cloud.storage.dao.DiskOfferingDao;
5952
import com.cloud.storage.dao.GuestOSCategoryDao;
@@ -109,16 +102,9 @@ public class FirstFitPlanner extends PlannerBase implements DeploymentClusterPla
109102
DataStoreManager dataStoreMgr;
110103
@Inject
111104
protected ClusterDetailsDao _clusterDetailsDao;
112-
@Inject
113-
protected ServiceOfferingDetailsDao _serviceOfferingDetailsDao;
114-
@Inject
115-
protected HostGpuGroupsDao _hostGpuGroupsDao;
116-
@Inject
117-
protected HostTagsDao _hostTagsDao;
118105

119106
protected String _allocationAlgorithm = "random";
120107
protected String _globalDeploymentPlanner = "FirstFitPlanner";
121-
protected String[] _implicitHostTags;
122108

123109
@Override
124110
public List<Long> orderClusters(VirtualMachineProfile vmProfile, DeploymentPlan plan, ExcludeList avoid) throws InsufficientServerCapacityException {
@@ -145,6 +131,7 @@ public List<Long> orderClusters(VirtualMachineProfile vmProfile, DeploymentPlan
145131
clusterList.add(clusterIdSpecified);
146132
removeClustersCrossingThreshold(clusterList, avoid, vmProfile, plan);
147133
}
134+
return clusterList;
148135
} else {
149136
s_logger.debug("The specified cluster cannot be found, returning.");
150137
avoid.addCluster(plan.getClusterId());
@@ -165,6 +152,7 @@ public List<Long> orderClusters(VirtualMachineProfile vmProfile, DeploymentPlan
165152
avoid.addPod(plan.getPodId());
166153
}
167154
}
155+
return clusterList;
168156
} else {
169157
s_logger.debug("The specified Pod cannot be found, returning.");
170158
avoid.addPod(plan.getPodId());
@@ -176,39 +164,13 @@ public List<Long> orderClusters(VirtualMachineProfile vmProfile, DeploymentPlan
176164
boolean applyAllocationAtPods = Boolean.parseBoolean(_configDao.getValue(Config.ApplyAllocationAlgorithmToPods.key()));
177165
if (applyAllocationAtPods) {
178166
//start scan at all pods under this zone.
179-
clusterList = scanPodsForDestination(vmProfile, plan, avoid);
167+
return scanPodsForDestination(vmProfile, plan, avoid);
180168
} else {
181169
//start scan at clusters under this zone.
182-
clusterList = scanClustersForDestinationInZoneOrPod(plan.getDataCenterId(), true, vmProfile, plan, avoid);
183-
}
184-
}
185-
186-
if (clusterList != null && !clusterList.isEmpty()) {
187-
ServiceOffering offering = vmProfile.getServiceOffering();
188-
// In case of non-GPU VMs, protect GPU enabled Hosts and prefer VM deployment on non-GPU Hosts.
189-
if ((_serviceOfferingDetailsDao.findDetail(offering.getId(), GPU.Keys.vgpuType.toString()) == null) && !(_hostGpuGroupsDao.listHostIds().isEmpty())) {
190-
int requiredCpu = offering.getCpu() * offering.getSpeed();
191-
long requiredRam = offering.getRamSize() * 1024L * 1024L;
192-
reorderClustersBasedOnImplicitTags(clusterList, requiredCpu, requiredRam);
170+
return scanClustersForDestinationInZoneOrPod(plan.getDataCenterId(), true, vmProfile, plan, avoid);
193171
}
194172
}
195-
return clusterList;
196-
}
197173

198-
private void reorderClustersBasedOnImplicitTags(List<Long> clusterList, int requiredCpu, long requiredRam) {
199-
final HashMap<Long, Long> UniqueTagsInClusterMap = new HashMap<Long, Long>();
200-
for (Long clusterId : clusterList) {
201-
List<Long> hostList = _capacityDao.listHostsWithEnoughCapacity(requiredCpu, requiredRam, clusterId, Host.Type.Routing.toString());
202-
UniqueTagsInClusterMap.put(clusterId, new Long(_hostTagsDao.getDistinctImplicitHostTags(hostList, _implicitHostTags).size()));
203-
}
204-
Collections.sort(clusterList, new Comparator<Long>() {
205-
@Override
206-
public int compare(Long o1, Long o2) {
207-
Long t1 = UniqueTagsInClusterMap.get(o1);
208-
Long t2 = UniqueTagsInClusterMap.get(o2);
209-
return t1.compareTo(t2);
210-
}
211-
});
212174
}
213175

214176
private List<Long> scanPodsForDestination(VirtualMachineProfile vmProfile, DeploymentPlan plan, ExcludeList avoid) {
@@ -542,10 +504,6 @@ public boolean configure(String name, Map<String, Object> params) throws Configu
542504
super.configure(name, params);
543505
_allocationAlgorithm = _configDao.getValue(Config.VmAllocationAlgorithm.key());
544506
_globalDeploymentPlanner = _configDao.getValue(Config.VmDeploymentPlanner.key());
545-
String configValue;
546-
if ((configValue = _configDao.getValue(Config.ImplicitHostTags.key())) != null) {
547-
_implicitHostTags = configValue.trim().split("\\s*,\\s*");
548-
}
549507
return true;
550508
}
551509

server/src/com/cloud/resource/ResourceManagerImpl.java

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1632,22 +1632,6 @@ protected HostVO createHostVO(StartupCommand[] cmds, ServerResource resource, Ma
16321632
}
16331633
}
16341634

1635-
if (startup instanceof StartupRoutingCommand) {
1636-
StartupRoutingCommand ssCmd = ((StartupRoutingCommand)startup);
1637-
List<String> implicitHostTags = ssCmd.getHostTags();
1638-
if (!implicitHostTags.isEmpty()) {
1639-
if (hostTags == null) {
1640-
hostTags = _hostTagsDao.gethostTags(host.getId());
1641-
}
1642-
if (hostTags != null) {
1643-
implicitHostTags.removeAll(hostTags);
1644-
hostTags.addAll(implicitHostTags);
1645-
} else {
1646-
hostTags = implicitHostTags;
1647-
}
1648-
}
1649-
}
1650-
16511635
host.setDataCenterId(dc.getId());
16521636
host.setPodId(podId);
16531637
host.setClusterId(clusterId);

server/test/com/cloud/vm/DeploymentPlanningManagerImplTest.java

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -76,9 +76,7 @@
7676
import com.cloud.deploy.dao.PlannerHostReservationDao;
7777
import com.cloud.exception.AffinityConflictException;
7878
import com.cloud.exception.InsufficientServerCapacityException;
79-
import com.cloud.gpu.dao.HostGpuGroupsDao;
8079
import com.cloud.host.dao.HostDao;
81-
import com.cloud.host.dao.HostTagsDao;
8280
import com.cloud.hypervisor.Hypervisor.HypervisorType;
8381
import com.cloud.resource.ResourceManager;
8482
import com.cloud.service.ServiceOfferingVO;
@@ -241,11 +239,6 @@ public VirtualMachineProfileImpl virtualMachineProfileImpl() {
241239
return Mockito.mock(VirtualMachineProfileImpl.class);
242240
}
243241

244-
@Bean
245-
public HostTagsDao hostTagsDao() {
246-
return Mockito.mock(HostTagsDao.class);
247-
}
248-
249242
@Bean
250243
public ClusterDetailsDao clusterDetailsDao() {
251244
return Mockito.mock(ClusterDetailsDao.class);
@@ -396,11 +389,6 @@ public AffinityGroupService affinityGroupService() {
396389
return Mockito.mock(AffinityGroupService.class);
397390
}
398391

399-
@Bean
400-
public HostGpuGroupsDao hostGpuGroupsDap() {
401-
return Mockito.mock(HostGpuGroupsDao.class);
402-
}
403-
404392
public static class Library implements TypeFilter {
405393

406394
@Override

0 commit comments

Comments
 (0)