diff --git a/api/src/com/cloud/api/commands/AssociateIPAddrCmd.java b/api/src/com/cloud/api/commands/AssociateIPAddrCmd.java index e92fb8bf227..fe5a2838be1 100644 --- a/api/src/com/cloud/api/commands/AssociateIPAddrCmd.java +++ b/api/src/com/cloud/api/commands/AssociateIPAddrCmd.java @@ -96,7 +96,7 @@ public class AssociateIPAddrCmd extends BaseAsyncCreateCmd { DataCenter zone = _configService.getZone(getZoneId()); if (zone.getNetworkType() == NetworkType.Advanced) { - List networks = _networkService.getVirtualNetworksForAccountInZone(getAccountName(), getDomainId(), getZoneId()); + List networks = _networkService.getVirtualNetworksOwnedByAccountInZone(getAccountName(), getDomainId(), getZoneId()); if (networks.size() == 0) { throw new InvalidParameterValueException("Account name=" + getAccountName() + " domainId=" + getDomainId() + " doesn't have virtual networks in zone " + getZoneId()); } diff --git a/api/src/com/cloud/network/Network.java b/api/src/com/cloud/network/Network.java index 87fbbd9d9e2..39ee0a321f8 100644 --- a/api/src/com/cloud/network/Network.java +++ b/api/src/com/cloud/network/Network.java @@ -232,6 +232,4 @@ public interface Network extends ControlledEntity { List getTags(); - boolean isDomainSpecific(); - } diff --git a/api/src/com/cloud/network/NetworkProfile.java b/api/src/com/cloud/network/NetworkProfile.java index 7f735bd0e02..64da475b91d 100644 --- a/api/src/com/cloud/network/NetworkProfile.java +++ b/api/src/com/cloud/network/NetworkProfile.java @@ -51,7 +51,6 @@ public class NetworkProfile implements Network { private String networkDomain; private boolean isSecurityGroupEnabled; private List tags; - private boolean isDomainSpecific; public NetworkProfile(Network network) { this.id = network.getId(); @@ -75,7 +74,6 @@ public class NetworkProfile implements Network { this.networkDomain = network.getNetworkDomain(); this.domainId = network.getDomainId(); this.isSecurityGroupEnabled = network.isSecurityGroupEnabled(); - this.isDomainSpecific = network.isDomainSpecific(); } @Override @@ -207,10 +205,4 @@ public class NetworkProfile implements Network { public boolean isSecurityGroupEnabled() { return isSecurityGroupEnabled; } - - @Override - public boolean isDomainSpecific() { - return isDomainSpecific; - } - } diff --git a/api/src/com/cloud/network/NetworkService.java b/api/src/com/cloud/network/NetworkService.java index 2353ae086aa..d44a9f02448 100644 --- a/api/src/com/cloud/network/NetworkService.java +++ b/api/src/com/cloud/network/NetworkService.java @@ -38,7 +38,7 @@ import com.cloud.user.Account; public interface NetworkService { - List getVirtualNetworksForAccountInZone(String accountName, long domainId, long zoneId); + List getVirtualNetworksOwnedByAccountInZone(String accountName, long domainId, long zoneId); List listNetworkOfferings(); diff --git a/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java b/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java index e03daa85b24..84a648b0aa5 100644 --- a/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java +++ b/server/src/com/cloud/agent/manager/ClusteredAgentManagerImpl.java @@ -71,6 +71,7 @@ import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.component.Inject; import com.cloud.utils.concurrency.NamedThreadFactory; import com.cloud.utils.db.DB; +import com.cloud.utils.db.GlobalLock; import com.cloud.utils.db.Transaction; import com.cloud.utils.exception.CloudRuntimeException; import com.cloud.utils.nio.Link; diff --git a/server/src/com/cloud/configuration/Config.java b/server/src/com/cloud/configuration/Config.java index b1f284309b9..543e94e8188 100755 --- a/server/src/com/cloud/configuration/Config.java +++ b/server/src/com/cloud/configuration/Config.java @@ -248,9 +248,10 @@ public enum Config { SubDomainNetworkAccess("Advanced", NetworkManager.class, Boolean.class, "allow.subdomain.network.access", "true", "Allow subdomains to use networks dedicated to their parent domain(s)", null), EncodeApiResponse("Advanced", ManagementServer.class, Boolean.class, "encode.api.response", "false", "Do UTF-8 encoding for the api response, false by default", null), DnsBasicZoneUpdates("Advanced", NetworkManager.class, String.class, "network.dns.basiczone.updates", "all", "This parameter can take 2 values: all (default) and pod. It defines if DHCP/DNS requests have to be send to all dhcp servers in cloudstack, or only to the one in the same pod", "all,pod"), + ClusterMessageTimeOutSeconds("Advanced", ManagementServer.class, Integer.class, "cluster.message.timeout.seconds", "300", "Time (in seconds) to wait before a inter-management server message post times out.", null), - DomainVirtualNetgwork("Advanced", NetworkManager.class, Boolean.class, "domain.level.virtual.network", "false", "True if domain level virtual network is supported, false otherwise", null), AgentLoadThreshold("Advanced", ManagementServer.class, Float.class, "agent.load.threshold", "0.7", "Percentage (as a value between 0 and 1) of connected agents after which agent load balancing will start happening", null); + private final String _category; private final Class _componentClass; diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index cf7e65521fc..ecdcea4fa55 100755 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -2024,7 +2024,7 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura if (associateIpRangeToAccount) { _networkMgr.associateIpAddressListToAccount(userId, account.getId(), zoneId, vlan.getId(), network); if (network == null) { - List networks = _networkMgr.getVirtualNetworksForAccountInZone(account.getAccountName(), account.getDomainId(), zoneId); + List networks = _networkMgr.getVirtualNetworksOwnedByAccountInZone(account.getAccountName(), account.getDomainId(), zoneId); network = networks.get(0); } if (network == null) { diff --git a/server/src/com/cloud/network/NetworkManager.java b/server/src/com/cloud/network/NetworkManager.java index 770ef06e0d6..f2afeca5e95 100644 --- a/server/src/com/cloud/network/NetworkManager.java +++ b/server/src/com/cloud/network/NetworkManager.java @@ -104,7 +104,7 @@ public interface NetworkManager extends NetworkService { * TODO * @return - list of IP addresses */ - List listPublicIpAddressesInVirtualNetwork(Long accountId, long dcId, Boolean sourceNat, Long associatedNetworkId); + List listPublicIpAddressesInVirtualNetwork(long accountId, long dcId, Boolean sourceNat, Long associatedNetworkId); List setupNetwork(Account owner, NetworkOfferingVO offering, DeploymentPlan plan, String name, String displayText, boolean isShared, boolean isDefault) throws ConcurrentOperationException; @@ -201,13 +201,11 @@ public interface NetworkManager extends NetworkService { String getIpOfNetworkElementInVirtualNetwork(long accountId, long dataCenterId); - List listNetworksForAccount(long accountId, long zoneId, GuestIpType guestType, Boolean isDefault, long domainId); + List listNetworksForAccount(long accountId, long zoneId, GuestIpType guestType, Boolean isDefault); IPAddressVO markIpAsUnavailable(long addrId); public String acquireGuestIpAddress(Network network, String requestedIp); String getGlobalGuestDomainSuffix(); - - boolean isDomainGuestVirtualNetworkSupported(); } diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java b/server/src/com/cloud/network/NetworkManagerImpl.java index 6b6864f4366..c37efda5dc7 100755 --- a/server/src/com/cloud/network/NetworkManagerImpl.java +++ b/server/src/com/cloud/network/NetworkManagerImpl.java @@ -232,7 +232,6 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag String _networkDomain; int _cidrLimit; boolean _allowSubdomainNetworkAccess; - boolean _supportDomainLevelVirtualNetwork; private Map _configs; @@ -375,7 +374,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } IPAddressVO sourceNat = null; - List addrs = listPublicIpAddressesInVirtualNetwork(null, dcId, true, network.getId()); + List addrs = listPublicIpAddressesInVirtualNetwork(ownerId, dcId, null, network.getId()); if (addrs.size() == 0) { // Check that the maximum number of public IPs for the given accountId will not be exceeded if (_accountMgr.resourceLimitExceeded(owner, ResourceType.public_ip)) { @@ -383,7 +382,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } if (s_logger.isDebugEnabled()) { - s_logger.debug("assigning a new source nat ip address in " + dcId + " to " + owner + " for the network " + network); + s_logger.debug("assigning a new ip address in " + dcId + " to " + owner); } // If account has Account specific ip ranges, try to allocate ip from there @@ -512,17 +511,13 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } @Override - public List getVirtualNetworksForAccountInZone(String accountName, long domainId, long zoneId) { + public List getVirtualNetworksOwnedByAccountInZone(String accountName, long domainId, long zoneId) { Account owner = _accountMgr.getActiveAccount(accountName, domainId); if (owner == null) { throw new InvalidParameterValueException("Unable to find account " + accountName + " in domain " + domainId + ", permission denied"); } - if (_supportDomainLevelVirtualNetwork) { - return _networksDao.listDomainSpecificNetworks(domainId, zoneId, GuestIpType.Virtual); - } else { - return _networksDao.listBy(owner.getId(), zoneId, GuestIpType.Virtual); - } + return _networksDao.listBy(owner.getId(), zoneId, GuestIpType.Virtual); } @Override @@ -565,8 +560,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag // Check that network belongs to IP owner - skip this check for Basic zone as there is just one guest network, and it // belongs to the system - - if (!network.getIsShared() && network.getAccountId() != ipOwner.getId()) { + if (zone.getNetworkType() != NetworkType.Basic && network.getAccountId() != ipOwner.getId()) { throw new InvalidParameterValueException("The owner of the network is not the same as owner of the IP"); } @@ -816,7 +810,6 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag _executor = Executors.newScheduledThreadPool(1, new NamedThreadFactory("Network-Scavenger")); _allowSubdomainNetworkAccess = Boolean.valueOf(_configs.get(Config.SubDomainNetworkAccess.key())); - _supportDomainLevelVirtualNetwork = Boolean.valueOf(_configs.get(Config.DomainVirtualNetgwork.key())); s_logger.info("Network Manager is configured."); @@ -843,13 +836,9 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } @Override - public List listPublicIpAddressesInVirtualNetwork(Long accountId, long dcId, Boolean sourceNat, Long associatedNetworkId) { + public List listPublicIpAddressesInVirtualNetwork(long accountId, long dcId, Boolean sourceNat, Long associatedNetworkId) { SearchCriteria sc = IpAddressSearch.create(); - - if (accountId != null) { - sc.setParameters("accountId", accountId); - } - + sc.setParameters("accountId", accountId); sc.setParameters("dataCenterId", dcId); if (associatedNetworkId != null) { sc.setParameters("associatedWithNetworkId", associatedNetworkId); @@ -879,7 +868,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } try { - if (predefined == null || (predefined.getCidr() == null && predefined.getBroadcastUri() == null && predefined.getBroadcastDomainType() != BroadcastDomainType.Vlan && !isShared)) { + if (predefined == null || (predefined.getCidr() == null && predefined.getBroadcastUri() == null && predefined.getBroadcastDomainType() != BroadcastDomainType.Vlan)) { List configs = _networksDao.listBy(owner.getId(), offering.getId(), plan.getDataCenterId()); if (configs.size() > 0) { if (s_logger.isDebugEnabled()) { @@ -892,7 +881,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag return configs; } } - } else if (predefined != null && predefined.getCidr() != null && predefined.getBroadcastUri() == null && predefined.getBroadcastUri() == null && !isShared) { + } else if (predefined != null && predefined.getCidr() != null && predefined.getBroadcastUri() == null && predefined.getBroadcastUri() == null) { List configs = _networksDao.listBy(owner.getId(), offering.getId(), plan.getDataCenterId(), predefined.getCidr()); if (configs.size() > 0) { if (s_logger.isDebugEnabled()) { @@ -1536,8 +1525,8 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag // Check if the network is domain specific if (cmd.getDomainId() != null && cmd.getAccountName() == null) { - if (networkOffering.getTrafficType() != TrafficType.Guest) { - throw new InvalidParameterValueException("Domain level networks are supported just for traffic type " + TrafficType.Guest); + if (networkOffering.getTrafficType() != TrafficType.Guest || networkOffering.getGuestType() != GuestIpType.Direct) { + throw new InvalidParameterValueException("Domain level networks are supported just for traffic type " + TrafficType.Guest + " and guest Ip type " + GuestIpType.Direct); } else if (isShared == null || !isShared) { throw new InvalidParameterValueException("Network dedicated to domain should be shared"); } else { @@ -1546,20 +1535,6 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag throw new InvalidParameterValueException("Unable to find domain by id " + cmd.getDomainId()); } _accountMgr.checkAccess(caller, domain); - - if (networkOffering.getGuestType() == GuestIpType.Virtual) { - //1) Don't allow to create domain level virtual network when domain.level.virtual.network is set to false - //2) don't allow to create more than one domain level Virtual network - - if (!_supportDomainLevelVirtualNetwork) { - throw new InvalidParameterValueException("Domain level virtual network is not supported"); - } - - if (!_networksDao.listDomainSpecificNetworks(domain.getId(), zoneId, networkOffering.getGuestType()).isEmpty()) { - throw new InvalidParameterValueException("Domain id=" + domain.getId() + " already has Guest Virtual domain level network in zone id" + zoneId); - } - } - isDomainSpecific = true; } } @@ -1650,10 +1625,6 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag Long domainId = null; if (isDomainSpecific) { domainId = cmd.getDomainId(); - } else if (!isShared) { - if (_supportDomainLevelVirtualNetwork) { - throw new InvalidParameterValueException("Account level virtual network is not supported when domain level network support is enabled"); - } } Network network = createNetwork(networkOfferingId, name, displayText, isShared, isDefault, zoneId, gateway, cidr, vlanId, networkDomain, owner, false, domainId, tags); @@ -1698,8 +1669,8 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } else { isDefault = true; } - if (isShared != null && isShared && domainId == null) { - throw new InvalidParameterValueException("Can specify isShared parameter for Direct networks and Virtual Domain level networks only"); + if (isShared != null && isShared) { + throw new InvalidParameterValueException("Can specify isShared parameter for Direct networks only"); } } else { if (isDefault == null) { @@ -1707,7 +1678,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } } - // if network is shared, default its owner to be system + // if network is shared, defult its owner to be system if (isShared) { owner = _accountMgr.getSystemAccount(); } @@ -1909,15 +1880,14 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag List networksToReturn = new ArrayList(); if (sharedNetworkDomainId != null) { - networksToReturn.addAll(listDomainLevelNetworks(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, type, isDefault, trafficType, isShared), searchFilter, sharedNetworkDomainId, GuestIpType.Virtual)); - networksToReturn.addAll(listDomainLevelNetworks(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, type, isDefault, trafficType, isShared), searchFilter, sharedNetworkDomainId, GuestIpType.Direct)); - } else { - + networksToReturn.addAll(listDomainLevelNetworks(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, type, isDefault, trafficType, isShared), searchFilter, sharedNetworkDomainId)); + } else { SearchBuilder domainSearch = _domainDao.createSearchBuilder(); domainSearch.and("path", domainSearch.entity().getPath(), SearchCriteria.Op.LIKE); sb.join("domainSearch", domainSearch, sb.entity().getDomainId(), domainSearch.entity().getId(), JoinBuilder.JoinType.INNER); networksToReturn.addAll(listDomainSpecificNetworks(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, type, isDefault, trafficType, isShared), searchFilter, path)); } + if (accountId != null || (domainId == null && accountName == null)) { networksToReturn.addAll(listAccountSpecificAndZoneLevelNetworks(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, type, isDefault, trafficType, isShared), searchFilter, accountId, path)); } @@ -1970,22 +1940,17 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } - private List listDomainLevelNetworks(SearchCriteria sc, Filter searchFilter, long domainId, GuestIpType guestIpType) { + private List listDomainLevelNetworks(SearchCriteria sc, Filter searchFilter, long domainId) { - //For direct networks, we list all networks from parent domains (only when _allowSubdomainNetworkAccess is true) - //For virtual networks, list only networks belonging to the same domain Set allowedDomains = new HashSet(); - if (_allowSubdomainNetworkAccess && guestIpType == GuestIpType.Direct) { + if (_allowSubdomainNetworkAccess) { allowedDomains = _accountMgr.getDomainParentIds(domainId); } else { allowedDomains.add(domainId); } sc.addJoinAnd("domainNetworkSearch", "domainId", SearchCriteria.Op.IN, allowedDomains.toArray()); - sc.addAnd("guestType", SearchCriteria.Op.EQ, guestIpType); - return _networksDao.search(sc, searchFilter); - } private List listAccountSpecificAndZoneLevelNetworks(SearchCriteria sc, Filter searchFilter, Long accountId, String path) { @@ -2645,7 +2610,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag txn.start(); if (network == null) { - List networks = getVirtualNetworksForAccountInZone(owner.getAccountName(), owner.getDomainId(), zoneId); + List networks = getVirtualNetworksOwnedByAccountInZone(owner.getAccountName(), owner.getDomainId(), zoneId); if (networks.size() == 0) { createNetwork = true; } else { @@ -2656,13 +2621,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag // create new Virtual network for the user if it doesn't exist if (createNetwork) { List offerings = _configMgr.listNetworkOfferings(TrafficType.Guest, false); - Long domainId = null; - boolean isNetworkShared = false; - if (isDomainGuestVirtualNetworkSupported()) { - domainId = owner.getDomainId(); - isNetworkShared = true; - } - network = createNetwork(offerings.get(0).getId(), owner.getAccountName() + "-network", owner.getAccountName() + "-network", isNetworkShared, null, zoneId, null, null, null, null, owner, false, domainId, null); + network = createNetwork(offerings.get(0).getId(), owner.getAccountName() + "-network", owner.getAccountName() + "-network", false, null, zoneId, null, null, null, null, owner, false, null, null); if (network == null) { s_logger.warn("Failed to create default Virtual network for the account " + accountId + "in zone " + zoneId); @@ -2863,14 +2822,14 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag } @Override - public List listNetworksForAccount(long accountId, long zoneId, GuestIpType guestType, Boolean isDefault, long domainId) { + public List listNetworksForAccount(long accountId, long zoneId, GuestIpType guestType, Boolean isDefault) { List accountNetworks = new ArrayList(); List zoneNetworks = _networksDao.listByZone(zoneId); for (NetworkVO network : zoneNetworks) { NetworkOfferingVO no = _networkOfferingDao.findById(network.getNetworkOfferingId()); if (!no.isSystemOnly()) { - if ((network.getIsShared() && !network.isDomainSpecific()) || (network.getIsShared() && network.isDomainSpecific && isNetworkAvailableInDomain(network.getId(), domainId)) || !_networksDao.listBy(accountId, network.getId()).isEmpty()) { + if (network.getIsShared() || !_networksDao.listBy(accountId, network.getId()).isEmpty()) { if ((guestType == null || guestType == network.getGuestType()) && (isDefault == null || isDefault.booleanValue() == network.isDefault)) { accountNetworks.add(network); } @@ -2937,15 +2896,10 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag s_logger.trace("Network id=" + networkId + " is not shared"); return false; } - - if (network.isDomainSpecific() && network.getGuestType() == GuestIpType.Virtual && !_supportDomainLevelVirtualNetwork) { - s_logger.trace("Network of Guest Virtual Domain specific type is not supported"); - return false; - } List networkDomainMap = _networkDomainDao.listDomainNetworkMapByNetworkId(networkId); if (networkDomainMap.isEmpty()) { - s_logger.trace("Network id=" + networkId + " is shared, but not domain specific, assuming it's a zone wide network"); + s_logger.trace("Network id=" + networkId + " is shared, but not domain specific"); return true; } else { networkDomainId = networkDomainMap.get(0).getDomainId(); @@ -2955,7 +2909,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag return true; } - if (_allowSubdomainNetworkAccess && network.getGuestType() == GuestIpType.Direct) { + if (_allowSubdomainNetworkAccess) { Set parentDomains = _accountMgr.getDomainParentIds(domainId); if (parentDomains.contains(domainId)) { @@ -3177,9 +3131,4 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag public String getGlobalGuestDomainSuffix() { return _networkDomain; } - - @Override - public boolean isDomainGuestVirtualNetworkSupported() { - return _supportDomainLevelVirtualNetwork; - } } diff --git a/server/src/com/cloud/network/NetworkVO.java b/server/src/com/cloud/network/NetworkVO.java index bbb33217b98..597eee8ea23 100644 --- a/server/src/com/cloud/network/NetworkVO.java +++ b/server/src/com/cloud/network/NetworkVO.java @@ -452,7 +452,6 @@ public class NetworkVO implements Network { this.created = created; } - @Override public boolean isDomainSpecific() { return isDomainSpecific; } diff --git a/server/src/com/cloud/network/dao/NetworkDao.java b/server/src/com/cloud/network/dao/NetworkDao.java index 0650692b412..94c2831095b 100644 --- a/server/src/com/cloud/network/dao/NetworkDao.java +++ b/server/src/com/cloud/network/dao/NetworkDao.java @@ -64,6 +64,4 @@ public interface NetworkDao extends GenericDao { List listNetworksBy(boolean isShared); List listByZoneIncludingRemoved(long zoneId); - - List listDomainSpecificNetworks(long domainId, long zoneId, GuestIpType guestType); } diff --git a/server/src/com/cloud/network/dao/NetworkDaoImpl.java b/server/src/com/cloud/network/dao/NetworkDaoImpl.java index f6a2e0f3e1c..dac59335d41 100644 --- a/server/src/com/cloud/network/dao/NetworkDaoImpl.java +++ b/server/src/com/cloud/network/dao/NetworkDaoImpl.java @@ -23,8 +23,6 @@ import java.util.Random; import javax.ejb.Local; import javax.persistence.TableGenerator; -import com.cloud.dc.ClusterVO; -import com.cloud.dc.HostPodVO; import com.cloud.network.Network.GuestIpType; import com.cloud.network.NetworkAccountDaoImpl; import com.cloud.network.NetworkAccountVO; @@ -36,7 +34,6 @@ import com.cloud.network.Networks.TrafficType; import com.cloud.utils.component.ComponentLocator; import com.cloud.utils.db.DB; import com.cloud.utils.db.GenericDaoBase; -import com.cloud.utils.db.GenericSearchBuilder; import com.cloud.utils.db.JoinBuilder; import com.cloud.utils.db.JoinBuilder.JoinType; import com.cloud.utils.db.SearchBuilder; @@ -54,7 +51,6 @@ public class NetworkDaoImpl extends GenericDaoBase implements N final SearchBuilder AccountNetworkSearch; final SearchBuilder ZoneBroadcastUriSearch; final SearchBuilder ZoneSecurityGroupSearch; - final SearchBuilder DomainSpecificSearch; NetworkAccountDaoImpl _accountsDao = ComponentLocator.inject(NetworkAccountDaoImpl.class); NetworkDomainDaoImpl _domainsDao = ComponentLocator.inject(NetworkDomainDaoImpl.class); @@ -115,15 +111,6 @@ public class NetworkDaoImpl extends GenericDaoBase implements N ZoneSecurityGroupSearch.done(); _tgMacAddress = _tgs.get("macAddress"); - - DomainSpecificSearch = createSearchBuilder(); - DomainSpecificSearch.and("guestType", DomainSpecificSearch.entity().getGuestType(), Op.EQ); - - SearchBuilder domainNetworkSearch = _domainsDao.createSearchBuilder(); - domainNetworkSearch.and("domainId", domainNetworkSearch.entity().getDomainId(), Op.EQ); - - DomainSpecificSearch.join("domainNetworkSearch", domainNetworkSearch, domainNetworkSearch.entity().getNetworkId(), DomainSpecificSearch.entity().getId(), JoinBuilder.JoinType.INNER); - DomainSpecificSearch.done(); } @@ -320,17 +307,4 @@ public class NetworkDaoImpl extends GenericDaoBase implements N sc.setParameters("dataCenterId", zoneId); return listIncludingRemovedBy(sc); } - - @Override - public List listDomainSpecificNetworks(long domainId, long zoneId, GuestIpType guestType) { - - SearchCriteria sc = DomainSpecificSearch.create(); - - if (guestType != null) { - sc.setParameters("guestType", guestType); - } - - sc.setJoinParameters("domainNetworkSearch", "domainId", domainId); - return listBy(sc); - } } diff --git a/server/src/com/cloud/user/AccountManagerImpl.java b/server/src/com/cloud/user/AccountManagerImpl.java index 8b82877c323..003a17fbb17 100755 --- a/server/src/com/cloud/user/AccountManagerImpl.java +++ b/server/src/com/cloud/user/AccountManagerImpl.java @@ -73,7 +73,6 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.OperationTimedoutException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceUnavailableException; -import com.cloud.network.IPAddressVO; import com.cloud.network.NetworkManager; import com.cloud.network.NetworkVO; import com.cloud.network.RemoteAccessVpnVO; @@ -1150,23 +1149,6 @@ public class AccountManagerImpl implements AccountManager, AccountService, Manag s_logger.debug("Account specific Virtual IP ranges " + " are successfully deleted as a part of account id=" + accountId + " cleanup."); } } - - //Release ip addresses belonging to shared Domain level Virtual network - List ipsToRelease = _ipAddressDao.listByAccount(accountId); - Long associatedNetworkId = null; - if (!ipsToRelease.isEmpty()) { - associatedNetworkId = ipsToRelease.get(0).getAssociatedWithNetworkId(); - s_logger.debug("Releasing public ip addresses belonging to account id=" + accountId + " and associated with domain level network id=" + associatedNetworkId); - for (IPAddressVO ipToRelease : ipsToRelease) { - assert (ipToRelease.getAssociatedWithNetworkId() == associatedNetworkId) : "How come account has ip addresses associated with multiple domain level Virtual Guest Networks?"; - if (!_networkMgr.releasePublicIpAddress(ipToRelease.getId(), callerUserId, caller)) { - s_logger.warn("Unable to release public ip address id=" + ipToRelease.getId() + " assocaited with domain level network " + ipToRelease.getId() + " as a part of network cleanup"); - accountCleanupNeeded = true; - } - } - - } - return true; } finally { diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index 512e6493829..6fe8073d94e 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -2208,13 +2208,6 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager // Verify that caller can perform actions in behalf of vm owner _accountMgr.checkAccess(caller, owner); - - Long domainId = null; - boolean isNetworkShared = false; - if (_networkMgr.isDomainGuestVirtualNetworkSupported()) { - domainId = owner.getDomainId(); - isNetworkShared = true; - } if (networkIdList == null || networkIdList.isEmpty()) { NetworkVO defaultNetwork = null; @@ -2227,17 +2220,15 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager // 2) If Availability=Optional, search for default networks for the account. If it's more than 1, throw an error. // If it's 0, and there are no default direct networks, create default Guest Virtual network - List defaultVirtualOffering = _networkOfferingDao.listByTrafficTypeAndGuestType(false, TrafficType.Guest, GuestIpType.Virtual); if (defaultVirtualOffering.get(0).getAvailability() == Availability.Required) { - // get Virtual networks - List virtualNetworks = _networkMgr.listNetworksForAccount(owner.getId(), zone.getId(), GuestIpType.Virtual, true, owner.getDomainId()); + // get Virtual netowrks + List virtualNetworks = _networkMgr.listNetworksForAccount(owner.getId(), zone.getId(), GuestIpType.Virtual, true); if (virtualNetworks.isEmpty()) { s_logger.debug("Creating default Virtual network for account " + owner + " as a part of deployVM process"); - - Network newNetwork = _networkMgr.createNetwork(defaultVirtualOffering.get(0).getId(), owner.getAccountName() + "-network", owner.getAccountName() + "-network", isNetworkShared, null, - zone.getId(), null, null, null, null, owner, false, domainId, null); + Network newNetwork = _networkMgr.createNetwork(defaultVirtualOffering.get(0).getId(), owner.getAccountName() + "-network", owner.getAccountName() + "-network", false, null, + zone.getId(), null, null, null, null, owner, false, null, null); defaultNetwork = _networkDao.findById(newNetwork.getId()); } else if (virtualNetworks.size() > 1) { throw new InvalidParameterValueException("More than 1 default Virtaul networks are found for account " + owner + "; please specify networkIds"); @@ -2245,12 +2236,12 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager defaultNetwork = virtualNetworks.get(0); } } else { - List defaultNetworks = _networkMgr.listNetworksForAccount(owner.getId(), zone.getId(), null, true, owner.getDomainId()); + List defaultNetworks = _networkMgr.listNetworksForAccount(owner.getId(), zone.getId(), null, true); if (defaultNetworks.isEmpty()) { if (defaultVirtualOffering.get(0).getAvailability() == Availability.Optional) { s_logger.debug("Creating default Virtual network for account " + owner + " as a part of deployVM process"); - Network newNetwork = _networkMgr.createNetwork(defaultVirtualOffering.get(0).getId(), owner.getAccountName() + "-network", owner.getAccountName() + "-network", isNetworkShared, null, - zone.getId(), null, null, null, null, owner, false, domainId, null); + Network newNetwork = _networkMgr.createNetwork(defaultVirtualOffering.get(0).getId(), owner.getAccountName() + "-network", owner.getAccountName() + "-network", false, null, + zone.getId(), null, null, null, null, owner, false, null, null); defaultNetwork = _networkDao.findById(newNetwork.getId()); } else { throw new InvalidParameterValueException("Unable to find default networks for account " + owner); @@ -3340,16 +3331,10 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager } for (NetworkVO oldNet: oldNetworks){ long networkOffering = oldNet.getNetworkOfferingId(); - List virtualNetworks = _networkMgr.listNetworksForAccount(newAccount.getId(), zone.getId(), GuestIpType.Virtual, true, newAccount.getDomainId()); + List virtualNetworks = _networkMgr.listNetworksForAccount(newAccount.getId(), zone.getId(), GuestIpType.Virtual, true); if (virtualNetworks.isEmpty()) { - Long domainId = null; - boolean isNetworkShared = false; - if (_networkMgr.isDomainGuestVirtualNetworkSupported()) { - domainId = newAccount.getDomainId(); - isNetworkShared = true; - } - Network newNetwork = _networkMgr.createNetwork(networkOffering, newAccount.getAccountName() + "-network", newAccount.getAccountName() + "-network", isNetworkShared, null, - vm.getDataCenterIdToDeployIn(), null, null, null, null, newAccount, false, domainId, null); + Network newNetwork = _networkMgr.createNetwork(networkOffering, newAccount.getAccountName() + "-network", newAccount.getAccountName() + "-network", false, null, + vm.getDataCenterIdToDeployIn(), null, null, null, null, newAccount, false, null, null); defaultNetwork = _networkDao.findById(newNetwork.getId()); } else if (virtualNetworks.size() > 1) { throw new InvalidParameterValueException("More than 1 default Virtaul networks are found for account " + newAccount + "; please specify networkIds");