Create network using physical network id

This commit is contained in:
alena 2011-10-20 18:24:05 -07:00
parent 0d7ddb5d58
commit 219978a9be
35 changed files with 182 additions and 163 deletions

View File

@ -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///////////////////
/////////////////////////////////////////////////////

View File

@ -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///////////////////
/////////////////////////////////////////////////////

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -63,4 +63,6 @@ public interface DeploymentPlan {
* the ExcludeList to avoid for deployment
*/
public ExcludeList getAvoids();
Long getPhysicalNetworkId();
}

View File

@ -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();
}

View File

@ -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;
}
}

View File

@ -117,4 +117,6 @@ public interface NetworkService {
PhysicalNetworkServiceProvider getPhysicalNetworkServiceProvider(Long providerId);
PhysicalNetworkServiceProvider getCreatedPhysicalNetworkServiceProvider(Long providerId);
long translateZoneToPhysicalNetwork(long zoneId);
}

View File

@ -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();

View File

@ -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;

View File

@ -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));

View File

@ -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);

View File

@ -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);
}

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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

View File

@ -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();
}
}

View File

@ -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;
}

View File

@ -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);

View File

@ -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)) {

View File

@ -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;

View File

@ -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());

View File

@ -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;
}

View File

@ -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;

View File

@ -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");

View File

@ -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);

View File

@ -82,6 +82,7 @@ public class NetworkOfferingVO implements NetworkOffering {
@Enumerated(value=EnumType.STRING)
Availability availability;
@Deprecated
@Column(name="guest_type")
GuestIpType guestType;

View File

@ -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());

View File

@ -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()) {

View File

@ -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);
}

View File

@ -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");

View File

@ -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);

View File

@ -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"));

View File

@ -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;
}