mirror of
https://github.com/apache/cloudstack.git
synced 2025-11-02 11:52:28 +01:00
Create network using physical network id
This commit is contained in:
parent
0d7ddb5d58
commit
219978a9be
@ -30,6 +30,7 @@ import com.cloud.api.ServerApiException;
|
||||
import com.cloud.api.response.NetworkResponse;
|
||||
import com.cloud.exception.ConcurrentOperationException;
|
||||
import com.cloud.exception.InsufficientCapacityException;
|
||||
import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.network.Network;
|
||||
import com.cloud.user.UserContext;
|
||||
|
||||
@ -52,7 +53,7 @@ public class CreateNetworkCmd extends BaseCmd {
|
||||
@Parameter(name=ApiConstants.NETWORK_OFFERING_ID, type=CommandType.LONG, required=true, description="the network offering id")
|
||||
private Long networkOfferingId;
|
||||
|
||||
@Parameter(name=ApiConstants.ZONE_ID, type=CommandType.LONG, required=true, description="the Zone ID for the network")
|
||||
@Parameter(name=ApiConstants.ZONE_ID, type=CommandType.LONG, description="the Zone ID for the network")
|
||||
private Long zoneId;
|
||||
|
||||
@Parameter(name=ApiConstants.GATEWAY, type=CommandType.STRING, description="the gateway of the network")
|
||||
@ -90,6 +91,9 @@ public class CreateNetworkCmd extends BaseCmd {
|
||||
|
||||
@Parameter(name=ApiConstants.TAGS, type=CommandType.LIST, collectionType=CommandType.STRING, description="Tag the network")
|
||||
private List<String> tags;
|
||||
|
||||
@Parameter(name=ApiConstants.PHYSICAL_NETWORK_ID, type=CommandType.LONG, description="the Physical Network ID the network belongs to")
|
||||
private Long physicalNetworkId;
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
/////////////////// Accessors ///////////////////////
|
||||
@ -102,10 +106,6 @@ public class CreateNetworkCmd extends BaseCmd {
|
||||
return tags;
|
||||
}
|
||||
|
||||
public Long getZoneId() {
|
||||
return zoneId;
|
||||
}
|
||||
|
||||
public String getGateway() {
|
||||
return gateway;
|
||||
}
|
||||
@ -158,6 +158,16 @@ public class CreateNetworkCmd extends BaseCmd {
|
||||
return isShared == null ? false : isShared;
|
||||
}
|
||||
|
||||
public Long getPhysicalNetworkId() {
|
||||
if (physicalNetworkId != null) {
|
||||
return physicalNetworkId;
|
||||
} else if (zoneId != null) {
|
||||
return _networkService.translateZoneToPhysicalNetwork(zoneId);
|
||||
} else {
|
||||
throw new InvalidParameterValueException("Either zoneId or physicalNetworkId have to be specified");
|
||||
}
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
/////////////// API Implementation///////////////////
|
||||
/////////////////////////////////////////////////////
|
||||
|
||||
@ -69,6 +69,9 @@ public class ListNetworksCmd extends BaseListCmd {
|
||||
|
||||
@Parameter(name=ApiConstants.PROJECT_ID, type=CommandType.LONG, description="list networks by project id")
|
||||
private Long projectId;
|
||||
|
||||
@Parameter(name=ApiConstants.PHYSICAL_NETWORK_ID, type=CommandType.LONG, description="list networks by physical network id")
|
||||
private Long physicalNetworkId;
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
/////////////////// Accessors ///////////////////////
|
||||
@ -114,6 +117,10 @@ public class ListNetworksCmd extends BaseListCmd {
|
||||
return projectId;
|
||||
}
|
||||
|
||||
public Long getPhysicalNetworkId() {
|
||||
return physicalNetworkId;
|
||||
}
|
||||
|
||||
/////////////////////////////////////////////////////
|
||||
/////////////// API Implementation///////////////////
|
||||
/////////////////////////////////////////////////////
|
||||
|
||||
@ -125,6 +125,10 @@ public class NetworkResponse extends BaseResponse implements ControlledEntityRes
|
||||
|
||||
@SerializedName(ApiConstants.TAGS) @Param(description="comma separated tag")
|
||||
private String tags;
|
||||
|
||||
@SerializedName(ApiConstants.PHYSICAL_NETWORK_ID) @Param(description="the physical network id")
|
||||
private Long physicalNetworkId;
|
||||
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
@ -268,7 +272,9 @@ public class NetworkResponse extends BaseResponse implements ControlledEntityRes
|
||||
public void setProjectName(String projectName) {
|
||||
this.projectName = projectName;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public void setPhysicalNetworkId(Long physicalNetworkId) {
|
||||
this.physicalNetworkId = physicalNetworkId;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -25,19 +25,21 @@ public class DataCenterDeployment implements DeploymentPlan {
|
||||
Long _clusterId;
|
||||
Long _poolId;
|
||||
Long _hostId;
|
||||
Long _physicalNetworkId;
|
||||
ExcludeList _avoids = null;
|
||||
boolean _recreateDisks;
|
||||
|
||||
public DataCenterDeployment(long dataCenterId) {
|
||||
this(dataCenterId, null, null, null, null);
|
||||
this(dataCenterId, null, null, null, null, null);
|
||||
}
|
||||
|
||||
public DataCenterDeployment(long dataCenterId, Long podId, Long clusterId, Long hostId, Long poolId) {
|
||||
public DataCenterDeployment(long dataCenterId, Long podId, Long clusterId, Long hostId, Long poolId, Long physicalNetworkId) {
|
||||
_dcId = dataCenterId;
|
||||
_podId = podId;
|
||||
_clusterId = clusterId;
|
||||
_hostId = hostId;
|
||||
_poolId = poolId;
|
||||
_physicalNetworkId = physicalNetworkId;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -74,4 +76,9 @@ public class DataCenterDeployment implements DeploymentPlan {
|
||||
public void setAvoids(ExcludeList avoids) {
|
||||
_avoids = avoids;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Long getPhysicalNetworkId() {
|
||||
return _physicalNetworkId;
|
||||
}
|
||||
}
|
||||
|
||||
@ -63,4 +63,6 @@ public interface DeploymentPlan {
|
||||
* the ExcludeList to avoid for deployment
|
||||
*/
|
||||
public ExcludeList getAvoids();
|
||||
|
||||
Long getPhysicalNetworkId();
|
||||
}
|
||||
|
||||
@ -39,6 +39,7 @@ import com.cloud.utils.fsm.StateMachine;
|
||||
*/
|
||||
public interface Network extends ControlledEntity {
|
||||
|
||||
@Deprecated
|
||||
public enum GuestIpType {
|
||||
Virtual,
|
||||
Direct,
|
||||
@ -252,6 +253,7 @@ public interface Network extends ControlledEntity {
|
||||
|
||||
URI getBroadcastUri();
|
||||
|
||||
@Deprecated
|
||||
GuestIpType getGuestType();
|
||||
|
||||
String getDisplayText();
|
||||
@ -270,5 +272,5 @@ public interface Network extends ControlledEntity {
|
||||
|
||||
boolean getIsShared();
|
||||
|
||||
long getPhysicalNetworkId();
|
||||
Long getPhysicalNetworkId();
|
||||
}
|
||||
|
||||
@ -50,9 +50,10 @@ public class NetworkProfile implements Network {
|
||||
private boolean isSecurityGroupEnabled;
|
||||
private List<String> tags;
|
||||
private Network.Type type;
|
||||
@Deprecated
|
||||
private GuestIpType guestIpType;
|
||||
private boolean isShared;
|
||||
private long physicalNetworkId;
|
||||
private Long physicalNetworkId;
|
||||
|
||||
public NetworkProfile(Network network) {
|
||||
this.id = network.getId();
|
||||
@ -216,7 +217,7 @@ public class NetworkProfile implements Network {
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getPhysicalNetworkId() {
|
||||
public Long getPhysicalNetworkId() {
|
||||
return physicalNetworkId;
|
||||
}
|
||||
}
|
||||
|
||||
@ -117,4 +117,6 @@ public interface NetworkService {
|
||||
PhysicalNetworkServiceProvider getPhysicalNetworkServiceProvider(Long providerId);
|
||||
|
||||
PhysicalNetworkServiceProvider getCreatedPhysicalNetworkServiceProvider(Long providerId);
|
||||
|
||||
long translateZoneToPhysicalNetwork(long zoneId);
|
||||
}
|
||||
|
||||
@ -18,8 +18,6 @@
|
||||
package com.cloud.offering;
|
||||
|
||||
import com.cloud.network.Network.GuestIpType;
|
||||
import com.cloud.network.Network.Provider;
|
||||
import com.cloud.network.Network.Service;
|
||||
import com.cloud.network.Network.Type;
|
||||
import com.cloud.network.Networks.TrafficType;
|
||||
|
||||
@ -91,6 +89,7 @@ public interface NetworkOffering {
|
||||
|
||||
boolean isSharedSourceNatService();
|
||||
|
||||
@Deprecated
|
||||
GuestIpType getGuestType();
|
||||
|
||||
String getUniqueName();
|
||||
|
||||
@ -130,7 +130,7 @@ public class RecreateHostAllocator extends FirstFitRoutingAllocator {
|
||||
}
|
||||
continue;
|
||||
}
|
||||
DataCenterDeployment newPlan = new DataCenterDeployment(plan.getDataCenterId(), p.getPod().getId(), clusterId, null, null);
|
||||
DataCenterDeployment newPlan = new DataCenterDeployment(plan.getDataCenterId(), p.getPod().getId(), clusterId, null, null, null);
|
||||
hosts = super.allocateTo(vm, newPlan, type, avoid, returnUpTo);
|
||||
if (hosts != null && !hosts.isEmpty()) {
|
||||
return hosts;
|
||||
|
||||
@ -2176,6 +2176,7 @@ public class ApiResponseHelper implements ResponseGenerator {
|
||||
}
|
||||
|
||||
response.setZoneId(network.getDataCenterId());
|
||||
response.setPhysicalNetworkId(network.getPhysicalNetworkId());
|
||||
|
||||
// populate network offering information
|
||||
NetworkOffering networkOffering = ApiDBUtils.findNetworkOfferingById(network.getNetworkOfferingId());
|
||||
@ -2381,17 +2382,19 @@ public class ApiResponseHelper implements ResponseGenerator {
|
||||
|
||||
Set<SecurityGroupResponse> securityGroupResponse = new HashSet<SecurityGroupResponse>();
|
||||
for (SecurityGroupData sgd: userVmData.getSecurityGroupList()){
|
||||
SecurityGroupResponse sgr = new SecurityGroupResponse();
|
||||
sgr.setId(sgd.getId());
|
||||
sgr.setName(sgd.getName());
|
||||
sgr.setDescription(sgd.getDescription());
|
||||
|
||||
Account account = ApiDBUtils.findAccountByNameDomain(sgd.getAccountName(), sgd.getDomainId());
|
||||
populateAccount(sgr, account.getId());
|
||||
populateDomain(sgr, sgd.getDomainId());
|
||||
|
||||
sgr.setObjectName(sgd.getObjectName());
|
||||
securityGroupResponse.add(sgr);
|
||||
if (sgd.getId() != null) {
|
||||
SecurityGroupResponse sgr = new SecurityGroupResponse();
|
||||
sgr.setId(sgd.getId());
|
||||
sgr.setName(sgd.getName());
|
||||
sgr.setDescription(sgd.getDescription());
|
||||
|
||||
Account account = ApiDBUtils.findAccountByNameDomain(sgd.getAccountName(), sgd.getDomainId());
|
||||
populateAccount(sgr, account.getId());
|
||||
populateDomain(sgr, sgd.getDomainId());
|
||||
|
||||
sgr.setObjectName(sgd.getObjectName());
|
||||
securityGroupResponse.add(sgr);
|
||||
}
|
||||
}
|
||||
userVmResponse.setSecurityGroupList(new ArrayList<SecurityGroupResponse>(securityGroupResponse));
|
||||
|
||||
|
||||
@ -956,11 +956,7 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura
|
||||
return pod;
|
||||
}
|
||||
|
||||
private boolean zoneHasVMs(long zoneId) {
|
||||
List<VMInstanceVO> vmInstances = _vmInstanceDao.listByZoneId(zoneId);
|
||||
return !vmInstances.isEmpty();
|
||||
}
|
||||
|
||||
|
||||
@DB
|
||||
protected void checkIfZoneIsDeletable(long zoneId) {
|
||||
List<List<String>> tablesToCheck = new ArrayList<List<String>>();
|
||||
@ -1001,6 +997,7 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura
|
||||
volumes.add(2, "there are storage volumes for this zone");
|
||||
tablesToCheck.add(volumes);
|
||||
|
||||
//FIXME - move this part of verification to deletePhysicalNetwork code
|
||||
List<String> vnet = new ArrayList<String>();
|
||||
vnet.add(0, "op_dc_vnet_alloc");
|
||||
vnet.add(1, "data_center_id");
|
||||
@ -1142,9 +1139,6 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura
|
||||
|
||||
txn.start();
|
||||
|
||||
// Delete vNet
|
||||
_zoneDao.deleteVnet(zoneId);
|
||||
|
||||
// delete vlans for this zone
|
||||
List<VlanVO> vlans = _vlanDao.listByZone(zoneId);
|
||||
for (VlanVO vlan : vlans) {
|
||||
@ -1152,12 +1146,16 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura
|
||||
}
|
||||
|
||||
// Delete networks
|
||||
//FIXME - move this part to deletePhysicalNetwork
|
||||
List<NetworkVO> networks = _networkDao.listByZoneIncludingRemoved(zoneId);
|
||||
if (networks != null && !networks.isEmpty()) {
|
||||
for (NetworkVO network : networks) {
|
||||
_networkDao.remove(network.getId());
|
||||
}
|
||||
}
|
||||
|
||||
//FIXME - Delete physical networks belonging to the zone
|
||||
|
||||
success = _zoneDao.remove(zoneId);
|
||||
|
||||
if (success) {
|
||||
@ -1381,7 +1379,7 @@ public class ConfigurationManagerImpl implements ConfigurationManager, Configura
|
||||
List<NetworkOfferingVO> ntwkOff = _networkOfferingDao.listSystemNetworkOfferings();
|
||||
|
||||
for (NetworkOfferingVO offering : ntwkOff) {
|
||||
DataCenterDeployment plan = new DataCenterDeployment(zone.getId(), null, null, null, null);
|
||||
DataCenterDeployment plan = new DataCenterDeployment(zone.getId(), null, null, null, null, null);
|
||||
NetworkVO userNetwork = new NetworkVO();
|
||||
|
||||
Account systemAccount = _accountDao.findById(Account.ACCOUNT_ID_SYSTEM);
|
||||
|
||||
@ -51,8 +51,6 @@ public interface DataCenterDao extends GenericDao<DataCenterVO, Long> {
|
||||
void addLinkLocalIpAddress(long dcId,long podId, String start, String end);
|
||||
|
||||
List<DataCenterVnetVO> findVnet(long dcId, String vnet);
|
||||
|
||||
void deleteVnet(long dcId);
|
||||
|
||||
String allocatePodVlan(long podId, long accountId);
|
||||
|
||||
@ -71,6 +69,6 @@ public interface DataCenterDao extends GenericDao<DataCenterVO, Long> {
|
||||
DataCenterVO findByTokenOrIdOrName(String tokenIdOrName);
|
||||
|
||||
void addVnet(long dcId, long physicalNetworkId, int start, int end);
|
||||
void deleteVnet(long dcId, long physicalNetworkId);
|
||||
List<DataCenterVnetVO> listAllocatedVnets(long dcId, long physicalNetworkId);
|
||||
void deleteVnet(long physicalNetworkId);
|
||||
List<DataCenterVnetVO> listAllocatedVnets(long physicalNetworkId);
|
||||
}
|
||||
|
||||
@ -111,7 +111,7 @@ public class DataCenterDaoImpl extends GenericDaoBase<DataCenterVO, Long> implem
|
||||
|
||||
@Override
|
||||
public void releaseVnet(String vnet, long dcId, long physicalNetworkId, long accountId, String reservationId) {
|
||||
_vnetAllocDao.release(vnet, dcId, physicalNetworkId, accountId, reservationId);
|
||||
_vnetAllocDao.release(vnet, physicalNetworkId, accountId, reservationId);
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -151,7 +151,7 @@ public class DataCenterDaoImpl extends GenericDaoBase<DataCenterVO, Long> implem
|
||||
|
||||
@Override
|
||||
public String allocateVnet(long dataCenterId, long physicalNetworkId, long accountId, String reservationId) {
|
||||
DataCenterVnetVO vo = _vnetAllocDao.take(dataCenterId, physicalNetworkId, accountId, reservationId);
|
||||
DataCenterVnetVO vo = _vnetAllocDao.take(physicalNetworkId, accountId, reservationId);
|
||||
if (vo == null) {
|
||||
return null;
|
||||
}
|
||||
@ -204,13 +204,6 @@ public class DataCenterDaoImpl extends GenericDaoBase<DataCenterVO, Long> implem
|
||||
}
|
||||
return vo.getIpAddress();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void deleteVnet(long dcId) {
|
||||
_vnetAllocDao.delete(dcId);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void addVnet(long dcId, long physicalNetworkId, int start, int end) {
|
||||
@ -218,13 +211,13 @@ public class DataCenterDaoImpl extends GenericDaoBase<DataCenterVO, Long> implem
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteVnet(long dcId, long physicalNetworkId) {
|
||||
_vnetAllocDao.delete(dcId, physicalNetworkId);
|
||||
public void deleteVnet(long physicalNetworkId) {
|
||||
_vnetAllocDao.delete(physicalNetworkId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<DataCenterVnetVO> listAllocatedVnets(long dcId, long physicalNetworkId) {
|
||||
return _vnetAllocDao.listAllocatedVnets(dcId, physicalNetworkId);
|
||||
public List<DataCenterVnetVO> listAllocatedVnets(long physicalNetworkId) {
|
||||
return _vnetAllocDao.listAllocatedVnets(physicalNetworkId);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@ -41,16 +41,9 @@ public class DataCenterVnetDaoImpl extends GenericDaoBase<DataCenterVnetVO, Long
|
||||
private final SearchBuilder<DataCenterVnetVO> VnetDcSearch;
|
||||
private final SearchBuilder<DataCenterVnetVO> VnetDcSearchAllocated;
|
||||
private final SearchBuilder<DataCenterVnetVO> DcSearchAllocated;
|
||||
|
||||
public List<DataCenterVnetVO> listAllocatedVnets(long dcId) {
|
||||
SearchCriteria<DataCenterVnetVO> sc = DcSearchAllocated.create();
|
||||
sc.setParameters("dc", dcId);
|
||||
return listBy(sc);
|
||||
}
|
||||
|
||||
public List<DataCenterVnetVO> listAllocatedVnets(long dcId, long physicalNetworkId) {
|
||||
public List<DataCenterVnetVO> listAllocatedVnets(long physicalNetworkId) {
|
||||
SearchCriteria<DataCenterVnetVO> sc = DcSearchAllocated.create();
|
||||
sc.setParameters("dc", dcId);
|
||||
sc.setParameters("physicalNetworkId", physicalNetworkId);
|
||||
return listBy(sc);
|
||||
}
|
||||
@ -92,24 +85,15 @@ public class DataCenterVnetDaoImpl extends GenericDaoBase<DataCenterVnetVO, Long
|
||||
}
|
||||
}
|
||||
|
||||
public void delete(long dcId) {
|
||||
public void delete(long physicalNetworkId) {
|
||||
SearchCriteria<DataCenterVnetVO> sc = VnetDcSearch.create();
|
||||
sc.setParameters("dc", dcId);
|
||||
remove(sc);
|
||||
}
|
||||
|
||||
public void delete(long dcId, long physicalNetworkId) {
|
||||
SearchCriteria<DataCenterVnetVO> sc = VnetDcSearch.create();
|
||||
sc.setParameters("dc", dcId);
|
||||
sc.setParameters("physicalNetworkId", physicalNetworkId);
|
||||
|
||||
remove(sc);
|
||||
}
|
||||
|
||||
@DB
|
||||
public DataCenterVnetVO take(long dcId, long physicalNetworkId, long accountId, String reservationId) {
|
||||
public DataCenterVnetVO take(long physicalNetworkId, long accountId, String reservationId) {
|
||||
SearchCriteria<DataCenterVnetVO> sc = FreeVnetSearch.create();
|
||||
sc.setParameters("dc", dcId);
|
||||
sc.setParameters("physicalNetworkId", physicalNetworkId);
|
||||
Date now = new Date();
|
||||
Transaction txn = Transaction.currentTxn();
|
||||
@ -127,10 +111,9 @@ public class DataCenterVnetDaoImpl extends GenericDaoBase<DataCenterVnetVO, Long
|
||||
return vo;
|
||||
}
|
||||
|
||||
public void release(String vnet, long dcId, long physicalNetworkId, long accountId, String reservationId) {
|
||||
public void release(String vnet, long physicalNetworkId, long accountId, String reservationId) {
|
||||
SearchCriteria<DataCenterVnetVO> sc = VnetDcSearchAllocated.create();
|
||||
sc.setParameters("vnet", vnet);
|
||||
sc.setParameters("dc", dcId);
|
||||
sc.setParameters("physicalNetworkId", physicalNetworkId);
|
||||
sc.setParameters("account", accountId);
|
||||
sc.setParameters("reservation", reservationId);
|
||||
|
||||
@ -141,7 +141,7 @@ public class FirstFitPlanner extends PlannerBase implements DeploymentPlanner {
|
||||
}
|
||||
|
||||
//search for storage under the zone, pod, cluster of the host.
|
||||
DataCenterDeployment lastPlan = new DataCenterDeployment(host.getDataCenterId(), host.getPodId(), host.getClusterId(), hostIdSpecified, plan.getPoolId());
|
||||
DataCenterDeployment lastPlan = new DataCenterDeployment(host.getDataCenterId(), host.getPodId(), host.getClusterId(), hostIdSpecified, plan.getPoolId(), null);
|
||||
|
||||
Pair<Map<Volume, List<StoragePool>>, List<Volume>> result = findSuitablePoolsForVolumes(vmProfile, lastPlan, avoid, HostAllocator.RETURN_UPTO_ALL);
|
||||
Map<Volume, List<StoragePool>> suitableVolumeStoragePools = result.first();
|
||||
@ -182,7 +182,7 @@ public class FirstFitPlanner extends PlannerBase implements DeploymentPlanner {
|
||||
s_logger.debug("The last host of this VM is UP and has enough capacity");
|
||||
s_logger.debug("Now checking for suitable pools under zone: "+host.getDataCenterId() +", pod: "+ host.getPodId()+", cluster: "+ host.getClusterId());
|
||||
//search for storage under the zone, pod, cluster of the last host.
|
||||
DataCenterDeployment lastPlan = new DataCenterDeployment(host.getDataCenterId(), host.getPodId(), host.getClusterId(), host.getId(), plan.getPoolId());
|
||||
DataCenterDeployment lastPlan = new DataCenterDeployment(host.getDataCenterId(), host.getPodId(), host.getClusterId(), host.getId(), plan.getPoolId(), null);
|
||||
Pair<Map<Volume, List<StoragePool>>, List<Volume>> result = findSuitablePoolsForVolumes(vmProfile, lastPlan, avoid, HostAllocator.RETURN_UPTO_ALL);
|
||||
Map<Volume, List<StoragePool>> suitableVolumeStoragePools = result.first();
|
||||
List<Volume> readyAndReusedVolumes = result.second();
|
||||
@ -358,7 +358,7 @@ public class FirstFitPlanner extends PlannerBase implements DeploymentPlanner {
|
||||
|
||||
s_logger.debug("Checking resources in Cluster: "+clusterId + " under Pod: "+clusterVO.getPodId());
|
||||
//search for resources(hosts and storage) under this zone, pod, cluster.
|
||||
DataCenterDeployment potentialPlan = new DataCenterDeployment(plan.getDataCenterId(), clusterVO.getPodId(), clusterVO.getId(), null, plan.getPoolId());
|
||||
DataCenterDeployment potentialPlan = new DataCenterDeployment(plan.getDataCenterId(), clusterVO.getPodId(), clusterVO.getId(), null, plan.getPoolId(), null);
|
||||
|
||||
//find suitable hosts under this cluster, need as many hosts as we get.
|
||||
List<Host> suitableHosts = findSuitableHosts(vmProfile, potentialPlan, avoid, HostAllocator.RETURN_UPTO_ALL);
|
||||
|
||||
@ -160,8 +160,8 @@ public interface NetworkManager extends NetworkService {
|
||||
|
||||
boolean destroyNetwork(long networkId, ReservationContext context);
|
||||
|
||||
Network createNetwork(long networkOfferingId, String name, String displayText, Boolean isDefault, Long zoneId, String gateway, String cidr, String vlanId, String networkDomain, Account owner,
|
||||
boolean isSecurityGroupEnabled, Long domainId, List<String> tags, Boolean isShared) throws ConcurrentOperationException, InsufficientCapacityException;
|
||||
Network createNetwork(long networkOfferingId, String name, String displayText, Boolean isDefault, String gateway, String cidr, String vlanId, String networkDomain, Account owner, boolean isSecurityGroupEnabled,
|
||||
Long domainId, List<String> tags, Boolean isShared, PhysicalNetwork physicalNetwork) throws ConcurrentOperationException, InsufficientCapacityException;
|
||||
|
||||
/**
|
||||
* @throws InsufficientCapacityException
|
||||
|
||||
@ -1012,9 +1012,9 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
if (related == -1) {
|
||||
related = id;
|
||||
}
|
||||
|
||||
NetworkVO vo = new NetworkVO(id, network, offering.getId(), plan.getDataCenterId(), guru.getName(), owner.getDomainId(), owner.getId(), related, name, displayText, isDefault,
|
||||
predefined.isSecurityGroupEnabled(), (domainId != null), predefined.getNetworkDomain(), offering.getType(), isShared);
|
||||
|
||||
NetworkVO vo = new NetworkVO(id, network, offering.getId(), guru.getName(), owner.getDomainId(), owner.getId(), related, name, displayText, isDefault,
|
||||
predefined.isSecurityGroupEnabled(), (domainId != null), predefined.getNetworkDomain(), offering.getType(), isShared, plan.getDataCenterId(), plan.getPhysicalNetworkId());
|
||||
vo.setTags(tags);
|
||||
networks.add(_networksDao.persist(vo, vo.getGuestType() != null));
|
||||
|
||||
@ -1580,7 +1580,6 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
@ActionEvent(eventType = EventTypes.EVENT_NETWORK_CREATE, eventDescription = "creating network")
|
||||
public Network createNetwork(CreateNetworkCmd cmd) throws InsufficientCapacityException, ConcurrentOperationException {
|
||||
Long networkOfferingId = cmd.getNetworkOfferingId();
|
||||
Long zoneId = cmd.getZoneId();
|
||||
String gateway = cmd.getGateway();
|
||||
String startIP = cmd.getStartIp();
|
||||
String endIP = cmd.getEndIp();
|
||||
@ -1595,6 +1594,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
List<String> tags = cmd.getTags();
|
||||
boolean isDomainSpecific = false;
|
||||
Boolean isShared = cmd.getIsShared();
|
||||
long physicalNetworkId = cmd.getPhysicalNetworkId();
|
||||
|
||||
if (tags != null && tags.size() > 1) {
|
||||
throw new InvalidParameterException("Only one tag can be specified for a network at this time");
|
||||
@ -1642,18 +1642,21 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
endIP = startIP;
|
||||
}
|
||||
|
||||
// Check if zone exists
|
||||
if (zoneId == null) {
|
||||
throw new InvalidParameterValueException("Please specify a valid zone.");
|
||||
// Check if physical network exists
|
||||
PhysicalNetwork pNtwk = _physicalNetworkDao.findById(physicalNetworkId);
|
||||
if (pNtwk == null) {
|
||||
throw new InvalidParameterValueException("Unable to find physical network by id " + physicalNetworkId);
|
||||
}
|
||||
|
||||
DataCenterVO zone = _dcDao.findById(zoneId);
|
||||
if (zone == null) {
|
||||
throw new InvalidParameterValueException("Please specify a valid zone.");
|
||||
|
||||
//check that the physical network is enabled
|
||||
if (pNtwk.getState() != PhysicalNetwork.State.Enabled) {
|
||||
throw new InvalidParameterValueException("Physical network id " + physicalNetworkId + " is in incorrect state: " + pNtwk.getState());
|
||||
}
|
||||
|
||||
DataCenter zone = _dcDao.findById(pNtwk.getDataCenterId());
|
||||
|
||||
if (Grouping.AllocationState.Disabled == zone.getAllocationState() && !_accountMgr.isRootAdmin(caller.getType())) {
|
||||
throw new PermissionDeniedException("Cannot perform this operation, Zone is currently disabled: " + zoneId);
|
||||
throw new PermissionDeniedException("Cannot perform this operation, Zone is currently disabled: " + zone.getId());
|
||||
}
|
||||
|
||||
// Check if network offering is Available
|
||||
@ -1716,7 +1719,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
domainId = cmd.getDomainId();
|
||||
}
|
||||
|
||||
Network network = createNetwork(networkOfferingId, name, displayText, isDefault, zoneId, gateway, cidr, vlanId, networkDomain, owner, false, domainId, tags, isShared);
|
||||
Network network = createNetwork(networkOfferingId, name, displayText, isDefault, gateway, cidr, vlanId, networkDomain, owner, false, domainId, tags, isShared, pNtwk);
|
||||
|
||||
// Don't pass owner to create vlan when network offering is of type Shared - done to prevent accountVlanMap entry
|
||||
// creation when vlan is mapped to network
|
||||
@ -1726,7 +1729,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
|
||||
if (caller.getType() == Account.ACCOUNT_TYPE_ADMIN && network.getType() == Network.Type.Shared && defineNetworkConfig) {
|
||||
// Create vlan ip range
|
||||
_configMgr.createVlanAndPublicIpRange(userId, zoneId, null, startIP, endIP, gateway, netmask, false, vlanId, owner, network.getId());
|
||||
_configMgr.createVlanAndPublicIpRange(userId, pNtwk.getDataCenterId(), null, startIP, endIP, gateway, netmask, false, vlanId, owner, network.getId());
|
||||
}
|
||||
|
||||
txn.commit();
|
||||
@ -1736,11 +1739,12 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
|
||||
@Override
|
||||
@DB
|
||||
public Network createNetwork(long networkOfferingId, String name, String displayText, Boolean isDefault, Long zoneId, String gateway, String cidr, String vlanId, String networkDomain,
|
||||
Account owner, boolean isSecurityGroupEnabled, Long domainId, List<String> tags, Boolean isShared) throws ConcurrentOperationException, InsufficientCapacityException {
|
||||
public Network createNetwork(long networkOfferingId, String name, String displayText, Boolean isDefault, String gateway, String cidr, String vlanId, String networkDomain, Account owner,
|
||||
boolean isSecurityGroupEnabled, Long domainId, List<String> tags, Boolean isShared, PhysicalNetwork physicalNetwork) throws ConcurrentOperationException, InsufficientCapacityException {
|
||||
|
||||
NetworkOfferingVO networkOffering = _networkOfferingDao.findById(networkOfferingId);
|
||||
DataCenterVO zone = _dcDao.findById(zoneId);
|
||||
DataCenterVO zone = _dcDao.findById(physicalNetwork.getDataCenterId());
|
||||
long zoneId = zone.getId();
|
||||
|
||||
// allow isDefault to be set only for Shared network
|
||||
if (networkOffering.getType() == Network.Type.Isolated) {
|
||||
@ -1750,7 +1754,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
isDefault = true;
|
||||
}
|
||||
if (isShared != null && isShared) {
|
||||
throw new InvalidParameterValueException("Can specify isShared parameter for Direct networks only");
|
||||
throw new InvalidParameterValueException("Can specify isShared parameter for " + Network.Type.Shared + " networks only");
|
||||
}
|
||||
} else {
|
||||
if (isDefault == null) {
|
||||
@ -1832,7 +1836,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
Transaction txn = Transaction.currentTxn();
|
||||
txn.start();
|
||||
|
||||
DataCenterDeployment plan = new DataCenterDeployment(zoneId, null, null, null, null);
|
||||
DataCenterDeployment plan = new DataCenterDeployment(zoneId, null, null, null, null, physicalNetwork.getId());
|
||||
NetworkVO userNetwork = new NetworkVO();
|
||||
userNetwork.setNetworkDomain(networkDomain);
|
||||
userNetwork.setSecurityGroupEnabled(isSecurityGroupEnabled);
|
||||
@ -1892,6 +1896,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
List<Long> permittedAccounts = new ArrayList<Long>();
|
||||
String path = null;
|
||||
Long sharedNetworkDomainId = null;
|
||||
Long physicalNetworkId = cmd.getPhysicalNetworkId();
|
||||
|
||||
//1) default is system to false if not specified
|
||||
//2) reset parameter to false if it's specified by the regular user
|
||||
@ -1981,27 +1986,27 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
List<NetworkVO> networksToReturn = new ArrayList<NetworkVO>();
|
||||
|
||||
if (sharedNetworkDomainId != null) {
|
||||
networksToReturn.addAll(listDomainLevelNetworks(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, type, isDefault, trafficType, isShared), searchFilter, sharedNetworkDomainId));
|
||||
networksToReturn.addAll(listDomainLevelNetworks(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, type, isDefault, trafficType, isShared, physicalNetworkId), searchFilter, sharedNetworkDomainId));
|
||||
} else {
|
||||
SearchBuilder<DomainVO> 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));
|
||||
networksToReturn.addAll(listDomainSpecificNetworks(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, type, isDefault, trafficType, isShared, physicalNetworkId), searchFilter, path));
|
||||
}
|
||||
|
||||
//if user requested only domain specific networks, don't return account/zone wide networks
|
||||
if (!permittedAccounts.isEmpty() || (domainId == null && accountName == null && projectId == null)) {
|
||||
networksToReturn.addAll(listAccountSpecificAndZoneLevelNetworks(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, type, isDefault, trafficType, isShared), searchFilter, path, permittedAccounts));
|
||||
networksToReturn.addAll(listAccountSpecificAndZoneLevelNetworks(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, type, isDefault, trafficType, isShared, physicalNetworkId), searchFilter, path, permittedAccounts));
|
||||
}
|
||||
|
||||
return networksToReturn;
|
||||
|
||||
} else {
|
||||
return _networksDao.search(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, type, isDefault, trafficType, isShared), searchFilter);
|
||||
return _networksDao.search(buildNetworkSearchCriteria(sb, keyword, id, isSystem, zoneId, type, isDefault, trafficType, isShared, physicalNetworkId), searchFilter);
|
||||
}
|
||||
}
|
||||
|
||||
private SearchCriteria<NetworkVO> buildNetworkSearchCriteria(SearchBuilder<NetworkVO> sb, String keyword, Long id, Boolean isSystem, Long zoneId, String type, Boolean isDefault, String trafficType, Boolean isShared) {
|
||||
private SearchCriteria<NetworkVO> buildNetworkSearchCriteria(SearchBuilder<NetworkVO> sb, String keyword, Long id, Boolean isSystem, Long zoneId, String type, Boolean isDefault, String trafficType, Boolean isShared, Long physicalNetworkId) {
|
||||
SearchCriteria<NetworkVO> sc = sb.create();
|
||||
|
||||
if (isSystem != null) {
|
||||
@ -2037,6 +2042,10 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
if (isShared != null) {
|
||||
sc.addAnd("isShared", SearchCriteria.Op.EQ, isShared);
|
||||
}
|
||||
|
||||
if (physicalNetworkId != null) {
|
||||
sc.addAnd("physicalNetworkId", SearchCriteria.Op.EQ, physicalNetworkId);
|
||||
}
|
||||
|
||||
return sc;
|
||||
}
|
||||
@ -2772,7 +2781,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
// create new Virtual network for the user if it doesn't exist
|
||||
if (createNetwork) {
|
||||
List<? extends NetworkOffering> offerings = _configMgr.listNetworkOfferings(TrafficType.Guest, false);
|
||||
network = createNetwork(offerings.get(0).getId(), owner.getAccountName() + "-network", owner.getAccountName() + "-network", null, zoneId, null, null, null, null, owner, false, null, null, false);
|
||||
network = createNetwork(offerings.get(0).getId(), owner.getAccountName() + "-network", owner.getAccountName() + "-network", null, null, null, null, null, owner, false, null, null, false, null);
|
||||
|
||||
if (network == null) {
|
||||
s_logger.warn("Failed to create default Virtual network for the account " + accountId + "in zone " + zoneId);
|
||||
@ -3636,7 +3645,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
|
||||
if (replaceVnet) {
|
||||
s_logger.debug("Deleting existing vnet range for the physicalNetwork id= "+id +" and zone id=" + network.getDataCenterId() + " as a part of updatePhysicalNetwork call");
|
||||
_dcDao.deleteVnet(network.getDataCenterId(), network.getId());
|
||||
_dcDao.deleteVnet(network.getId());
|
||||
}
|
||||
|
||||
for (Pair<Integer, Integer> vnetToAdd : vnetsToAdd) {
|
||||
@ -3648,7 +3657,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
}
|
||||
|
||||
private boolean physicalNetworkHasAllocatedVnets(long zoneId, long physicalNetworkId) {
|
||||
return !_dcDao.listAllocatedVnets(zoneId, physicalNetworkId).isEmpty();
|
||||
return !_dcDao.listAllocatedVnets(physicalNetworkId).isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -3669,7 +3678,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
return false;
|
||||
}
|
||||
|
||||
List<DataCenterVnetVO> allocatedVnets = _dcDao.listAllocatedVnets(network.getDataCenterId(), physicalNetworkId);
|
||||
List<DataCenterVnetVO> allocatedVnets = _dcDao.listAllocatedVnets(physicalNetworkId);
|
||||
|
||||
if(allocatedVnets != null && !allocatedVnets.isEmpty()){
|
||||
s_logger.debug("Unable to remove the physical network id=" + physicalNetworkId + " as it has active vnets associated.");
|
||||
@ -3909,4 +3918,19 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
return getPhysicalNetworkServiceProvider(providerId);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public long translateZoneToPhysicalNetwork(long zoneId) {
|
||||
List<PhysicalNetworkVO> pNtwks = _physicalNetworkDao.listByZone(zoneId);
|
||||
if (pNtwks.isEmpty()) {
|
||||
throw new InvalidParameterValueException("Unable to find physical network in zone id=" + zoneId);
|
||||
}
|
||||
|
||||
if (pNtwks.size() > 1) {
|
||||
throw new InvalidParameterValueException("More than one physical networks exist in zone id=" + zoneId);
|
||||
}
|
||||
|
||||
return pNtwks.get(0).getId();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -66,6 +66,7 @@ public class NetworkVO implements Network {
|
||||
@Enumerated(value=EnumType.STRING)
|
||||
TrafficType trafficType;
|
||||
|
||||
@Deprecated
|
||||
@Column(name="guest_type")
|
||||
GuestIpType guestType;
|
||||
|
||||
@ -88,7 +89,7 @@ public class NetworkVO implements Network {
|
||||
long networkOfferingId;
|
||||
|
||||
@Column(name="physical_network_id")
|
||||
long physicalNetworkId;
|
||||
Long physicalNetworkId;
|
||||
|
||||
@Column(name="data_center_id")
|
||||
long dataCenterId;
|
||||
@ -167,15 +168,17 @@ public class NetworkVO implements Network {
|
||||
* @param mode
|
||||
* @param broadcastDomainType
|
||||
* @param networkOfferingId
|
||||
* @param dataCenterId
|
||||
* @param state TODO
|
||||
* @param dataCenterId
|
||||
* @param physicalNetworkId TODO
|
||||
*/
|
||||
public NetworkVO(TrafficType trafficType, GuestIpType guestType, Mode mode, BroadcastDomainType broadcastDomainType, long networkOfferingId, long dataCenterId, State state) {
|
||||
public NetworkVO(TrafficType trafficType, GuestIpType guestType, Mode mode, BroadcastDomainType broadcastDomainType, long networkOfferingId, State state, long dataCenterId, Long physicalNetworkId) {
|
||||
this.trafficType = trafficType;
|
||||
this.mode = mode;
|
||||
this.broadcastDomainType = broadcastDomainType;
|
||||
this.networkOfferingId = networkOfferingId;
|
||||
this.dataCenterId = dataCenterId;
|
||||
this.physicalNetworkId = physicalNetworkId;
|
||||
if (state == null) {
|
||||
state = State.Allocated;
|
||||
} else {
|
||||
@ -184,23 +187,9 @@ public class NetworkVO implements Network {
|
||||
this.id = -1;
|
||||
this.guestType = guestType;
|
||||
}
|
||||
/**
|
||||
* Constructor to be used for the adapters because it only initializes what's needed.
|
||||
* @param trafficType
|
||||
* @param mode
|
||||
* @param broadcastDomainType
|
||||
* @param networkOfferingId
|
||||
* @param dataCenterId
|
||||
* @param state TODO
|
||||
* @param physicalNetworkId
|
||||
*/
|
||||
public NetworkVO(TrafficType trafficType, GuestIpType guestType, Mode mode, BroadcastDomainType broadcastDomainType, long networkOfferingId, long dataCenterId, State state, long physicalNetworkId) {
|
||||
this(trafficType, guestType, mode, broadcastDomainType, networkOfferingId, dataCenterId, state);
|
||||
this.physicalNetworkId = physicalNetworkId;
|
||||
}
|
||||
|
||||
public NetworkVO(long id, Network that, long offeringId, long dataCenterId, String guruName, long domainId, long accountId, long related, String name, String displayText, boolean isDefault, boolean isSecurityGroupEnabled, boolean isDomainSpecific, String networkDomain, Type type, boolean isShared) {
|
||||
this(id, that.getTrafficType(), that.getGuestType(), that.getMode(), that.getBroadcastDomainType(), offeringId, dataCenterId, domainId, accountId, related, name, displayText,isDefault, isDomainSpecific, networkDomain, type, isShared);
|
||||
public NetworkVO(long id, Network that, long offeringId, String guruName, long domainId, long accountId, long related, String name, String displayText, boolean isDefault, boolean isSecurityGroupEnabled, boolean isDomainSpecific, String networkDomain, Type type, boolean isShared, long dcId, Long physicalNetworkId) {
|
||||
this(id, that.getTrafficType(), that.getGuestType(), that.getMode(), that.getBroadcastDomainType(), offeringId, domainId, accountId, related, name, displayText,isDefault, isDomainSpecific, networkDomain, type, isShared, dcId, physicalNetworkId);
|
||||
this.gateway = that.getGateway();
|
||||
this.cidr = that.getCidr();
|
||||
this.broadcastUri = that.getBroadcastUri();
|
||||
@ -213,11 +202,6 @@ public class NetworkVO implements Network {
|
||||
}
|
||||
}
|
||||
|
||||
public NetworkVO(long id, Network that, long offeringId, long dataCenterId, String guruName, long domainId, long accountId, long related, String name, String displayText, boolean isDefault, boolean isSecurityGroupEnabled, boolean isDomainSpecific, String networkDomain, Type type, boolean isShared, long physicalNetworkId) {
|
||||
this(id, that, offeringId, dataCenterId, guruName, domainId, accountId, related, name, displayText, isDefault, isSecurityGroupEnabled, isDomainSpecific, networkDomain, type, isShared);
|
||||
this.physicalNetworkId = physicalNetworkId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor for the actual DAO object.
|
||||
* @param trafficType
|
||||
@ -236,8 +220,8 @@ public class NetworkVO implements Network {
|
||||
* @param isShared TODO
|
||||
* @param isShared
|
||||
*/
|
||||
public NetworkVO(long id, TrafficType trafficType, GuestIpType guestType, Mode mode, BroadcastDomainType broadcastDomainType, long networkOfferingId, long dataCenterId, long domainId, long accountId, long related, String name, String displayText, boolean isDefault, boolean isDomainSpecific, String networkDomain, Type type, boolean isShared) {
|
||||
this(trafficType, guestType, mode, broadcastDomainType, networkOfferingId, dataCenterId, State.Allocated);
|
||||
public NetworkVO(long id, TrafficType trafficType, GuestIpType guestType, Mode mode, BroadcastDomainType broadcastDomainType, long networkOfferingId, long domainId, long accountId, long related, String name, String displayText, boolean isDefault, boolean isDomainSpecific, String networkDomain, Type type, boolean isShared, long dcId, Long physicalNetworkId) {
|
||||
this(trafficType, guestType, mode, broadcastDomainType, networkOfferingId, State.Allocated, dcId, physicalNetworkId);
|
||||
this.domainId = domainId;
|
||||
this.accountId = accountId;
|
||||
this.related = related;
|
||||
@ -404,7 +388,7 @@ public class NetworkVO implements Network {
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getPhysicalNetworkId() {
|
||||
public Long getPhysicalNetworkId() {
|
||||
return physicalNetworkId;
|
||||
}
|
||||
|
||||
|
||||
@ -77,7 +77,7 @@ public class ControlNetworkGuru extends PodBasedNetworkGuru implements NetworkGu
|
||||
return null;
|
||||
}
|
||||
|
||||
NetworkVO config = new NetworkVO(offering.getTrafficType(), offering.getGuestType(), Mode.Static, BroadcastDomainType.LinkLocal, offering.getId(), plan.getDataCenterId(), Network.State.Setup);
|
||||
NetworkVO config = new NetworkVO(offering.getTrafficType(), offering.getGuestType(), Mode.Static, BroadcastDomainType.LinkLocal, offering.getId(), Network.State.Setup, plan.getDataCenterId(), plan.getPhysicalNetworkId());
|
||||
config.setCidr(_cidr);
|
||||
config.setGateway(_gateway);
|
||||
|
||||
|
||||
@ -102,7 +102,7 @@ public class DirectNetworkGuru extends AdapterBase implements NetworkGuru {
|
||||
state = State.Setup;
|
||||
}
|
||||
|
||||
NetworkVO config = new NetworkVO(offering.getTrafficType(), offering.getGuestType(), Mode.Dhcp, BroadcastDomainType.Vlan, offering.getId(), plan.getDataCenterId(), state);
|
||||
NetworkVO config = new NetworkVO(offering.getTrafficType(), offering.getGuestType(), Mode.Dhcp, BroadcastDomainType.Vlan, offering.getId(), state, plan.getDataCenterId(), plan.getPhysicalNetworkId());
|
||||
|
||||
if (userSpecified != null) {
|
||||
if ((userSpecified.getCidr() == null && userSpecified.getGateway() != null) || (userSpecified.getCidr() != null && userSpecified.getGateway() == null)) {
|
||||
|
||||
@ -109,7 +109,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru {
|
||||
|
||||
DataCenter zone = dest.getDataCenter();
|
||||
NetworkVO implemented = new NetworkVO(config.getTrafficType(), config.getGuestType(), config.getMode(), config.getBroadcastDomainType(), config.getNetworkOfferingId(),
|
||||
config.getDataCenterId(), State.Allocated);
|
||||
State.Allocated, config.getDataCenterId(), config.getPhysicalNetworkId());
|
||||
|
||||
// Get a vlan tag
|
||||
int vlanTag;
|
||||
|
||||
@ -95,7 +95,7 @@ public class GuestNetworkGuru extends AdapterBase implements NetworkGuru {
|
||||
return null;
|
||||
}
|
||||
|
||||
NetworkVO network = new NetworkVO(offering.getTrafficType(), offering.getGuestType(), Mode.Dhcp, BroadcastDomainType.Vlan, offering.getId(), plan.getDataCenterId(), State.Allocated);
|
||||
NetworkVO network = new NetworkVO(offering.getTrafficType(), offering.getGuestType(), Mode.Dhcp, BroadcastDomainType.Vlan, offering.getId(), State.Allocated, plan.getDataCenterId(), plan.getPhysicalNetworkId());
|
||||
if (userSpecified != null) {
|
||||
if ((userSpecified.getCidr() == null && userSpecified.getGateway() != null) || (userSpecified.getCidr() != null && userSpecified.getGateway() == null)) {
|
||||
throw new InvalidParameterValueException("cidr and gateway must be specified together.");
|
||||
@ -141,7 +141,7 @@ public class GuestNetworkGuru extends AdapterBase implements NetworkGuru {
|
||||
long dcId = dest.getDataCenter().getId();
|
||||
|
||||
NetworkVO implemented = new NetworkVO(network.getTrafficType(), network.getGuestType(), network.getMode(), network.getBroadcastDomainType(), network.getNetworkOfferingId(),
|
||||
network.getDataCenterId(), State.Allocated);
|
||||
State.Allocated, network.getDataCenterId(), network.getPhysicalNetworkId());
|
||||
|
||||
if (network.getBroadcastUri() == null) {
|
||||
String vnet = _dcDao.allocateVnet(dcId, network.getPhysicalNetworkId(), network.getAccountId(), context.getReservationId());
|
||||
|
||||
@ -69,7 +69,7 @@ public class PodBasedNetworkGuru extends AdapterBase implements NetworkGuru {
|
||||
return null;
|
||||
}
|
||||
|
||||
NetworkVO config = new NetworkVO(type, null, Mode.Static, BroadcastDomainType.Native, offering.getId(), plan.getDataCenterId(), Network.State.Setup);
|
||||
NetworkVO config = new NetworkVO(type, null, Mode.Static, BroadcastDomainType.Native, offering.getId(), Network.State.Setup, plan.getDataCenterId(), plan.getPhysicalNetworkId());
|
||||
return config;
|
||||
}
|
||||
|
||||
|
||||
@ -94,7 +94,7 @@ public class PublicNetworkGuru extends AdapterBase implements NetworkGuru {
|
||||
}
|
||||
|
||||
if (offering.getTrafficType() == TrafficType.Public) {
|
||||
NetworkVO ntwk = new NetworkVO(offering.getTrafficType(), null, Mode.Static, BroadcastDomainType.Vlan, offering.getId(), plan.getDataCenterId(), State.Setup);
|
||||
NetworkVO ntwk = new NetworkVO(offering.getTrafficType(), null, Mode.Static, BroadcastDomainType.Vlan, offering.getId(), State.Setup, plan.getDataCenterId(), plan.getPhysicalNetworkId());
|
||||
return ntwk;
|
||||
} else {
|
||||
return null;
|
||||
|
||||
@ -476,7 +476,7 @@ public class ElasticLoadBalancerManagerImpl implements
|
||||
DataCenterDeployment plan = null;
|
||||
DomainRouterVO elbVm = null;
|
||||
|
||||
plan = new DataCenterDeployment(dcId, dest.getPod().getId(), null, null, null);
|
||||
plan = new DataCenterDeployment(dcId, dest.getPod().getId(), null, null, null, null);
|
||||
|
||||
if (elbVm == null) {
|
||||
long id = _routerDao.getNextInSequence(Long.class, "id");
|
||||
|
||||
@ -1123,7 +1123,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
|
||||
return router;
|
||||
}
|
||||
|
||||
DataCenterDeployment plan = new DataCenterDeployment(0, null, null, null, null);
|
||||
DataCenterDeployment plan = new DataCenterDeployment(0, null, null, null, null, null);
|
||||
DomainRouterVO result = null;
|
||||
assert router.getIsRedundantRouter();
|
||||
List<DomainRouterVO> routerList = _routerDao.findBy(router.getAccountId(), router.getDataCenterIdToDeployIn());
|
||||
@ -1236,7 +1236,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
|
||||
// In Basic zone and Guest network we have to start domR per pod, not per network
|
||||
if (isPodBased) {
|
||||
routers = _routerDao.listByNetworkAndPodAndRole(guestNetwork.getId(), podId, Role.DHCP_USERDATA);
|
||||
plan = new DataCenterDeployment(dcId, podId, null, null, null);
|
||||
plan = new DataCenterDeployment(dcId, podId, null, null, null, null);
|
||||
} else {
|
||||
routers = _routerDao.listByNetworkAndRole(guestNetwork.getId(), Role.DHCP_USERDATA);
|
||||
plan = new DataCenterDeployment(dcId);
|
||||
|
||||
@ -82,6 +82,7 @@ public class NetworkOfferingVO implements NetworkOffering {
|
||||
@Enumerated(value=EnumType.STRING)
|
||||
Availability availability;
|
||||
|
||||
@Deprecated
|
||||
@Column(name="guest_type")
|
||||
GuestIpType guestType;
|
||||
|
||||
|
||||
@ -954,7 +954,7 @@ public class ConfigurationServerImpl implements ConfigurationServer {
|
||||
}
|
||||
|
||||
if (broadcastDomainType != null) {
|
||||
NetworkVO network = new NetworkVO(id, trafficType, null, mode, broadcastDomainType, networkOfferingId, zoneId, domainId, accountId, related, null, null, isNetworkDefault, false, networkDomain, Network.Type.Shared, true);
|
||||
NetworkVO network = new NetworkVO(id, trafficType, null, mode, broadcastDomainType, networkOfferingId, domainId, accountId, related, null, null, isNetworkDefault, false, networkDomain, Network.Type.Shared, true, zoneId, null);
|
||||
network.setGuruName(guruNames.get(network.getTrafficType()));
|
||||
network.setDns1(zone.getDns1());
|
||||
network.setDns2(zone.getDns2());
|
||||
|
||||
@ -1022,7 +1022,7 @@ public class ManagementServerImpl implements ManagementServer {
|
||||
|
||||
VirtualMachineProfile<VMInstanceVO> vmProfile = new VirtualMachineProfileImpl<VMInstanceVO>(vm);
|
||||
|
||||
DataCenterDeployment plan = new DataCenterDeployment(srcHost.getDataCenterId(), srcHost.getPodId(), srcHost.getClusterId(), null, null);
|
||||
DataCenterDeployment plan = new DataCenterDeployment(srcHost.getDataCenterId(), srcHost.getPodId(), srcHost.getClusterId(), null, null, null);
|
||||
ExcludeList excludes = new ExcludeList();
|
||||
excludes.addHost(srcHostId);
|
||||
while (enHost.hasMoreElements()) {
|
||||
|
||||
@ -278,7 +278,7 @@ public abstract class AbstractStoragePoolAllocator extends AdapterBase implement
|
||||
avoid.addPool(pool.getId());
|
||||
}
|
||||
|
||||
DataCenterDeployment plan = new DataCenterDeployment(dcId, podId, clusterId, null, null);
|
||||
DataCenterDeployment plan = new DataCenterDeployment(dcId, podId, clusterId, null, null, null);
|
||||
return allocateToPool(dskCh, VMtemplate, plan, avoid, returnUpTo);
|
||||
}
|
||||
|
||||
|
||||
@ -2177,8 +2177,8 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
|
||||
|
||||
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", null, zone.getId(),
|
||||
null, null, null, null, owner, false, null, null, false);
|
||||
Network newNetwork = _networkMgr.createNetwork(defaultVirtualOffering.get(0).getId(), owner.getAccountName() + "-network", owner.getAccountName() + "-network", null, null,
|
||||
null, null, null, owner, false, null, null, false, 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");
|
||||
@ -2190,8 +2190,8 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
|
||||
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", null, zone.getId(),
|
||||
null, null, null, null, owner, false, null, null, false);
|
||||
Network newNetwork = _networkMgr.createNetwork(defaultVirtualOffering.get(0).getId(), owner.getAccountName() + "-network", owner.getAccountName() + "-network", null, null,
|
||||
null, null, null, owner, false, null, null, false, null);
|
||||
defaultNetwork = _networkDao.findById(newNetwork.getId());
|
||||
} else {
|
||||
throw new InvalidParameterValueException("Unable to find default networks for account " + owner);
|
||||
@ -2574,7 +2574,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
|
||||
DataCenterDeployment plan = null;
|
||||
if (destinationHost != null) {
|
||||
s_logger.debug("Destination Host to deploy the VM is specified, specifying a deployment plan to deploy the VM");
|
||||
plan = new DataCenterDeployment(vm.getDataCenterIdToDeployIn(), destinationHost.getPodId(), destinationHost.getClusterId(), destinationHost.getId(), null);
|
||||
plan = new DataCenterDeployment(vm.getDataCenterIdToDeployIn(), destinationHost.getPodId(), destinationHost.getClusterId(), destinationHost.getId(), null, null);
|
||||
}
|
||||
|
||||
vm = _itMgr.start(vm, params, caller, owner, plan);
|
||||
@ -3335,8 +3335,8 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
|
||||
long networkOffering = oldNet.getNetworkOfferingId();
|
||||
List<NetworkVO> virtualNetworks = _networkMgr.listNetworksForAccount(newAccount.getId(), zone.getId(), GuestIpType.Virtual, true);
|
||||
if (virtualNetworks.isEmpty()) {
|
||||
Network newNetwork = _networkMgr.createNetwork(networkOffering, newAccount.getAccountName() + "-network", newAccount.getAccountName() + "-network", null, vm.getDataCenterIdToDeployIn(),
|
||||
null, null, null, null, newAccount, false, null, null, false);
|
||||
Network newNetwork = _networkMgr.createNetwork(networkOffering, newAccount.getAccountName() + "-network", newAccount.getAccountName() + "-network", null, null,
|
||||
null, null, null, newAccount, false, null, null, false, 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");
|
||||
|
||||
@ -607,7 +607,7 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene
|
||||
if (s_logger.isDebugEnabled()) {
|
||||
s_logger.debug("Trying to deploy VM, vm has dcId: "+vm.getDataCenterIdToDeployIn()+" and podId: "+vm.getPodIdToDeployIn() );
|
||||
}
|
||||
DataCenterDeployment plan = new DataCenterDeployment(vm.getDataCenterIdToDeployIn(), vm.getPodIdToDeployIn(), null, null, null);
|
||||
DataCenterDeployment plan = new DataCenterDeployment(vm.getDataCenterIdToDeployIn(), vm.getPodIdToDeployIn(), null, null, null, null);
|
||||
if(planToDeploy != null && planToDeploy.getDataCenterId() != 0){
|
||||
if (s_logger.isDebugEnabled()) {
|
||||
s_logger.debug("advanceStart: DeploymentPlan is provided, using dcId:"+planToDeploy.getDataCenterId() + ", podId: "+ planToDeploy.getPodId()
|
||||
@ -670,9 +670,9 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene
|
||||
throw new ResourceUnavailableException("Root volume is ready in different cluster, Deployment plan provided cannot be satisfied, unable to create a deployment for " + vm, Cluster.class, clusterIdSpecified);
|
||||
}
|
||||
}
|
||||
plan = new DataCenterDeployment(planToDeploy.getDataCenterId(), planToDeploy.getPodId(), planToDeploy.getClusterId(), planToDeploy.getHostId(), vol.getPoolId());
|
||||
plan = new DataCenterDeployment(planToDeploy.getDataCenterId(), planToDeploy.getPodId(), planToDeploy.getClusterId(), planToDeploy.getHostId(), vol.getPoolId(), null);
|
||||
}else{
|
||||
plan = new DataCenterDeployment(rootVolDcId, rootVolPodId, rootVolClusterId, null, vol.getPoolId());
|
||||
plan = new DataCenterDeployment(rootVolDcId, rootVolPodId, rootVolClusterId, null, vol.getPoolId(), null);
|
||||
if (s_logger.isDebugEnabled()) {
|
||||
s_logger.debug(vol + " is READY, changing deployment plan to use this pool's dcId: " + rootVolDcId + " , podId: " + rootVolPodId + " , and clusterId: " + rootVolClusterId);
|
||||
}
|
||||
@ -1378,7 +1378,7 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene
|
||||
|
||||
Host host = _hostDao.findById(hostId);
|
||||
|
||||
DataCenterDeployment plan = new DataCenterDeployment(host.getDataCenterId(), host.getPodId(), host.getClusterId(), null, null);
|
||||
DataCenterDeployment plan = new DataCenterDeployment(host.getDataCenterId(), host.getPodId(), host.getClusterId(), null, null, null);
|
||||
ExcludeList excludes = new ExcludeList();
|
||||
excludes.addHost(hostId);
|
||||
|
||||
|
||||
@ -77,7 +77,7 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use
|
||||
private static final int VM_DETAILS_BATCH_SIZE=100;
|
||||
private static final String VM_DETAILS = "select vm_instance.id, " +
|
||||
"account.id, account.account_name, account.type, domain.name, instance_group.id, instance_group.name," +
|
||||
"data_center.id, data_center.name, data_center.is_security_group_enabled, host.id, host.name, " +
|
||||
"data_center.id, data_center.name, host.id, host.name, " +
|
||||
"vm_template.id, vm_template.name, vm_template.display_text, iso.id, iso.name, " +
|
||||
"vm_template.enable_password, service_offering.id, disk_offering.name, storage_pool.id, storage_pool.pool_type, " +
|
||||
"service_offering.cpu, service_offering.speed, service_offering.ram_size, volumes.id, volumes.device_id, volumes.volume_type, security_group.id, security_group.name, " +
|
||||
@ -482,9 +482,8 @@ public class UserVmDaoImpl extends GenericDaoBase<UserVmVO, Long> implements Use
|
||||
}
|
||||
|
||||
|
||||
boolean is_data_center_security_group_enabled = rs.getBoolean("data_center.is_security_group_enabled");
|
||||
//security_group.id, security_group.name, security_group.description, , data_center.is_security_group_enabled
|
||||
if (is_data_center_security_group_enabled){
|
||||
Long securityGroupId = rs.getLong("security_group.id");
|
||||
if (securityGroupId != null && securityGroupId.longValue() != 0){
|
||||
SecurityGroupData resp = userVmData.newSecurityGroupData();
|
||||
resp.setId(rs.getLong("security_group.id"));
|
||||
resp.setName(rs.getString("security_group.name"));
|
||||
|
||||
@ -340,8 +340,8 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
|
||||
}
|
||||
|
||||
@Override
|
||||
public Network createNetwork(long networkOfferingId, String name, String displayText, Boolean isDefault, Long zoneId, String gateway, String cidr, String vlanId, String networkDomain,
|
||||
Account owner, boolean isSecurityGroupEnabled, Long domainId, List<String> tags, Boolean isShared) throws ConcurrentOperationException, InsufficientCapacityException {
|
||||
public Network createNetwork(long networkOfferingId, String name, String displayText, Boolean isDefault, String gateway, String cidr, String vlanId, String networkDomain, Account owner,
|
||||
boolean isSecurityGroupEnabled, Long domainId, List<String> tags, Boolean isShared, PhysicalNetwork physicalNetwork) throws ConcurrentOperationException, InsufficientCapacityException {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user