mirror of
https://github.com/apache/cloudstack.git
synced 2025-12-17 19:14:40 +01:00
Bug 13250 - Not able to start System Vms when 2 physical networks are configured
if admin didn't specify storage traffic type before enabling zone, create default storage traffic type with the same configuration of mgmt traffic type. UI need a warning to admin, will file another bug for this status 13250: resolved fixed
This commit is contained in:
parent
dfd28b0df8
commit
c40a421eb6
@ -112,10 +112,13 @@ import com.cloud.network.NetworkManager;
|
|||||||
import com.cloud.network.NetworkVO;
|
import com.cloud.network.NetworkVO;
|
||||||
import com.cloud.network.Networks.BroadcastDomainType;
|
import com.cloud.network.Networks.BroadcastDomainType;
|
||||||
import com.cloud.network.Networks.TrafficType;
|
import com.cloud.network.Networks.TrafficType;
|
||||||
|
import com.cloud.network.PhysicalNetwork;
|
||||||
import com.cloud.network.PhysicalNetworkVO;
|
import com.cloud.network.PhysicalNetworkVO;
|
||||||
import com.cloud.network.dao.IPAddressDao;
|
import com.cloud.network.dao.IPAddressDao;
|
||||||
import com.cloud.network.dao.NetworkDao;
|
import com.cloud.network.dao.NetworkDao;
|
||||||
import com.cloud.network.dao.PhysicalNetworkDao;
|
import com.cloud.network.dao.PhysicalNetworkDao;
|
||||||
|
import com.cloud.network.dao.PhysicalNetworkTrafficTypeDao;
|
||||||
|
import com.cloud.network.dao.PhysicalNetworkTrafficTypeVO;
|
||||||
import com.cloud.offering.DiskOffering;
|
import com.cloud.offering.DiskOffering;
|
||||||
import com.cloud.offering.NetworkOffering;
|
import com.cloud.offering.NetworkOffering;
|
||||||
import com.cloud.offering.NetworkOffering.Availability;
|
import com.cloud.offering.NetworkOffering.Availability;
|
||||||
@ -236,6 +239,8 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura
|
|||||||
PhysicalNetworkDao _physicalNetworkDao;
|
PhysicalNetworkDao _physicalNetworkDao;
|
||||||
@Inject
|
@Inject
|
||||||
SwiftManager _swiftMgr;
|
SwiftManager _swiftMgr;
|
||||||
|
@Inject
|
||||||
|
PhysicalNetworkTrafficTypeDao _trafficTypeDao;
|
||||||
|
|
||||||
// FIXME - why don't we have interface for DataCenterLinkLocalIpAddressDao?
|
// FIXME - why don't we have interface for DataCenterLinkLocalIpAddressDao?
|
||||||
protected static final DataCenterLinkLocalIpAddressDaoImpl _LinkLocalIpAllocDao = ComponentLocator.inject(DataCenterLinkLocalIpAddressDaoImpl.class);
|
protected static final DataCenterLinkLocalIpAddressDaoImpl _LinkLocalIpAllocDao = ComponentLocator.inject(DataCenterLinkLocalIpAddressDaoImpl.class);
|
||||||
@ -1456,13 +1461,22 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura
|
|||||||
if(allocationState == Grouping.AllocationState.Enabled){
|
if(allocationState == Grouping.AllocationState.Enabled){
|
||||||
//check if zone has necessary trafficTypes before enabling
|
//check if zone has necessary trafficTypes before enabling
|
||||||
try{
|
try{
|
||||||
|
PhysicalNetwork mgmtPhyNetwork;
|
||||||
if(NetworkType.Advanced == zone.getNetworkType()){
|
if(NetworkType.Advanced == zone.getNetworkType()){
|
||||||
//zone should have a physical network with public and management traffiType
|
//zone should have a physical network with public and management traffiType
|
||||||
_networkMgr.getDefaultPhysicalNetworkByZoneAndTrafficType(zoneId, TrafficType.Public);
|
_networkMgr.getDefaultPhysicalNetworkByZoneAndTrafficType(zoneId, TrafficType.Public);
|
||||||
_networkMgr.getDefaultPhysicalNetworkByZoneAndTrafficType(zoneId, TrafficType.Management);
|
mgmtPhyNetwork = _networkMgr.getDefaultPhysicalNetworkByZoneAndTrafficType(zoneId, TrafficType.Management);
|
||||||
}else{
|
}else{
|
||||||
//zone should have a physical network with management traffiType
|
//zone should have a physical network with management traffiType
|
||||||
_networkMgr.getDefaultPhysicalNetworkByZoneAndTrafficType(zoneId, TrafficType.Management);
|
mgmtPhyNetwork = _networkMgr.getDefaultPhysicalNetworkByZoneAndTrafficType(zoneId, TrafficType.Management);
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
_networkMgr.getDefaultPhysicalNetworkByZoneAndTrafficType(zoneId, TrafficType.Storage);
|
||||||
|
} catch (InvalidParameterValueException noStorage) {
|
||||||
|
PhysicalNetworkTrafficTypeVO mgmtTraffic = _trafficTypeDao.findBy(mgmtPhyNetwork.getId(), TrafficType.Management);
|
||||||
|
_networkMgr.addTrafficTypeToPhysicalNetwork(mgmtPhyNetwork.getId(), TrafficType.Storage.toString(), mgmtTraffic.getXenNetworkLabel(), mgmtTraffic.getKvmNetworkLabel(), mgmtTraffic.getVmwareNetworkLabel(), mgmtTraffic.getSimulatorNetworkLabel(), mgmtTraffic.getVlan());
|
||||||
|
s_logger.info("No storage traffic type was specified by admin, create default storage traffic on physical network " + mgmtPhyNetwork.getId() + " with same configure of management traffic type");
|
||||||
}
|
}
|
||||||
}catch(InvalidParameterValueException ex){
|
}catch(InvalidParameterValueException ex){
|
||||||
throw new InvalidParameterValueException("Cannot enable this Zone since: "+ ex.getMessage());
|
throw new InvalidParameterValueException("Cannot enable this Zone since: "+ ex.getMessage());
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user