mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 11:52:28 +01:00
bug 5764: checkin before I switch to work on 2.1.x
This commit is contained in:
parent
5fb852f0ca
commit
415bc8ae20
@ -44,6 +44,7 @@ public class Network {
|
||||
Native,
|
||||
Vlan,
|
||||
Vswitch,
|
||||
LinkLocal,
|
||||
Vnet;
|
||||
};
|
||||
|
||||
@ -54,7 +55,7 @@ public class Network {
|
||||
Public,
|
||||
Guest,
|
||||
Storage,
|
||||
LinkLocal,
|
||||
Control,
|
||||
Vpn,
|
||||
Management
|
||||
};
|
||||
|
||||
@ -700,7 +700,7 @@ public abstract class CitrixResourceBase implements StoragePoolResource, ServerR
|
||||
Pair<Network, String> getNetworkForTraffic(Connection conn, TrafficType type) throws XenAPIException, XmlRpcException {
|
||||
if (type == TrafficType.Guest) {
|
||||
return new Pair<Network, String>(Network.getByUuid(conn, _host.guestNetwork), _host.guestPif);
|
||||
} else if (type == TrafficType.LinkLocal) {
|
||||
} else if (type == TrafficType.Control) {
|
||||
return new Pair<Network, String>(Network.getByUuid(conn, _host.linkLocalNetwork), null);
|
||||
} else if (type == TrafficType.Management) {
|
||||
return new Pair<Network, String>(Network.getByUuid(conn, _host.privateNetwork), _host.privatePif);
|
||||
|
||||
@ -2357,7 +2357,7 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, VirtualMach
|
||||
_publicNetworkOffering = _networkOfferingDao.persistSystemNetworkOffering(_publicNetworkOffering);
|
||||
_managementNetworkOffering = new NetworkOfferingVO(NetworkOfferingVO.SystemVmManagementNetwork, TrafficType.Management, null);
|
||||
_managementNetworkOffering = _networkOfferingDao.persistSystemNetworkOffering(_managementNetworkOffering);
|
||||
_linkLocalNetworkOffering = new NetworkOfferingVO(NetworkOfferingVO.SystemVmLinkLocalNetwork, TrafficType.LinkLocal, null);
|
||||
_linkLocalNetworkOffering = new NetworkOfferingVO(NetworkOfferingVO.SystemVmLinkLocalNetwork, TrafficType.Control, null);
|
||||
_linkLocalNetworkOffering = _networkOfferingDao.persistSystemNetworkOffering(_linkLocalNetworkOffering);
|
||||
|
||||
_capacityScanScheduler.scheduleAtFixedRate(getCapacityScanTask(), STARTUP_DELAY, _capacityScanInterval, TimeUnit.MILLISECONDS);
|
||||
|
||||
@ -53,15 +53,14 @@ import com.cloud.host.dao.HostDao;
|
||||
import com.cloud.hypervisor.xen.resource.CitrixResourceBase;
|
||||
import com.cloud.hypervisor.xen.resource.XcpServerResource;
|
||||
import com.cloud.hypervisor.xen.resource.XenServerConnectionPool;
|
||||
import com.cloud.hypervisor.xen.resource.XenServerResource;
|
||||
import com.cloud.resource.Discoverer;
|
||||
import com.cloud.resource.DiscovererBase;
|
||||
import com.cloud.resource.ServerResource;
|
||||
import com.cloud.storage.Storage.FileSystem;
|
||||
import com.cloud.storage.Storage.ImageFormat;
|
||||
import com.cloud.storage.VMTemplateHostVO;
|
||||
import com.cloud.storage.VMTemplateStorageResourceAssoc;
|
||||
import com.cloud.storage.VMTemplateVO;
|
||||
import com.cloud.storage.Storage.FileSystem;
|
||||
import com.cloud.storage.Storage.ImageFormat;
|
||||
import com.cloud.storage.dao.VMTemplateDao;
|
||||
import com.cloud.storage.dao.VMTemplateHostDao;
|
||||
import com.cloud.storage.template.TemplateInfo;
|
||||
@ -383,8 +382,8 @@ public class XcpServerDiscoverer extends DiscovererBase implements Discoverer, L
|
||||
if(prodBrand.equals("XenCloudPlatform") && prodVersion.equals("0.1.1"))
|
||||
return new XcpServerResource();
|
||||
|
||||
if(prodBrand.equals("XenServer") && prodVersion.equals("5.6.0"))
|
||||
return new XenServerResource();
|
||||
// if(prodBrand.equals("XenServer") && prodVersion.equals("5.6.0"))
|
||||
// return new XenServerResource();
|
||||
|
||||
String msg = "Only support XCP 0.1.1 and Xerver 5.6.0, but this one is " + prodBrand + " " + prodVersion;
|
||||
_alertMgr.sendAlert(AlertManager.ALERT_TYPE_HOST, dcId, podId, msg, msg);
|
||||
|
||||
@ -102,6 +102,7 @@ import com.cloud.network.Network.TrafficType;
|
||||
import com.cloud.network.dao.FirewallRulesDao;
|
||||
import com.cloud.network.dao.IPAddressDao;
|
||||
import com.cloud.network.dao.LoadBalancerDao;
|
||||
import com.cloud.network.dao.NetworkProfileDao;
|
||||
import com.cloud.network.dao.SecurityGroupVMMapDao;
|
||||
import com.cloud.offering.NetworkOffering;
|
||||
import com.cloud.offering.NetworkOffering.GuestIpType;
|
||||
@ -193,6 +194,7 @@ public class NetworkManagerImpl implements NetworkManager, VirtualMachineManager
|
||||
@Inject ServiceOfferingDao _serviceOfferingDao = null;
|
||||
@Inject UserStatisticsDao _statsDao = null;
|
||||
@Inject NetworkOfferingDao _networkOfferingDao = null;
|
||||
@Inject NetworkProfileDao _networkProfileDao = null;
|
||||
|
||||
Adapters<NetworkProfiler> _networkProfilers;
|
||||
|
||||
@ -1835,7 +1837,7 @@ public class NetworkManagerImpl implements NetworkManager, VirtualMachineManager
|
||||
_publicNetworkOffering = _networkOfferingDao.persistSystemNetworkOffering(_publicNetworkOffering);
|
||||
_managementNetworkOffering = new NetworkOfferingVO(NetworkOfferingVO.SystemVmManagementNetwork, TrafficType.Management, null);
|
||||
_managementNetworkOffering = _networkOfferingDao.persistSystemNetworkOffering(_managementNetworkOffering);
|
||||
_linkLocalNetworkOffering = new NetworkOfferingVO(NetworkOfferingVO.SystemVmLinkLocalNetwork, TrafficType.LinkLocal, null);
|
||||
_linkLocalNetworkOffering = new NetworkOfferingVO(NetworkOfferingVO.SystemVmLinkLocalNetwork, TrafficType.Control, null);
|
||||
_linkLocalNetworkOffering = _networkOfferingDao.persistSystemNetworkOffering(_linkLocalNetworkOffering);
|
||||
_guestNetworkOffering = new NetworkOfferingVO(NetworkOfferingVO.SystemVmGuestNetwork, TrafficType.Guest, GuestIpType.Virtualized);
|
||||
_guestNetworkOffering = _networkOfferingDao.persistSystemNetworkOffering(_guestNetworkOffering);
|
||||
@ -1848,6 +1850,29 @@ public class NetworkManagerImpl implements NetworkManager, VirtualMachineManager
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public void setupNetworkProfiles(List<NetworkOfferingVO> offerings, AccountVO account) {
|
||||
List<? extends NetworkProfile> profiles = null;
|
||||
for (NetworkProfiler profiler : _networkProfilers) {
|
||||
if (s_logger.isDebugEnabled()) {
|
||||
s_logger.debug("Sending network profiles to " + profiler.getName());
|
||||
}
|
||||
profiles = profiler.convert(offerings, account);
|
||||
if (profiles != null) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (profiles == null) {
|
||||
s_logger.debug("Unable to resolve the network profiles");
|
||||
throw new CloudRuntimeException("Uanble to convert network offerings to network profiles for that account");
|
||||
}
|
||||
|
||||
for (NetworkProfile profile : profiles) {
|
||||
NetworkProfileVO vo = new NetworkProfileVO(profile, account.getId());
|
||||
vo = _networkProfileDao.persist(vo);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
@ -1861,9 +1886,12 @@ public class NetworkManagerImpl implements NetworkManager, VirtualMachineManager
|
||||
offerings.add(_guestNetworkOffering);
|
||||
offerings.add(_linkLocalNetworkOffering);
|
||||
offerings.add(_managementNetworkOffering);
|
||||
|
||||
for (NetworkProfiler profiler : _networkProfilers) {
|
||||
List<? extends NetworkProfile> profiles = profiler.convert(offerings, _accountMgr.getSystemAccount());
|
||||
|
||||
try {
|
||||
setupNetworkProfiles(offerings, _accountMgr.getSystemAccount());
|
||||
} catch (Exception e) {
|
||||
s_logger.warn("Unable to setup the system network profiles");
|
||||
return false;
|
||||
}
|
||||
_executor.scheduleAtFixedRate(new RouterCleanupTask(), _routerCleanupInterval, _routerCleanupInterval, TimeUnit.SECONDS);
|
||||
_executor.scheduleAtFixedRate(new NetworkUsageTask(), _routerStatsInterval, _routerStatsInterval, TimeUnit.SECONDS);
|
||||
|
||||
@ -57,8 +57,8 @@ public class NetworkProfileVO implements OwnedBy {
|
||||
@Enumerated(value=EnumType.STRING)
|
||||
TrafficType trafficType;
|
||||
|
||||
@Column(name="vlanIds")
|
||||
String vlanIds;
|
||||
@Column(name="vlan_id")
|
||||
Long vlanId;
|
||||
|
||||
@Column(name="gateway")
|
||||
String gateway;
|
||||
@ -69,6 +69,10 @@ public class NetworkProfileVO implements OwnedBy {
|
||||
public NetworkProfileVO() {
|
||||
}
|
||||
|
||||
public NetworkProfileVO(NetworkProfile that, long accountId) {
|
||||
this(accountId, that.getTrafficType(), that.getMode(), that.getBroadcastDomainType());
|
||||
}
|
||||
|
||||
public NetworkProfileVO(long accountId, TrafficType trafficType, Mode mode, BroadcastDomainType broadcastDomainType) {
|
||||
this.accountId = accountId;
|
||||
this.trafficType = trafficType;
|
||||
@ -129,4 +133,11 @@ public class NetworkProfileVO implements OwnedBy {
|
||||
this.cidr = cidr;
|
||||
}
|
||||
|
||||
public Long getVlanId() {
|
||||
return vlanId;
|
||||
}
|
||||
|
||||
public void setVlanId(Long vlanId) {
|
||||
this.vlanId = vlanId;
|
||||
}
|
||||
}
|
||||
|
||||
@ -27,6 +27,7 @@ public class NetworkProfilerImpl extends AdapterBase implements NetworkProfiler
|
||||
|
||||
@Override
|
||||
public List<? extends NetworkProfile> convert(Collection<? extends NetworkOffering> networkOfferings, Account owner) {
|
||||
List<NetworkProfileVO> profiles = _profileDao.listBy(owner.getId());
|
||||
for (NetworkOffering offering : networkOfferings) {
|
||||
}
|
||||
return null;
|
||||
|
||||
@ -17,9 +17,11 @@
|
||||
*/
|
||||
package com.cloud.network.dao;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.cloud.network.NetworkProfileVO;
|
||||
import com.cloud.utils.db.GenericDao;
|
||||
|
||||
public interface NetworkProfileDao extends GenericDao<NetworkProfileVO, Long> {
|
||||
|
||||
List<NetworkProfileVO> listBy(long accountId);
|
||||
}
|
||||
|
||||
@ -17,8 +17,11 @@
|
||||
*/
|
||||
package com.cloud.network.dao;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.ejb.Local;
|
||||
|
||||
import com.cloud.network.Network.BroadcastDomainType;
|
||||
import com.cloud.network.Network.Mode;
|
||||
import com.cloud.network.Network.TrafficType;
|
||||
import com.cloud.network.NetworkProfileVO;
|
||||
@ -29,6 +32,7 @@ import com.cloud.utils.db.SearchCriteria;
|
||||
@Local(value=NetworkProfileDao.class)
|
||||
public class NetworkProfileDaoImpl extends GenericDaoBase<NetworkProfileVO, Long> implements NetworkProfileDao {
|
||||
final SearchBuilder<NetworkProfileVO> ProfileSearch;
|
||||
final SearchBuilder<NetworkProfileVO> AccountSearch;
|
||||
|
||||
protected NetworkProfileDaoImpl() {
|
||||
super();
|
||||
@ -38,10 +42,28 @@ public class NetworkProfileDaoImpl extends GenericDaoBase<NetworkProfileVO, Long
|
||||
ProfileSearch.and("trafficType", ProfileSearch.entity().getTrafficType(), SearchCriteria.Op.EQ);
|
||||
ProfileSearch.and("cidr", ProfileSearch.entity().getCidr(), SearchCriteria.Op.EQ);
|
||||
ProfileSearch.and("broadcastType", ProfileSearch.entity().getBroadcastDomainType(), SearchCriteria.Op.EQ);
|
||||
ProfileSearch.done();
|
||||
|
||||
AccountSearch = createSearchBuilder();
|
||||
AccountSearch.and("account", AccountSearch.entity().getAccountId(), SearchCriteria.Op.EQ);
|
||||
AccountSearch.done();
|
||||
}
|
||||
|
||||
public NetworkProfileVO findBy(TrafficType trafficType, Mode mode, long accountId) {
|
||||
public NetworkProfileVO findBy(TrafficType trafficType, Mode mode, BroadcastDomainType broadcastType, long accountId) {
|
||||
SearchCriteria<NetworkProfileVO> sc = ProfileSearch.create();
|
||||
sc.setParameters("account", accountId);
|
||||
sc.setParameters("trafficType", trafficType);
|
||||
sc.setParameters("broadcastType", broadcastType);
|
||||
|
||||
return null;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<NetworkProfileVO> listBy(long accountId) {
|
||||
SearchCriteria<NetworkProfileVO> sc = AccountSearch.create();
|
||||
sc.setParameters("account", accountId);
|
||||
|
||||
return listActiveBy(sc);
|
||||
}
|
||||
}
|
||||
|
||||
@ -95,6 +95,7 @@ CREATE TABLE `cloud`.`network_profiles` (
|
||||
`gateway` varchar(15) NOT NULL COMMENT 'gateway for this network profile',
|
||||
`cidr` varchar(32) NOT NULL COMMENT 'network cidr',
|
||||
`mode` varchar(32) NOT NULL COMMENT 'How to retrieve ip address in this network',
|
||||
`vlan_id` bigint unsigned NULL COMMENT 'vlan id if the broadcast_domain_type is the vlan',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user