Skip to content

Commit c85eb10

Browse files
authored
server: fix addCluster for vmware, others (#5421)
With 87ddc76, value column in cloud.cluster_details has been made non-nullable. While adding a cluster (especially VMware), addCluster API can be called without username password. Username and password are updated in cluster details entry later after successful discovery. This PR stores an empty string instead of a null value when initial cluster entry is made in the DB. Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
1 parent 7c7b624 commit c85eb10

File tree

1 file changed

+17
-18
lines changed

1 file changed

+17
-18
lines changed

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

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import java.util.Arrays;
2727
import java.util.Collections;
2828
import java.util.HashMap;
29+
import java.util.HashSet;
2930
import java.util.Iterator;
3031
import java.util.List;
3132
import java.util.Locale;
@@ -35,21 +36,8 @@
3536
import javax.inject.Inject;
3637
import javax.naming.ConfigurationException;
3738

38-
import com.cloud.deploy.DataCenterDeployment;
39-
import com.cloud.deploy.DeployDestination;
40-
import com.cloud.deploy.DeploymentPlanner;
41-
import com.cloud.deploy.DeploymentPlanningManager;
42-
import com.cloud.exception.InsufficientServerCapacityException;
43-
import com.cloud.exception.ResourceUnavailableException;
44-
import com.cloud.service.ServiceOfferingVO;
45-
import com.cloud.service.dao.ServiceOfferingDao;
46-
import com.cloud.storage.dao.DiskOfferingDao;
47-
import com.cloud.vm.UserVmManager;
48-
import com.cloud.vm.VirtualMachineProfile;
49-
import com.cloud.vm.VirtualMachineProfileImpl;
5039
import org.apache.cloudstack.annotation.AnnotationService;
5140
import org.apache.cloudstack.annotation.dao.AnnotationDao;
52-
import com.google.common.base.Strings;
5341
import org.apache.cloudstack.api.ApiConstants;
5442
import org.apache.cloudstack.api.command.admin.cluster.AddClusterCmd;
5543
import org.apache.cloudstack.api.command.admin.cluster.DeleteClusterCmd;
@@ -58,12 +46,11 @@
5846
import org.apache.cloudstack.api.command.admin.host.AddSecondaryStorageCmd;
5947
import org.apache.cloudstack.api.command.admin.host.CancelHostAsDegradedCmd;
6048
import org.apache.cloudstack.api.command.admin.host.CancelMaintenanceCmd;
61-
import org.apache.cloudstack.api.command.admin.host.PrepareForMaintenanceCmd;
6249
import org.apache.cloudstack.api.command.admin.host.DeclareHostAsDegradedCmd;
50+
import org.apache.cloudstack.api.command.admin.host.PrepareForMaintenanceCmd;
6351
import org.apache.cloudstack.api.command.admin.host.ReconnectHostCmd;
6452
import org.apache.cloudstack.api.command.admin.host.UpdateHostCmd;
6553
import org.apache.cloudstack.api.command.admin.host.UpdateHostPasswordCmd;
66-
6754
import org.apache.cloudstack.context.CallContext;
6855
import org.apache.cloudstack.framework.config.ConfigKey;
6956
import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
@@ -118,6 +105,10 @@
118105
import com.cloud.dc.dao.DataCenterIpAddressDao;
119106
import com.cloud.dc.dao.DedicatedResourceDao;
120107
import com.cloud.dc.dao.HostPodDao;
108+
import com.cloud.deploy.DataCenterDeployment;
109+
import com.cloud.deploy.DeployDestination;
110+
import com.cloud.deploy.DeploymentPlanner;
111+
import com.cloud.deploy.DeploymentPlanningManager;
121112
import com.cloud.deploy.PlannerHostReservationVO;
122113
import com.cloud.deploy.dao.PlannerHostReservationDao;
123114
import com.cloud.event.ActionEvent;
@@ -126,9 +117,11 @@
126117
import com.cloud.event.EventVO;
127118
import com.cloud.exception.AgentUnavailableException;
128119
import com.cloud.exception.DiscoveryException;
120+
import com.cloud.exception.InsufficientServerCapacityException;
129121
import com.cloud.exception.InvalidParameterValueException;
130122
import com.cloud.exception.PermissionDeniedException;
131123
import com.cloud.exception.ResourceInUseException;
124+
import com.cloud.exception.ResourceUnavailableException;
132125
import com.cloud.gpu.GPU;
133126
import com.cloud.gpu.HostGpuGroupsVO;
134127
import com.cloud.gpu.VGPUTypesVO;
@@ -155,6 +148,8 @@
155148
import com.cloud.org.Grouping;
156149
import com.cloud.org.Managed;
157150
import com.cloud.serializer.GsonHelper;
151+
import com.cloud.service.ServiceOfferingVO;
152+
import com.cloud.service.dao.ServiceOfferingDao;
158153
import com.cloud.service.dao.ServiceOfferingDetailsDao;
159154
import com.cloud.storage.GuestOSCategoryVO;
160155
import com.cloud.storage.StorageManager;
@@ -163,6 +158,7 @@
163158
import com.cloud.storage.StoragePoolStatus;
164159
import com.cloud.storage.StorageService;
165160
import com.cloud.storage.VMTemplateVO;
161+
import com.cloud.storage.dao.DiskOfferingDao;
166162
import com.cloud.storage.dao.GuestOSCategoryDao;
167163
import com.cloud.storage.dao.StoragePoolHostDao;
168164
import com.cloud.storage.dao.VMTemplateDao;
@@ -194,15 +190,18 @@
194190
import com.cloud.utils.net.NetUtils;
195191
import com.cloud.utils.ssh.SSHCmdHelper;
196192
import com.cloud.utils.ssh.SshException;
193+
import com.cloud.vm.UserVmManager;
197194
import com.cloud.vm.VMInstanceVO;
198195
import com.cloud.vm.VirtualMachine;
199196
import com.cloud.vm.VirtualMachine.State;
200197
import com.cloud.vm.VirtualMachineManager;
198+
import com.cloud.vm.VirtualMachineProfile;
199+
import com.cloud.vm.VirtualMachineProfileImpl;
201200
import com.cloud.vm.VmDetailConstants;
202201
import com.cloud.vm.dao.UserVmDetailsDao;
203202
import com.cloud.vm.dao.VMInstanceDao;
203+
import com.google.common.base.Strings;
204204
import com.google.gson.Gson;
205-
import java.util.HashSet;
206205

207206
@Component
208207
public class ResourceManagerImpl extends ManagerBase implements ResourceManager, ResourceService, Manager {
@@ -543,8 +542,8 @@ public List<? extends Cluster> discoverCluster(final AddClusterCmd cmd) throws I
543542
// save cluster details for later cluster/host cross-checking
544543
final Map<String, String> details = new HashMap<String, String>();
545544
details.put("url", url);
546-
details.put("username", username);
547-
details.put("password", password);
545+
details.put("username", org.apache.commons.lang3.StringUtils.defaultString(username));
546+
details.put("password", org.apache.commons.lang3.StringUtils.defaultString(password));
548547
details.put("cpuOvercommitRatio", CapacityManager.CpuOverprovisioningFactor.value().toString());
549548
details.put("memoryOvercommitRatio", CapacityManager.MemOverprovisioningFactor.value().toString());
550549
_clusterDetailsDao.persist(cluster.getId(), details);

0 commit comments

Comments
 (0)