mirror of
https://github.com/apache/cloudstack
synced 2026-09-02 17:40:22 +00:00
build: fix after forward-merge
Signed-off-by: Abhishek Kumar <abhishek.mrt22@gmail.com>
This commit is contained in:
parent
7fd56e573b
commit
7fc063ec13
@ -42,16 +42,6 @@ import java.util.stream.Collectors;
|
||||
import javax.inject.Inject;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import com.cloud.gpu.dao.VgpuProfileDao;
|
||||
import com.cloud.offering.ServiceOffering;
|
||||
import com.cloud.service.ServiceOfferingDetailsVO;
|
||||
import com.cloud.storage.ScopeType;
|
||||
import com.cloud.storage.StoragePoolAndAccessGroupMapVO;
|
||||
import com.cloud.storage.dao.StoragePoolAndAccessGroupMapDao;
|
||||
import com.cloud.storage.dao.StoragePoolTagsDao;
|
||||
import com.cloud.gpu.GpuCardVO;
|
||||
import com.cloud.gpu.VgpuProfileVO;
|
||||
import com.cloud.gpu.dao.GpuCardDao;
|
||||
import org.apache.cloudstack.alert.AlertService;
|
||||
import org.apache.cloudstack.annotation.AnnotationService;
|
||||
import org.apache.cloudstack.annotation.dao.AnnotationDao;
|
||||
@ -154,10 +144,14 @@ import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.exception.StorageConflictException;
|
||||
import com.cloud.exception.StorageUnavailableException;
|
||||
import com.cloud.gpu.GPU;
|
||||
import com.cloud.gpu.GpuCardVO;
|
||||
import com.cloud.gpu.HostGpuGroupsVO;
|
||||
import com.cloud.gpu.VGPUTypesVO;
|
||||
import com.cloud.gpu.VgpuProfileVO;
|
||||
import com.cloud.gpu.dao.GpuCardDao;
|
||||
import com.cloud.gpu.dao.HostGpuGroupsDao;
|
||||
import com.cloud.gpu.dao.VGPUTypesDao;
|
||||
import com.cloud.gpu.dao.VgpuProfileDao;
|
||||
import com.cloud.ha.HighAvailabilityManager;
|
||||
import com.cloud.ha.HighAvailabilityManager.WorkType;
|
||||
import com.cloud.ha.HighAvailabilityManagerImpl;
|
||||
@ -178,17 +172,21 @@ import com.cloud.hypervisor.HypervisorGuru;
|
||||
import com.cloud.hypervisor.kvm.discoverer.KvmDummyResourceBase;
|
||||
import com.cloud.network.dao.IPAddressDao;
|
||||
import com.cloud.network.dao.IPAddressVO;
|
||||
import com.cloud.offering.ServiceOffering;
|
||||
import com.cloud.org.Cluster;
|
||||
import com.cloud.org.Grouping;
|
||||
import com.cloud.org.Managed;
|
||||
import com.cloud.serializer.GsonHelper;
|
||||
import com.cloud.server.ManagementService;
|
||||
import com.cloud.service.ServiceOfferingDetailsVO;
|
||||
import com.cloud.service.ServiceOfferingVO;
|
||||
import com.cloud.service.dao.ServiceOfferingDao;
|
||||
import com.cloud.service.dao.ServiceOfferingDetailsDao;
|
||||
import com.cloud.storage.GuestOSCategoryVO;
|
||||
import com.cloud.storage.ScopeType;
|
||||
import com.cloud.storage.StorageManager;
|
||||
import com.cloud.storage.StoragePool;
|
||||
import com.cloud.storage.StoragePoolAndAccessGroupMapVO;
|
||||
import com.cloud.storage.StoragePoolHostVO;
|
||||
import com.cloud.storage.StoragePoolStatus;
|
||||
import com.cloud.storage.StorageService;
|
||||
@ -196,7 +194,9 @@ import com.cloud.storage.VMTemplateVO;
|
||||
import com.cloud.storage.Volume;
|
||||
import com.cloud.storage.VolumeVO;
|
||||
import com.cloud.storage.dao.GuestOSCategoryDao;
|
||||
import com.cloud.storage.dao.StoragePoolAndAccessGroupMapDao;
|
||||
import com.cloud.storage.dao.StoragePoolHostDao;
|
||||
import com.cloud.storage.dao.StoragePoolTagsDao;
|
||||
import com.cloud.storage.dao.VMTemplateDao;
|
||||
import com.cloud.storage.dao.VolumeDao;
|
||||
import com.cloud.user.Account;
|
||||
@ -719,6 +719,7 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
||||
String hypervisorType =
|
||||
cmd.getHypervisor().equalsIgnoreCase(HypervisorGuru.HypervisorCustomDisplayName.value()) ?
|
||||
"Custom" : cmd.getHypervisor();
|
||||
checkForDuplicateHost(url);
|
||||
return discoverHostsFull(dcId, podId, clusterId, clusterName, url, username, password, hypervisorType,
|
||||
hostTags, storageAccessGroups, cmd.getFullUrlParams(), false, cmd.getExternalDetails());
|
||||
}
|
||||
@ -3523,6 +3524,32 @@ public class ResourceManagerImpl extends ManagerBase implements ResourceManager,
|
||||
return host;
|
||||
}
|
||||
|
||||
void checkForDuplicateHost(final String url) {
|
||||
String hostIpOrName = null;
|
||||
String ipAddress = null;
|
||||
try {
|
||||
hostIpOrName = new URI(UriUtils.encodeURIComponent(url)).getHost();
|
||||
if (StringUtils.isBlank(hostIpOrName)) {
|
||||
return;
|
||||
}
|
||||
InetAddress ip = InetAddress.getByName(hostIpOrName);
|
||||
ipAddress = ip.getHostAddress();
|
||||
} catch (final URISyntaxException | UnknownHostException ignore) {
|
||||
// unparseable URL or unknown host - discoverer will reject it shortly anyway
|
||||
return;
|
||||
}
|
||||
|
||||
if (StringUtils.isNotBlank(ipAddress)) {
|
||||
final HostVO existingByIp = _hostDao.findByIp(ipAddress);
|
||||
// findByIp matches hosts of any type; only a Routing host is a duplicate for addHost
|
||||
if (existingByIp != null && Host.Type.Routing.equals(existingByIp.getType())) {
|
||||
throw new InvalidParameterValueException(String.format(
|
||||
"A host with IP address '%s' (%s) already exists (id: %s). Remove it before adding again.",
|
||||
ipAddress, hostIpOrName, existingByIp.getUuid()));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private Host createHostAndAgentDeferred(final ServerResource resource, final Map<String, String> details, final boolean old, final List<String> hostTags, List<String> storageAccessGroups, final boolean forRebalance) {
|
||||
HostVO host = null;
|
||||
StartupCommand[] cmds = null;
|
||||
|
||||
@ -322,6 +322,8 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
|
||||
private SecondaryStorageHeuristicDao secondaryStorageHeuristicDao;
|
||||
@Inject
|
||||
private HeuristicRuleHelper heuristicRuleHelper;
|
||||
@Inject
|
||||
private UserDataDao userDataDao;
|
||||
|
||||
private List<TemplateAdapter> _adapters;
|
||||
|
||||
@ -329,12 +331,6 @@ public class TemplateManagerImpl extends ManagerBase implements TemplateManager,
|
||||
|
||||
protected boolean backupSnapshotAfterTakingSnapshot = SnapshotInfo.BackupSnapshotAfterTakingSnapshot.value();
|
||||
|
||||
@Inject
|
||||
private UserDataDao userDataDao;
|
||||
|
||||
@Inject
|
||||
private UserDataDao userDataDao;
|
||||
|
||||
private TemplateAdapter getAdapter(HypervisorType type) {
|
||||
TemplateAdapter adapter = null;
|
||||
if (type == HypervisorType.BareMetal) {
|
||||
|
||||
@ -42,8 +42,8 @@ import javax.crypto.spec.SecretKeySpec;
|
||||
import javax.inject.Inject;
|
||||
import javax.naming.ConfigurationException;
|
||||
|
||||
import org.apache.cloudstack.acl.APIChecker;
|
||||
import org.apache.cloudstack.acl.APIAclChecker;
|
||||
import org.apache.cloudstack.acl.APIChecker;
|
||||
import org.apache.cloudstack.acl.ControlledEntity;
|
||||
import org.apache.cloudstack.acl.InfrastructureEntity;
|
||||
import org.apache.cloudstack.acl.QuerySelector;
|
||||
@ -176,10 +176,9 @@ import com.cloud.user.dao.UserDataDao;
|
||||
import com.cloud.utils.ConstantTimeComparator;
|
||||
import com.cloud.utils.NumbersUtil;
|
||||
import com.cloud.utils.Pair;
|
||||
import com.cloud.utils.Ternary;
|
||||
import com.cloud.utils.UuidUtils;
|
||||
import com.cloud.utils.StringUtils;
|
||||
import com.cloud.utils.Ternary;
|
||||
import com.cloud.utils.UuidUtils;
|
||||
import com.cloud.utils.component.ComponentContext;
|
||||
import com.cloud.utils.component.Manager;
|
||||
import com.cloud.utils.component.ManagerBase;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user