diff --git a/api/src/com/cloud/network/NetworkService.java b/api/src/com/cloud/network/NetworkService.java index 59ccdbf754d..87fecb0f873 100755 --- a/api/src/com/cloud/network/NetworkService.java +++ b/api/src/com/cloud/network/NetworkService.java @@ -87,7 +87,7 @@ public interface NetworkService { Long startIndex, Long pageSize, String name); PhysicalNetwork updatePhysicalNetwork(Long id, String networkSpeed, List tags, - String newVnetRangeString, String state, String removeVlan); + String newVnetRangeString, String state); boolean deletePhysicalNetwork(Long id); diff --git a/api/src/org/apache/cloudstack/api/command/admin/network/UpdatePhysicalNetworkCmd.java b/api/src/org/apache/cloudstack/api/command/admin/network/UpdatePhysicalNetworkCmd.java index 333564e12b3..3e3f591be78 100644 --- a/api/src/org/apache/cloudstack/api/command/admin/network/UpdatePhysicalNetworkCmd.java +++ b/api/src/org/apache/cloudstack/api/command/admin/network/UpdatePhysicalNetworkCmd.java @@ -54,8 +54,6 @@ public class UpdatePhysicalNetworkCmd extends BaseAsyncCmd { @Parameter(name=ApiConstants.VLAN, type=CommandType.STRING, description="the VLAN for the physical network") private String vlan; - @Parameter(name=ApiConstants.REMOVE_VLAN, type = CommandType.STRING, description ="The vlan range we want to remove") - private String removevlan; ///////////////////////////////////////////////////// /////////////////// Accessors /////////////////////// @@ -81,10 +79,6 @@ public class UpdatePhysicalNetworkCmd extends BaseAsyncCmd { return vlan; } - public String getRemoveVlan(){ - return removevlan; - } - ///////////////////////////////////////////////////// /////////////// API Implementation/////////////////// ///////////////////////////////////////////////////// @@ -101,7 +95,7 @@ public class UpdatePhysicalNetworkCmd extends BaseAsyncCmd { @Override public void execute(){ - PhysicalNetwork result = _networkService.updatePhysicalNetwork(getId(),getNetworkSpeed(), getTags(), getVlan(), getState(), getRemoveVlan()); + PhysicalNetwork result = _networkService.updatePhysicalNetwork(getId(),getNetworkSpeed(), getTags(), getVlan(), getState()); PhysicalNetworkResponse response = _responseGenerator.createPhysicalNetworkResponse(result); response.setResponseName(getCommandName()); this.setResponseObject(response); diff --git a/engine/schema/src/com/cloud/dc/dao/DataCenterVnetDao.java b/engine/schema/src/com/cloud/dc/dao/DataCenterVnetDao.java index e2e6b795d35..de68e1e30b1 100644 --- a/engine/schema/src/com/cloud/dc/dao/DataCenterVnetDao.java +++ b/engine/schema/src/com/cloud/dc/dao/DataCenterVnetDao.java @@ -33,7 +33,7 @@ public interface DataCenterVnetDao extends GenericDao { public void delete(long physicalNetworkId); - public void deleteRange(Transaction txn, long dcId, long physicalNetworkId, int start, int end); + public void deleteVnets(Transaction txn, long dcId, long physicalNetworkId, List vnets); public void lockRange(long dcId, long physicalNetworkId, Integer start, Integer end); diff --git a/engine/schema/src/com/cloud/dc/dao/DataCenterVnetDaoImpl.java b/engine/schema/src/com/cloud/dc/dao/DataCenterVnetDaoImpl.java index ced2982cf9d..3ac2729853b 100755 --- a/engine/schema/src/com/cloud/dc/dao/DataCenterVnetDaoImpl.java +++ b/engine/schema/src/com/cloud/dc/dao/DataCenterVnetDaoImpl.java @@ -110,9 +110,10 @@ public class DataCenterVnetDaoImpl extends GenericDaoBase argument each string is a vlan. not a vlanRange. public void add(long dcId, long physicalNetworkId, List vnets) { String insertVnet = "INSERT INTO `cloud`.`op_dc_vnet_alloc` (vnet, data_center_id, physical_network_id) VALUES ( ?, ?, ?)"; @@ -133,15 +134,18 @@ public class DataCenterVnetDaoImpl extends GenericDaoBase argument each string is a vlan. not a vlanRange. + public void deleteVnets(Transaction txn, long dcId, long physicalNetworkId, List vnets) { + String deleteVnet = "DELETE FROM `cloud`.`op_dc_vnet_alloc` WHERE data_center_id=? AND physical_network_id=? AND taken IS NULL AND vnet=?"; try { PreparedStatement stmt = txn.prepareAutoCloseStatement(deleteVnet); - stmt.setLong(1,dcId); - stmt.setLong(2,physicalNetworkId); - stmt.setString(3,((Integer)start).toString()); - stmt.setString(4,((Integer)end).toString()); - stmt.execute(); + for (int i =0; i <= vnets.size()-1; i++) { + stmt.setLong(1,dcId); + stmt.setLong(2,physicalNetworkId); + stmt.setString(3, vnets.get(i)); + stmt.addBatch(); + } + stmt.executeBatch(); } catch (SQLException e) { throw new CloudRuntimeException("Exception caught adding vnet ", e); } diff --git a/engine/schema/src/com/cloud/network/dao/PhysicalNetworkVO.java b/engine/schema/src/com/cloud/network/dao/PhysicalNetworkVO.java index f68eee1de5c..684a6008e9d 100644 --- a/engine/schema/src/com/cloud/network/dao/PhysicalNetworkVO.java +++ b/engine/schema/src/com/cloud/network/dao/PhysicalNetworkVO.java @@ -206,7 +206,7 @@ public class PhysicalNetworkVO implements PhysicalNetwork { public List> getVnet() { List > vnetList = new ArrayList>(); if (vnet != null) { - String [] Temp = vnet.split(";"); + String [] Temp = vnet.split(","); String [] vnetSplit = null; for (String vnetRange : Temp){ vnetSplit = vnetRange.split("-"); diff --git a/server/src/com/cloud/network/NetworkServiceImpl.java b/server/src/com/cloud/network/NetworkServiceImpl.java index cdc1cdb4f3c..ff753f4d968 100755 --- a/server/src/com/cloud/network/NetworkServiceImpl.java +++ b/server/src/com/cloud/network/NetworkServiceImpl.java @@ -2410,34 +2410,12 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService { throw new InvalidParameterException("Only one isolationMethod can be specified for a physical network at this time"); } - int vnetStart = 0; - int vnetEnd = 0; - long minVnet = MIN_VLAN_ID; - long maxVnet = MAX_VLAN_ID; - // Wondering why GRE doesn't check its vNet range here. While they check it in processVlanRange called by updatePhysicalNetwork. - if (vnetRange != null) { // Verify zone type if (zoneType == NetworkType.Basic || (zoneType == NetworkType.Advanced && zone.isSecurityGroupEnabled())) { throw new InvalidParameterValueException("Can't add vnet range to the physical network in the zone that supports " + zoneType + " network, Security Group enabled: " + zone.isSecurityGroupEnabled()); } - - String[] tokens = vnetRange.split("-"); - try { - vnetStart = Integer.parseInt(tokens[0]); - if (tokens.length == 1) { - vnetEnd = vnetStart; - } else { - vnetEnd = Integer.parseInt(tokens[1]); - } - } catch (NumberFormatException e) { - throw new InvalidParameterValueException("Please specify valid integers for the vlan range."); - } - if ((vnetStart > vnetEnd) || (vnetStart < minVnet) || (vnetEnd > maxVnet)) { - s_logger.warn("Invalid vnet range: start range:" + vnetStart + " end range:" + vnetEnd); - throw new InvalidParameterValueException("Vnet range should be between " + minVnet + "-" + maxVnet + " and start range should be lesser than or equal to end range"); - } } BroadcastDomainRange broadcastDomainRange = null; @@ -2476,14 +2454,8 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService { pNetwork = _physicalNetworkDao.persist(pNetwork); // Add vnet entries for the new zone if zone type is Advanced - - List vnets = new ArrayList(); - for (Integer i= vnetStart; i<= vnetEnd; i++ ) { - vnets.add(i.toString()); - } - if (vnetRange != null) { - _dcDao.addVnet(zone.getId(), pNetwork.getId(), vnets); + addOrRemoveVnets(vnetRange.split(","), pNetwork); } // add VirtualRouter as the default network service provider @@ -2533,7 +2505,7 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService { @Override @DB @ActionEvent(eventType = EventTypes.EVENT_PHYSICAL_NETWORK_UPDATE, eventDescription = "updating physical network", async = true) - public PhysicalNetwork updatePhysicalNetwork(Long id, String networkSpeed, List tags, String newVnetRange, String state, String removeVlan) { + public PhysicalNetwork updatePhysicalNetwork(Long id, String networkSpeed, List tags, String newVnetRange, String state) { // verify input parameters PhysicalNetworkVO network = _physicalNetworkDao.findById(id); @@ -2558,11 +2530,6 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService { } } - if (removeVlan != null){ - List tokens = processVlanRange(network,removeVlan); - removeVlanRange(network, tokens.get(0), tokens.get(1)); - } - if (tags != null && tags.size() > 1) { throw new InvalidParameterException("Unable to support more than one tag on network yet"); } @@ -2588,173 +2555,204 @@ public class NetworkServiceImpl extends ManagerBase implements NetworkService { network.setSpeed(networkSpeed); } - // Vnet range can be extended only - boolean AddVnet = true; - List> vnetsToAdd = new ArrayList>(); - - List tokens = null; - List add_Vnet = null; if (newVnetRange != null) { - tokens = processVlanRange(network, newVnetRange); - HashSet vnetsInDb = new HashSet(); - vnetsInDb.addAll(_datacneter_vnet.listVnetsByPhysicalNetworkAndDataCenter(network.getDataCenterId(), id)); - HashSet tempVnets = new HashSet(); - tempVnets.addAll(vnetsInDb); - for (Integer i = tokens.get(0); i <= tokens.get(1); i++) { - tempVnets.add(i.toString()); - } - tempVnets.removeAll(vnetsInDb); - if (tempVnets.isEmpty()) { - throw new InvalidParameterValueException("The vlan range you are trying to add already exists."); - } - vnetsInDb.addAll(tempVnets); - add_Vnet = new ArrayList(); - add_Vnet.addAll(tempVnets); - List sortedList = new ArrayList(vnetsInDb); - Collections.sort(sortedList, new Comparator() { - public int compare(String s1, String s2) { - return Integer.valueOf(s1).compareTo(Integer.valueOf(s2)); - } - }); - //build the vlan string form the allocated vlan list. - String vnetRange = ""; - String startvnet = sortedList.get(0); - String endvnet = ""; - for ( int i =0; i < sortedList.size()-1; i++ ) { - if (Integer.valueOf(sortedList.get(i+1)) - Integer.valueOf(sortedList.get(i)) > 1) { - endvnet = sortedList.get(i); - vnetRange=vnetRange + startvnet+"-"+endvnet+";"; - startvnet = sortedList.get(i+1); - } - } - endvnet = sortedList.get(sortedList.size()-1); - vnetRange=vnetRange + startvnet+"-"+endvnet+";"; - vnetRange = vnetRange.substring(0,vnetRange.length()-1); - network.setVnet(vnetRange); - } - Transaction txn = Transaction.currentTxn(); - txn.start(); - if (add_Vnet != null) { - s_logger.debug("Adding vnet range " + tokens.get(0).toString() + "-" + tokens.get(1).toString() + " for the physicalNetwork id= " + id + " and zone id=" + network.getDataCenterId() - + " as a part of updatePhysicalNetwork call"); - _dcDao.addVnet(network.getDataCenterId(), network.getId(), add_Vnet); + String [] listOfRanges = newVnetRange.split(","); + addOrRemoveVnets(listOfRanges, network); } _physicalNetworkDao.update(id, network); - txn.commit(); - return network; + } - private List processVlanRange(PhysicalNetworkVO network, String vlan) { + @DB + public void addOrRemoveVnets(String [] listOfRanges, PhysicalNetworkVO network) { + List addVnets = null; + List removeVnets =null; + HashSet tempVnets = new HashSet(); + HashSet vnetsInDb = new HashSet(); + List> vnetranges = null; + String comaSeperatedStingOfVnetRanges = null; + int i =0; + if (listOfRanges.length !=0) { + _physicalNetworkDao.acquireInLockTable(network.getId(),10); + vnetranges = validateVlanRange(network, listOfRanges); + + //computing vnets to be removed. + removeVnets = getVnetsToremove(network, vnetranges); + + //computing vnets to add + vnetsInDb.addAll(_datacneter_vnet.listVnetsByPhysicalNetworkAndDataCenter(network.getDataCenterId(), network.getId())); + tempVnets.addAll(vnetsInDb); + for (Pairvlan : vnetranges) { + for (i= vlan.first(); i<= vlan.second(); i++) { + tempVnets.add(Integer.toString(i)); + } + } + tempVnets.removeAll(vnetsInDb); + + //vnets to add in tempVnets. + //adding and removing vnets from vnetsInDb + if (removeVnets != null && removeVnets.size() !=0 ) { + vnetsInDb.removeAll(removeVnets); + } + + if (tempVnets.size() != 0) { + addVnets = new ArrayList(); + addVnets.addAll(tempVnets); + vnetsInDb.addAll(tempVnets); + } + + //sorting the vnets in Db to generate a coma seperated list of the vnet string. + if (vnetsInDb.size() !=0 ) { + comaSeperatedStingOfVnetRanges = generateVnetString( new ArrayList(vnetsInDb)); + } + network.setVnet(comaSeperatedStingOfVnetRanges); + + Transaction txn = Transaction.currentTxn(); + txn.start(); + if (addVnets != null) { + s_logger.debug("Adding vnet range " + addVnets.toString()+ " for the physicalNetwork id= " + network.getId() + " and zone id=" + network.getDataCenterId() + + " as a part of updatePhysicalNetwork call"); + //add vnet takes a list of strings to be added. each string is a vnet. + _dcDao.addVnet(network.getDataCenterId(), network.getId(), addVnets); + } + if (removeVnets != null) { + s_logger.debug("removing vnet range " + removeVnets.toString()+ " for the physicalNetwork id= " + network.getId() + " and zone id=" + network.getDataCenterId() + + " as a part of updatePhysicalNetwork call"); + //deleteVnets takes a list of strings to be removed. each string is a vnet. + _datacneter_vnet.deleteVnets(txn, network.getDataCenterId(), network.getId(), removeVnets); + } + _physicalNetworkDao.update(network.getId(), network); + txn.commit(); + _physicalNetworkDao.releaseFromLockTable(network.getId()); + } + } + + private List> validateVlanRange(PhysicalNetworkVO network, String[] listOfRanges) { Integer StartVnet; Integer EndVnet; - String[] VnetRange = vlan.split("-"); + List> vlanTokens = new ArrayList>(); + for (String vlanRange : listOfRanges) { + String[] VnetRange = vlanRange.split("-"); - // Init with [min,max] of VLAN. Actually 0x000 and 0xFFF are reserved by IEEE, shoudn't be used. - long minVnet = MIN_VLAN_ID; - long maxVnet = MAX_VLAN_ID; + // Init with [min,max] of VLAN. Actually 0x000 and 0xFFF are reserved by IEEE, shoudn't be used. + long minVnet = MIN_VLAN_ID; + long maxVnet = MAX_VLAN_ID; - // for GRE phynets allow up to 32bits - // TODO: Not happy about this test. - // What about guru-like objects for physical networs? - s_logger.debug("ISOLATION METHODS:" + network.getIsolationMethods()); - // Java does not have unsigned types... - if (network.getIsolationMethods().contains("GRE")) { - minVnet = MIN_GRE_KEY; - maxVnet = MAX_GRE_KEY; - } - String rangeMessage = " between " + minVnet + " and " + maxVnet; - if (VnetRange.length < 2) { - throw new InvalidParameterValueException("Please provide valid vnet range" + rangeMessage); - } + // for GRE phynets allow up to 32bits + // TODO: Not happy about this test. + // What about guru-like objects for physical networs? + s_logger.debug("ISOLATION METHODS:" + network.getIsolationMethods()); + // Java does not have unsigned types... + if (network.getIsolationMethods().contains("GRE")) { + minVnet = MIN_GRE_KEY; + maxVnet = MAX_GRE_KEY; + } + String rangeMessage = " between " + minVnet + " and " + maxVnet; + if (VnetRange.length == 1 && VnetRange[0].equals("")) { + return vlanTokens; + } + if (VnetRange.length < 2) { + throw new InvalidParameterValueException("Please provide valid vnet range. vnet range should be a coma seperated list of vlan ranges. example 500-500,600-601" + rangeMessage); + } - if (VnetRange[0] == null || VnetRange[1] == null) { - throw new InvalidParameterValueException("Please provide valid vnet range" + rangeMessage); - } + if (VnetRange[0] == null || VnetRange[1] == null) { + throw new InvalidParameterValueException("Please provide valid vnet range" + rangeMessage); + } - try { - StartVnet = Integer.parseInt(VnetRange[0]); - EndVnet = Integer.parseInt(VnetRange[1]); - } catch (NumberFormatException e) { - s_logger.warn("Unable to parse vnet range:", e); - throw new InvalidParameterValueException("Please provide valid vnet range" + rangeMessage); - } - if (StartVnet < minVnet || EndVnet > maxVnet) { - throw new InvalidParameterValueException("Vnet range has to be" + rangeMessage); - } + try { + StartVnet = Integer.parseInt(VnetRange[0]); + EndVnet = Integer.parseInt(VnetRange[1]); + } catch (NumberFormatException e) { + s_logger.warn("Unable to parse vnet range:", e); + throw new InvalidParameterValueException("Please provide valid vnet range. The vnet range should be a coma seperated list example 2001-2012,3000-3005." + rangeMessage); + } + if (StartVnet < minVnet || EndVnet > maxVnet) { + throw new InvalidParameterValueException("Vnet range has to be" + rangeMessage); + } - if (StartVnet > EndVnet) { - throw new InvalidParameterValueException("Vnet range has to be" + rangeMessage + " and start range should be lesser than or equal to stop range"); + if (StartVnet > EndVnet) { + throw new InvalidParameterValueException("Vnet range has to be" + rangeMessage + " and start range should be lesser than or equal to stop range"); + } + vlanTokens.add(new Pair(StartVnet, EndVnet)); } - List tokens = new ArrayList(); - tokens.add(StartVnet); - tokens.add(EndVnet); - return tokens; + return vlanTokens; } - private boolean removeVlanRange( PhysicalNetworkVO network, Integer start, Integer end) { - Integer temp=0; + public String generateVnetString(List vnetList) { + Collections.sort(vnetList, new Comparator() { + public int compare(String s1, String s2) { + return Integer.valueOf(s1).compareTo(Integer.valueOf(s2)); + } + }); int i; - List > existingRanges = network.getVnet(); - Transaction txn = Transaction.currentTxn(); - txn.start(); - _physicalNetworkDao.acquireInLockTable(network.getId(),10); - _datacneter_vnet.lockRange(network.getDataCenterId(), network.getId(), start, end); - List result = _datacneter_vnet.listAllocatedVnetsInRange(network.getDataCenterId(), network.getId(), start, end); - if (!result.isEmpty()){ - txn.close(); - throw new InvalidParameterValueException("Some of the vnets from this range are allocated, can only remove a range which has no allocated vnets"); - } - // If the range is partially dedicated to an account fail the request - List maps = _accountGuestVlanMapDao.listAccountGuestVlanMapsByPhysicalNetwork(network.getId()); - for (AccountGuestVlanMapVO map : maps) { - String[] vlans = map.getGuestVlanRange().split("-"); - Integer dedicatedStartVlan = Integer.parseInt(vlans[0]); - Integer dedicatedEndVlan = Integer.parseInt(vlans[1]); - if ((start >= dedicatedStartVlan && start <= dedicatedEndVlan) || (end >= dedicatedStartVlan && end <= dedicatedEndVlan)) { - txn.close(); - throw new InvalidParameterValueException("Vnet range " + map.getGuestVlanRange() + " is dedicated" + - " to an account. The specified range " + start + "-" + end + " overlaps with the dedicated range " + - " Please release the overlapping dedicated range before deleting the range"); + //build the vlan string form the sorted list. + String vnetRange = ""; + String startvnet = vnetList.get(0); + String endvnet = ""; + for ( i =0; i < vnetList.size()-1; i++ ) { + if (Integer.valueOf(vnetList.get(i+1)) - Integer.valueOf(vnetList.get(i)) > 1) { + endvnet = vnetList.get(i); + vnetRange=vnetRange + startvnet+"-"+endvnet+","; + startvnet = vnetList.get(i+1); } } - for (i=0; i= end){ - temp = existingRanges.get(i).second(); - existingRanges.get(i).second(start - 1); - existingRanges.add(new Pair((end+1),temp)); - break; + endvnet = vnetList.get(vnetList.size()-1); + vnetRange=vnetRange + startvnet+"-"+endvnet+","; + vnetRange=vnetRange.substring(0,vnetRange.length()-1); + return vnetRange; + } + + private List getVnetsToremove(PhysicalNetworkVO network, List> vnetRanges) { + int i; + List removeVnets = new ArrayList(); + HashSet vnetsInDb = new HashSet(); + vnetsInDb.addAll(_datacneter_vnet.listVnetsByPhysicalNetworkAndDataCenter(network.getDataCenterId(), network.getId())); + //remove all the vnets from vnets in db to check if there are any vnets that are not there in given list. + //remove all the vnets not in the list of vnets passed by the user. + if (vnetRanges.size() == 0) { + //this implies remove all vlans. + removeVnets.addAll(vnetsInDb); + return removeVnets; + } + for (Pairvlan : vnetRanges) { + for (i= vlan.first(); i<= vlan.second(); i++) { + vnetsInDb.remove(Integer.toString(i)); } } + String vnetRange = null; + if (vnetsInDb.size() != 0) { + removeVnets.addAll(vnetsInDb); + vnetRange = generateVnetString(removeVnets); + }else { + return removeVnets; + } - if (temp == 0){ - throw new InvalidParameterValueException("The vnet range you are trying to delete does not exist."); - } - if(existingRanges.get(i).first() > existingRanges.get(i).second()){ - existingRanges.remove(i); - } - if(existingRanges.get(existingRanges.size()-1).first() > existingRanges.get(existingRanges.size()-1).second()){ - existingRanges.remove(existingRanges.size()-1); - } - _datacneter_vnet.deleteRange(txn, network.getDataCenterId(), network.getId(), start, end); - - String vnetString=""; - if (existingRanges.isEmpty()) { - network.setVnet(null); - } else { - for (Pair vnetRange : existingRanges ) { - vnetString=vnetString+vnetRange.first().toString()+"-"+vnetRange.second().toString()+";"; + for (String vnet : vnetRange.split(",")) { + String [] range = vnet.split("-"); + Integer start = Integer.parseInt(range[0]); + Integer end= Integer.parseInt(range[1]); + _datacneter_vnet.lockRange(network.getDataCenterId(), network.getId(), start, end); + List result = _datacneter_vnet.listAllocatedVnetsInRange(network.getDataCenterId(), network.getId(), start, end); + if (!result.isEmpty()){ + throw new InvalidParameterValueException("Some of the vnets from this range are allocated, can only remove a range which has no allocated vnets"); + } + // If the range is partially dedicated to an account fail the request + List maps = _accountGuestVlanMapDao.listAccountGuestVlanMapsByPhysicalNetwork(network.getId()); + for (AccountGuestVlanMapVO map : maps) { + String[] vlans = map.getGuestVlanRange().split("-"); + Integer dedicatedStartVlan = Integer.parseInt(vlans[0]); + Integer dedicatedEndVlan = Integer.parseInt(vlans[1]); + if ((start >= dedicatedStartVlan && start <= dedicatedEndVlan) || (end >= dedicatedStartVlan && end <= dedicatedEndVlan)) { + throw new InvalidParameterValueException("Vnet range " + map.getGuestVlanRange() + " is dedicated" + + " to an account. The specified range " + start + "-" + end + " overlaps with the dedicated range " + + " Please release the overlapping dedicated range before deleting the range"); + } } - vnetString = vnetString.substring(0, vnetString.length()-1); - network.setVnet(vnetString); } - _physicalNetworkDao.update(network.getId(), network); - txn.commit(); - _physicalNetworkDao.releaseFromLockTable(network.getId()); - - return true; + return removeVnets; } diff --git a/server/test/com/cloud/network/UpdatePhysicalNetworkTest.java b/server/test/com/cloud/network/UpdatePhysicalNetworkTest.java index e3fc36a05d2..1c0eff6453a 100644 --- a/server/test/com/cloud/network/UpdatePhysicalNetworkTest.java +++ b/server/test/com/cloud/network/UpdatePhysicalNetworkTest.java @@ -65,7 +65,7 @@ public class UpdatePhysicalNetworkTest { when(_datacenterDao.findById(anyLong())).thenReturn(datacentervo); when(_physicalNetworkDao.update(anyLong(), any(physicalNetworkVO.getClass()))).thenReturn(true); when(_DatacenterVnetDao.listVnetsByPhysicalNetworkAndDataCenter(anyLong(), anyLong())).thenReturn(existingRange); - networkService.updatePhysicalNetwork(1l, null, null, "525-530", null, null); + networkService.updatePhysicalNetwork(1l, null, null, "524-524,525-530", null); txn.close("updatePhysicalNetworkTest"); verify(physicalNetworkVO).setVnet(argumentCaptor.capture()); assertEquals("524-530", argumentCaptor.getValue()); diff --git a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java index c10ec328d9c..df552e45c68 100644 --- a/server/test/com/cloud/vpc/MockNetworkManagerImpl.java +++ b/server/test/com/cloud/vpc/MockNetworkManagerImpl.java @@ -372,7 +372,7 @@ public class MockNetworkManagerImpl extends ManagerBase implements NetworkManage */ @Override public PhysicalNetwork updatePhysicalNetwork(Long id, String networkSpeed, List tags, - String newVnetRangeString, String state, String removeVlan) { + String newVnetRangeString, String state) { // TODO Auto-generated method stub return null; }