You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ch...@apache.org on 2013/01/10 00:50:01 UTC

[5/16] Network-refactor: Refactor NetworkManager into NetworkModel and NetworkManager. NetworkManager's exclusive focus is now - handling plugins during orchestration, and - to deal with ip address allocation. Those classes that used to refer to Networ

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5a830c4d/server/src/com/cloud/network/vpc/VpcManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpc/VpcManagerImpl.java b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
index f974d4f..e95c54f 100644
--- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
@@ -62,6 +62,7 @@ import com.cloud.network.Network.GuestType;
 import com.cloud.network.Network.Provider;
 import com.cloud.network.Network.Service;
 import com.cloud.network.NetworkManager;
+import com.cloud.network.NetworkModel;
 import com.cloud.network.NetworkService;
 import com.cloud.network.NetworkVO;
 import com.cloud.network.Networks.BroadcastDomainType;
@@ -138,6 +139,8 @@ public class VpcManagerImpl implements VpcManager, Manager{
     @Inject
     NetworkManager _ntwkMgr;
     @Inject
+    NetworkModel _ntwkModel;
+    @Inject
     NetworkService _ntwkSvc;
     @Inject
     IPAddressDao _ipAddressDao;
@@ -547,12 +550,12 @@ public class VpcManagerImpl implements VpcManager, Manager{
         
         if (networkDomain == null) {
             // 1) Get networkDomain from the corresponding account
-            networkDomain = _ntwkMgr.getAccountNetworkDomain(owner.getId(), zoneId);
+            networkDomain = _ntwkModel.getAccountNetworkDomain(owner.getId(), zoneId);
 
 
             // 2) If null, generate networkDomain using domain suffix from the global config variables
             if (networkDomain == null) {
-                networkDomain = "cs" + Long.toHexString(owner.getId()) + _ntwkMgr.getDefaultNetworkDomain();
+                networkDomain = "cs" + Long.toHexString(owner.getId()) + _ntwkModel.getDefaultNetworkDomain();
             }
         }
         
@@ -564,7 +567,7 @@ public class VpcManagerImpl implements VpcManager, Manager{
     {
         //the provider has to be enabled at least in one network in the zone
         for (PhysicalNetwork pNtwk : _pNtwkDao.listByZone(zoneId)) {
-            if (_ntwkMgr.isProviderEnabledInPhysicalNetwork(pNtwk.getId(), Provider.VPCVirtualRouter.getName())) {
+            if (_ntwkModel.isProviderEnabledInPhysicalNetwork(pNtwk.getId(), Provider.VPCVirtualRouter.getName())) {
                 return true;
             }
         }
@@ -961,7 +964,7 @@ public class VpcManagerImpl implements VpcManager, Manager{
         }
 
         //2) validate network offering attributes
-        List<Service> svcs = _ntwkMgr.listNetworkOfferingServices(guestNtwkOff.getId());
+        List<Service> svcs = _ntwkModel.listNetworkOfferingServices(guestNtwkOff.getId());
         validateNtwkOffForVpc(guestNtwkOff, svcs);
 
         //3) Check services/providers against VPC providers
@@ -977,14 +980,14 @@ public class VpcManagerImpl implements VpcManager, Manager{
         }
 
         //4) Only one network in the VPC can support LB
-        if (_ntwkMgr.areServicesSupportedByNetworkOffering(guestNtwkOff.getId(), Service.Lb)) {
+        if (_ntwkModel.areServicesSupportedByNetworkOffering(guestNtwkOff.getId(), Service.Lb)) {
             List<? extends Network> networks = getVpcNetworks(vpc.getId());
             for (Network network : networks) {
                 if (networkId != null && network.getId() == networkId.longValue()) {
                     //skip my own network
                     continue;
                 } else {
-                    if (_ntwkMgr.areServicesSupportedInNetwork(network.getId(), Service.Lb)) {
+                    if (_ntwkModel.areServicesSupportedInNetwork(network.getId(), Service.Lb)) {
                         throw new InvalidParameterValueException("LB service is already supported " +
                         		"by network " + network + " in VPC " + vpc);
                     }
@@ -996,7 +999,7 @@ public class VpcManagerImpl implements VpcManager, Manager{
     @Override
     public void validateNtwkOffForVpc(NetworkOffering guestNtwkOff, List<Service> supportedSvcs) {
         //1) in current release, only vpc provider is supported by Vpc offering
-        List<Provider> providers = _ntwkMgr.getNtwkOffDistinctProviders(guestNtwkOff.getId());
+        List<Provider> providers = _ntwkModel.getNtwkOffDistinctProviders(guestNtwkOff.getId());
         for (Provider provider : providers) {
             if (provider != Provider.VPCVirtualRouter) {
                 throw new InvalidParameterValueException("Only provider of type " + Provider.VPCVirtualRouter.getName() 
@@ -1091,7 +1094,7 @@ public class VpcManagerImpl implements VpcManager, Manager{
 
     protected VpcProvider getVpcElement() {
         if (vpcElement == null) {
-            vpcElement = ((VpcProvider)_ntwkMgr.getElementImplementingProvider(Provider.VPCVirtualRouter.getName()));
+            vpcElement = ((VpcProvider)_ntwkModel.getElementImplementingProvider(Provider.VPCVirtualRouter.getName()));
         }
 
         if (vpcElement == null) {
@@ -1219,7 +1222,7 @@ public class VpcManagerImpl implements VpcManager, Manager{
     }
 
     protected PrivateGateway getPrivateGatewayProfile(VpcGateway gateway) {
-        Network network = _ntwkMgr.getNetwork(gateway.getNetworkId());
+        Network network = _ntwkModel.getNetwork(gateway.getNetworkId());
         return new PrivateGatewayProfile(gateway, network.getPhysicalNetworkId());
     }
 
@@ -1246,7 +1249,7 @@ public class VpcManagerImpl implements VpcManager, Manager{
         
         //Validate physical network
         if (physicalNetworkId == null) {
-            List<? extends PhysicalNetwork> pNtwks = _ntwkMgr.getPhysicalNtwksSupportingTrafficType(vpc.getZoneId(), TrafficType.Guest);
+            List<? extends PhysicalNetwork> pNtwks = _ntwkModel.getPhysicalNtwksSupportingTrafficType(vpc.getZoneId(), TrafficType.Guest);
             if (pNtwks.isEmpty() || pNtwks.size() != 1) {
                 throw new InvalidParameterValueException("Physical network can't be determined; pass physical network id");
             }
@@ -1770,7 +1773,7 @@ public class VpcManagerImpl implements VpcManager, Manager{
         Account caller = UserContext.current().getCaller();
         Account owner = null;
 
-        IpAddress ipToAssoc = _ntwkMgr.getIp(ipId);
+        IpAddress ipToAssoc = _ntwkModel.getIp(ipId);
         if (ipToAssoc != null) {
             _accountMgr.checkAccess(caller, null, true, ipToAssoc);
             owner = _accountMgr.getAccount(ipToAssoc.getAllocatedToAccountId());
@@ -1829,7 +1832,7 @@ public class VpcManagerImpl implements VpcManager, Manager{
         boolean success = false;
         try {
             //unassign ip from the VPC router
-            success = _ntwkMgr.applyIpAssociations(_ntwkMgr.getNetwork(networkId), true);
+            success = _ntwkMgr.applyIpAssociations(_ntwkModel.getNetwork(networkId), true);
         } catch (ResourceUnavailableException ex) {
             throw new CloudRuntimeException("Failed to apply ip associations for network id=" + networkId + 
                     " as a part of unassigning ip " + ipId + " from vpc", ex);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5a830c4d/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
index 45b5d19..e0f114d 100755
--- a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
+++ b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
@@ -42,7 +42,7 @@ import com.cloud.exception.ResourceUnavailableException;
 import com.cloud.network.IPAddressVO;
 import com.cloud.network.Network;
 import com.cloud.network.Network.Service;
-import com.cloud.network.NetworkManager;
+import com.cloud.network.NetworkModel;
 import com.cloud.network.PublicIpAddress;
 import com.cloud.network.RemoteAccessVpn;
 import com.cloud.network.RemoteAccessVpnVO;
@@ -94,7 +94,7 @@ public class RemoteAccessVpnManagerImpl implements RemoteAccessVpnService, Manag
     @Inject IPAddressDao _ipAddressDao;
     @Inject AccountManager _accountMgr;
     @Inject DomainManager _domainMgr;
-    @Inject NetworkManager _networkMgr;
+    @Inject NetworkModel _networkMgr;
     @Inject RulesManager _rulesMgr;
     @Inject DomainDao _domainDao;
     @Inject FirewallRulesDao _rulesDao;

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5a830c4d/server/src/com/cloud/resource/DiscovererBase.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/resource/DiscovererBase.java b/server/src/com/cloud/resource/DiscovererBase.java
index b589653..64dfa39 100644
--- a/server/src/com/cloud/resource/DiscovererBase.java
+++ b/server/src/com/cloud/resource/DiscovererBase.java
@@ -32,7 +32,7 @@ import com.cloud.dc.ClusterVO;
 import com.cloud.dc.dao.ClusterDao;
 import com.cloud.host.HostVO;
 import com.cloud.host.dao.HostDao;
-import com.cloud.network.NetworkManager;
+import com.cloud.network.NetworkModel;
 import com.cloud.utils.component.ComponentLocator;
 import com.cloud.utils.component.Inject;
 import com.cloud.utils.net.UrlUtil;
@@ -43,7 +43,7 @@ public abstract class DiscovererBase implements Discoverer {
     private static final Logger s_logger = Logger.getLogger(DiscovererBase.class);
     @Inject protected ClusterDao _clusterDao;
     @Inject protected ConfigurationDao _configDao;
-    @Inject protected NetworkManager _networkMgr;
+    @Inject protected NetworkModel _networkMgr;
     @Inject protected HostDao _hostDao;
     
     @Override

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5a830c4d/server/src/com/cloud/storage/StorageManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java
index 3e3a67a..805a703 100755
--- a/server/src/com/cloud/storage/StorageManagerImpl.java
+++ b/server/src/com/cloud/storage/StorageManagerImpl.java
@@ -125,7 +125,7 @@ import com.cloud.host.Status;
 import com.cloud.host.dao.HostDao;
 import com.cloud.hypervisor.Hypervisor.HypervisorType;
 import com.cloud.hypervisor.HypervisorGuruManager;
-import com.cloud.network.NetworkManager;
+import com.cloud.network.NetworkModel;
 import com.cloud.offering.ServiceOffering;
 import com.cloud.org.Grouping;
 import com.cloud.org.Grouping.AllocationState;
@@ -240,7 +240,7 @@ public class StorageManagerImpl implements StorageManager, Manager, ClusterManag
     @Inject
     protected SecondaryStorageVmManager _secStorageMgr;
     @Inject
-    protected NetworkManager _networkMgr;
+    protected NetworkModel _networkMgr;
     @Inject
     protected VolumeDao _volsDao;
     @Inject

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5a830c4d/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java b/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
index 7a94001..8b55a32 100755
--- a/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
+++ b/server/src/com/cloud/storage/secondary/SecondaryStorageManagerImpl.java
@@ -77,6 +77,7 @@ import com.cloud.keystore.KeystoreManager;
 import com.cloud.network.IPAddressVO;
 import com.cloud.network.Network;
 import com.cloud.network.NetworkManager;
+import com.cloud.network.NetworkModel;
 import com.cloud.network.NetworkVO;
 import com.cloud.network.Networks.TrafficType;
 import com.cloud.network.dao.IPAddressDao;
@@ -193,7 +194,9 @@ public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, V
     @Inject
     protected SwiftManager _swiftMgr;
     @Inject
-    private NetworkManager _networkMgr;
+    protected NetworkManager _networkMgr;
+    @Inject
+    protected NetworkModel _networkModel;
     @Inject
     protected SnapshotDao _snapshotDao;
     
@@ -380,7 +383,7 @@ public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, V
                     allowedCidrs.add(cidr);
                 }
             }
-            List<? extends Nic> nics = _networkMgr.getNicsForTraffic(secStorageVm.getId(), TrafficType.Management);
+            List<? extends Nic> nics = _networkModel.getNicsForTraffic(secStorageVm.getId(), TrafficType.Management);
             setupCmd.setAllowedInternalSites(allowedCidrs.toArray(new String[allowedCidrs.size()]));
         }
         String copyPasswd = _configDao.getValue("secstorage.copy.password");
@@ -547,7 +550,7 @@ public class SecondaryStorageManagerImpl implements SecondaryStorageVmManager, V
         
         NetworkVO defaultNetwork = defaultNetworks.get(0);
 
-        List<NetworkOfferingVO> offerings = _networkMgr.getSystemAccountNetworkOfferings(NetworkOfferingVO.SystemControlNetwork, NetworkOfferingVO.SystemManagementNetwork, NetworkOfferingVO.SystemStorageNetwork);
+        List<NetworkOfferingVO> offerings = _networkModel.getSystemAccountNetworkOfferings(NetworkOfferingVO.SystemControlNetwork, NetworkOfferingVO.SystemManagementNetwork, NetworkOfferingVO.SystemStorageNetwork);
         List<Pair<NetworkVO, NicProfile>> networks = new ArrayList<Pair<NetworkVO, NicProfile>>(offerings.size() + 1);
         NicProfile defaultNic = new NicProfile();
         defaultNic.setDefaultNic(true);

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5a830c4d/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java
index 9356048..e470c03 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -176,6 +176,8 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
     @Inject
     protected HostPodDao _podDao = null;
     @Inject
+    protected NetworkModel _networkModel = null;
+    @Inject
     protected NetworkManager _networkMgr = null;
     @Inject
     protected StorageManager _storageMgr = null;
@@ -346,14 +348,14 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
 
         VMTemplateVO template = _templateDao.findByIdIncludingRemoved(vmInstance.getTemplateId());
         if (template.getEnablePassword()) {
-            Nic defaultNic = _networkMgr.getDefaultNic(vmId);
+            Nic defaultNic = _networkModel.getDefaultNic(vmId);
             if (defaultNic == null) {
                 s_logger.error("Unable to reset password for vm " + vmInstance + " as the instance doesn't have default nic");
                 return false;
             }
 
             Network defaultNetwork = _networkDao.findById(defaultNic.getNetworkId());
-            NicProfile defaultNicProfile = new NicProfile(defaultNic, defaultNetwork, null, null, null, _networkMgr.isSecurityGroupSupportedInNetwork(defaultNetwork), _networkMgr.getNetworkTag(template.getHypervisorType(), defaultNetwork));
+            NicProfile defaultNicProfile = new NicProfile(defaultNic, defaultNetwork, null, null, null, _networkModel.isSecurityGroupSupportedInNetwork(defaultNetwork), _networkModel.getNetworkTag(template.getHypervisorType(), defaultNetwork));
             VirtualMachineProfile<VMInstanceVO> vmProfile = new VirtualMachineProfileImpl<VMInstanceVO>(vmInstance);
             vmProfile.setParameter(VirtualMachineProfile.Param.VmPassword, password);
 
@@ -1756,7 +1758,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
     private boolean updateUserDataInternal(UserVm vm)
             throws ResourceUnavailableException, InsufficientCapacityException {
         VMTemplateVO template = _templateDao.findByIdIncludingRemoved(vm.getTemplateId());
-        Nic defaultNic = _networkMgr.getDefaultNic(vm.getId());
+        Nic defaultNic = _networkModel.getDefaultNic(vm.getId());
         if (defaultNic == null) {
             s_logger.error("Unable to update userdata for vm id=" + vm.getId() + " as the instance doesn't have default nic");
             return false;
@@ -1764,12 +1766,12 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
 
         Network defaultNetwork = _networkDao.findById(defaultNic.getNetworkId());
         NicProfile defaultNicProfile = new NicProfile(defaultNic, defaultNetwork, null, null, null,
-                _networkMgr.isSecurityGroupSupportedInNetwork(defaultNetwork),
-                _networkMgr.getNetworkTag(template.getHypervisorType(), defaultNetwork));
+                _networkModel.isSecurityGroupSupportedInNetwork(defaultNetwork),
+                _networkModel.getNetworkTag(template.getHypervisorType(), defaultNetwork));
 
         VirtualMachineProfile<VMInstanceVO> vmProfile = new VirtualMachineProfileImpl<VMInstanceVO>((VMInstanceVO)vm);
 
-        UserDataServiceProvider element = _networkMgr.getUserDataUpdateProvider(defaultNetwork);
+        UserDataServiceProvider element = _networkModel.getUserDataUpdateProvider(defaultNetwork);
         if (element == null) {
             throw new CloudRuntimeException("Can't find network element for " + Service.UserData.getName() + " provider needed for UserData update");
         }
@@ -1994,7 +1996,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
         _accountMgr.checkAccess(caller, null, true, owner);
 
         // Get default guest network in Basic zone
-        Network defaultNetwork = _networkMgr.getExclusiveGuestNetwork(zone.getId());
+        Network defaultNetwork = _networkModel.getExclusiveGuestNetwork(zone.getId());
 
         if (defaultNetwork == null) {
             throw new InvalidParameterValueException("Unable to find a default network to start a vm");
@@ -2006,7 +2008,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
 
         if (securityGroupIdList != null && isVmWare) {
             throw new InvalidParameterValueException("Security group feature is not supported for vmWare hypervisor");
-        } else if (!isVmWare && _networkMgr.isSecurityGroupSupportedInNetwork(defaultNetwork) && _networkMgr.canAddDefaultSecurityGroup()) {
+        } else if (!isVmWare && _networkModel.isSecurityGroupSupportedInNetwork(defaultNetwork) && _networkModel.canAddDefaultSecurityGroup()) {
             //add the default securityGroup only if no security group is specified
             if(securityGroupIdList == null || securityGroupIdList.isEmpty()){
                 if (securityGroupIdList == null) {
@@ -2046,7 +2048,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
 
         // If no network is specified, find system security group enabled network
         if (networkIdList == null || networkIdList.isEmpty()) {
-            NetworkVO networkWithSecurityGroup = _networkMgr.getNetworkWithSecurityGroupEnabled(zone.getId());
+            NetworkVO networkWithSecurityGroup = _networkModel.getNetworkWithSecurityGroupEnabled(zone.getId());
             if (networkWithSecurityGroup == null) {
                 throw new InvalidParameterValueException("No network with security enabled is found in zone id=" + zone.getId());
             }
@@ -2069,7 +2071,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
                 throw new InvalidParameterValueException("Unable to find network by id " + networkIdList.get(0).longValue());
             }
 
-            if (!_networkMgr.isSecurityGroupSupportedInNetwork(network)) {
+            if (!_networkModel.isSecurityGroupSupportedInNetwork(network)) {
                 throw new InvalidParameterValueException("Network is not security group enabled: " + network.getId());
             }
 
@@ -2085,7 +2087,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
                     throw new InvalidParameterValueException("Unable to find network by id " + networkIdList.get(0).longValue());
                 }
 
-                boolean isSecurityGroupEnabled = _networkMgr.isSecurityGroupSupportedInNetwork(network);
+                boolean isSecurityGroupEnabled = _networkModel.isSecurityGroupSupportedInNetwork(network);
                 if (isSecurityGroupEnabled) {
                     if (networkIdList.size() > 1) {
                         throw new InvalidParameterValueException("Can't create a vm with multiple networks one of" +
@@ -2109,7 +2111,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
         }
 
         // if network is security group enabled, and no security group is specified, then add the default security group automatically
-        if (isSecurityGroupEnabledNetworkUsed && !isVmWare && _networkMgr.canAddDefaultSecurityGroup()) {
+        if (isSecurityGroupEnabledNetworkUsed && !isVmWare && _networkModel.canAddDefaultSecurityGroup()) {
             
           //add the default securityGroup only if no security group is specified
             if(securityGroupIdList == null || securityGroupIdList.isEmpty()){
@@ -2163,9 +2165,9 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
 
             if (requiredOfferings.get(0).getState() == NetworkOffering.State.Enabled) {
                 // get Virtual networks
-                List<NetworkVO> virtualNetworks = _networkMgr.listNetworksForAccount(owner.getId(), zone.getId(), Network.GuestType.Isolated);
+                List<NetworkVO> virtualNetworks = _networkModel.listNetworksForAccount(owner.getId(), zone.getId(), Network.GuestType.Isolated);
                 if (virtualNetworks.isEmpty()) {
-                    long physicalNetworkId = _networkMgr.findPhysicalNetworkId(zone.getId(), requiredOfferings.get(0).getTags(), requiredOfferings.get(0).getTrafficType());
+                    long physicalNetworkId = _networkModel.findPhysicalNetworkId(zone.getId(), requiredOfferings.get(0).getTags(), requiredOfferings.get(0).getTrafficType());
                     // Validate physical network
                     PhysicalNetwork physicalNetwork = _physicalNetworkDao.findById(physicalNetworkId);
                     if (physicalNetwork == null) {
@@ -2207,7 +2209,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
 
                 }
                 
-                _networkMgr.checkNetworkPermissions(owner, network);
+                _networkModel.checkNetworkPermissions(owner, network);
 
                 //don't allow to use system networks 
                 NetworkOffering networkOffering = _configMgr.getNetworkOffering(network.getNetworkOfferingId());
@@ -2376,7 +2378,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
 
             networks.add(new Pair<NetworkVO, NicProfile>(network, profile));
 
-            if (_networkMgr.isSecurityGroupSupportedInNetwork(network)) {
+            if (_networkModel.isSecurityGroupSupportedInNetwork(network)) {
                 securityGroupEnabled = true;
             }
 
@@ -2440,7 +2442,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
                     if (hostNames.contains(hostName)) {
                         throw new InvalidParameterValueException("The vm with hostName " + hostName
                                 + " already exists in the network domain: " + ntwkDomain + "; network=" 
-                                + _networkMgr.getNetwork(ntwkId));
+                                + _networkModel.getNetwork(ntwkId));
                     }
                 }
             }
@@ -2760,7 +2762,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
             UserContext ctx = UserContext.current();
             try {
                 long networkId = ip.getAssociatedWithNetworkId();
-                Network guestNetwork = _networkMgr.getNetwork(networkId);
+                Network guestNetwork = _networkModel.getNetwork(networkId);
                 NetworkOffering offering = _configMgr.getNetworkOffering(guestNetwork.getNetworkOfferingId());
                 assert (offering.getAssociatePublicIP() == true) : "User VM should not have system owned public IP associated with it when offering configured not to associate public IP.";
                 _rulesMgr.disableStaticNat(ip.getId(), ctx.getCaller(), ctx.getCallerUserId(), true);
@@ -2815,7 +2817,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
         }
 
         //check if vm is security group enabled
-        if (_securityGroupMgr.isVmSecurityGroupEnabled(vmId) && _securityGroupMgr.getSecurityGroupsForVm(vmId).isEmpty() && !_securityGroupMgr.isVmMappedToDefaultSecurityGroup(vmId) && _networkMgr.canAddDefaultSecurityGroup()) {
+        if (_securityGroupMgr.isVmSecurityGroupEnabled(vmId) && _securityGroupMgr.getSecurityGroupsForVm(vmId).isEmpty() && !_securityGroupMgr.isVmMappedToDefaultSecurityGroup(vmId) && _networkModel.canAddDefaultSecurityGroup()) {
             //if vm is not mapped to security group, create a mapping
             if (s_logger.isDebugEnabled()) {
                 s_logger.debug("Vm " + vm + " is security group enabled, but not mapped to default security group; creating the mapping automatically");
@@ -3503,7 +3505,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
             List<NetworkVO> networkList = new ArrayList<NetworkVO>();
 
             // Get default guest network in Basic zone
-            Network defaultNetwork = _networkMgr.getExclusiveGuestNetwork(zone.getId());
+            Network defaultNetwork = _networkModel.getExclusiveGuestNetwork(zone.getId());
 
             if (defaultNetwork == null) {
                 throw new InvalidParameterValueException("Unable to find a default network to start a vm");
@@ -3515,7 +3517,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
 
             if (securityGroupIdList != null && isVmWare) {
                 throw new InvalidParameterValueException("Security group feature is not supported for vmWare hypervisor");
-            } else if (!isVmWare && _networkMgr.isSecurityGroupSupportedInNetwork(defaultNetwork) && _networkMgr.canAddDefaultSecurityGroup()) {
+            } else if (!isVmWare && _networkModel.isSecurityGroupSupportedInNetwork(defaultNetwork) && _networkModel.canAddDefaultSecurityGroup()) {
                 if (securityGroupIdList == null) {
                     securityGroupIdList = new ArrayList<Long>();
                 }
@@ -3580,7 +3582,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
                             throw ex;
                         }
 
-                        _networkMgr.checkNetworkPermissions(newAccount, network);
+                        _networkModel.checkNetworkPermissions(newAccount, network);
 
                         //don't allow to use system networks 
                         NetworkOffering networkOffering = _configMgr.getNetworkOffering(network.getNetworkOfferingId());
@@ -3601,9 +3603,9 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
                     }
                     if (requiredOfferings.get(0).getState() == NetworkOffering.State.Enabled) {
                         // get Virtual networks
-                        List<NetworkVO> virtualNetworks = _networkMgr.listNetworksForAccount(newAccount.getId(), zone.getId(), Network.GuestType.Isolated);
+                        List<NetworkVO> virtualNetworks = _networkModel.listNetworksForAccount(newAccount.getId(), zone.getId(), Network.GuestType.Isolated);
                         if (virtualNetworks.isEmpty()) {
-                            long physicalNetworkId = _networkMgr.findPhysicalNetworkId(zone.getId(), requiredOfferings.get(0).getTags(), requiredOfferings.get(0).getTrafficType());
+                            long physicalNetworkId = _networkModel.findPhysicalNetworkId(zone.getId(), requiredOfferings.get(0).getTags(), requiredOfferings.get(0).getTrafficType());
                             // Validate physical network
                             PhysicalNetwork physicalNetwork = _physicalNetworkDao.findById(physicalNetworkId);
                             if (physicalNetwork == null) {

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5a830c4d/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
index 9230f4a..f777a9e 100755
--- a/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
+++ b/server/src/com/cloud/vm/VirtualMachineManagerImpl.java
@@ -109,6 +109,7 @@ import com.cloud.hypervisor.HypervisorGuru;
 import com.cloud.hypervisor.HypervisorGuruManager;
 import com.cloud.network.Network;
 import com.cloud.network.NetworkManager;
+import com.cloud.network.NetworkModel;
 import com.cloud.network.NetworkVO;
 import com.cloud.network.dao.NetworkDao;
 import com.cloud.offering.ServiceOffering;
@@ -170,6 +171,8 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene
     @Inject
     protected NetworkManager _networkMgr;
     @Inject
+    protected NetworkModel _networkModel;
+    @Inject
     protected AgentManager _agentMgr;
     @Inject
     protected VMInstanceDao _vmDao;
@@ -2153,9 +2156,9 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene
         VirtualMachineProfile<VMInstanceVO> profile = new VirtualMachineProfileImpl<VMInstanceVO>(vm);
         List<NicVO> nics = _nicsDao.listByVmId(profile.getId());
         for (NicVO nic : nics) {
-            Network network = _networkMgr.getNetwork(nic.getNetworkId());
+            Network network = _networkModel.getNetwork(nic.getNetworkId());
             NicProfile nicProfile = new NicProfile(nic, network, nic.getBroadcastUri(), nic.getIsolationUri(), null, 
-                    _networkMgr.isSecurityGroupSupportedInNetwork(network), _networkMgr.getNetworkTag(profile.getHypervisorType(), network));
+                    _networkModel.isSecurityGroupSupportedInNetwork(network), _networkModel.getNetworkTag(profile.getHypervisorType(), network));
             profile.addNic(nicProfile);
         }
 
@@ -2533,13 +2536,13 @@ public class VirtualMachineManagerImpl implements VirtualMachineManager, Listene
         if (broadcastUri != null) {
             nic = _nicsDao.findByNetworkIdInstanceIdAndBroadcastUri(network.getId(), vm.getId(), broadcastUri.toString());
         } else {
-            nic = _networkMgr.getNicInNetwork(vm.getId(), network.getId());
+            nic = _networkModel.getNicInNetwork(vm.getId(), network.getId());
         }
         
         NicProfile nicProfile = new NicProfile(nic, network, nic.getBroadcastUri(), nic.getIsolationUri(), 
-                _networkMgr.getNetworkRate(network.getId(), vm.getId()), 
-                _networkMgr.isSecurityGroupSupportedInNetwork(network), 
-                _networkMgr.getNetworkTag(vmProfile.getVirtualMachine().getHypervisorType(), network));
+                _networkModel.getNetworkRate(network.getId(), vm.getId()), 
+                _networkModel.isSecurityGroupSupportedInNetwork(network), 
+                _networkModel.getNetworkTag(vmProfile.getVirtualMachine().getHypervisorType(), network));
         
         //1) Unplug the nic
         NicTO nicTO = toNicTO(nicProfile, vmProfile.getVirtualMachine().getHypervisorType());

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5a830c4d/server/test/com/cloud/network/MockFirewallManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/network/MockFirewallManagerImpl.java b/server/test/com/cloud/network/MockFirewallManagerImpl.java
new file mode 100644
index 0000000..0d388f2
--- /dev/null
+++ b/server/test/com/cloud/network/MockFirewallManagerImpl.java
@@ -0,0 +1,183 @@
+package com.cloud.network;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.ejb.Local;
+import javax.naming.ConfigurationException;
+
+import com.cloud.api.commands.ListFirewallRulesCmd;
+import com.cloud.exception.NetworkRuleConflictException;
+import com.cloud.exception.ResourceUnavailableException;
+import com.cloud.network.firewall.FirewallService;
+import com.cloud.network.rules.FirewallManager;
+import com.cloud.network.rules.FirewallRule;
+import com.cloud.network.rules.FirewallRuleVO;
+import com.cloud.network.rules.FirewallRule.FirewallRuleType;
+import com.cloud.network.rules.FirewallRule.Purpose;
+import com.cloud.user.Account;
+import com.cloud.utils.Pair;
+import com.cloud.utils.component.Manager;
+
+@Local(value = {FirewallManager.class, FirewallService.class})
+public class MockFirewallManagerImpl implements FirewallManager,
+		FirewallService, Manager {
+
+	@Override
+	public boolean configure(String name, Map<String, Object> params)
+			throws ConfigurationException {
+		return true;
+	}
+
+	@Override
+	public boolean start() {
+		return true;
+	}
+
+	@Override
+	public boolean stop() {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public String getName() {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public FirewallRule createFirewallRule(FirewallRule rule)
+			throws NetworkRuleConflictException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public Pair<List<? extends FirewallRule>, Integer> listFirewallRules(
+			ListFirewallRulesCmd cmd) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean revokeFirewallRule(long ruleId, boolean apply) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean applyFirewallRules(long ipId, Account caller)
+			throws ResourceUnavailableException {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public FirewallRule getFirewallRule(long ruleId) {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean revokeRelatedFirewallRule(long ruleId, boolean apply) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public void detectRulesConflict(FirewallRule newRule)
+			throws NetworkRuleConflictException {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void validateFirewallRule(Account caller, IPAddressVO ipAddress,
+			Integer portStart, Integer portEnd, String proto, Purpose purpose,
+			FirewallRuleType type) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public boolean applyRules(List<? extends FirewallRule> rules,
+			boolean continueOnError, boolean updateRulesInDB)
+			throws ResourceUnavailableException {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean applyFirewallRules(List<FirewallRuleVO> rules,
+			boolean continueOnError, Account caller) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public void revokeRule(FirewallRuleVO rule, Account caller, long userId,
+			boolean needUsageEvent) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public boolean revokeFirewallRulesForIp(long ipId, long userId,
+			Account caller) throws ResourceUnavailableException {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean revokeFirewallRule(long ruleId, boolean apply,
+			Account caller, long userId) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public FirewallRule createFirewallRule(long ipAddrId, Account caller,
+			String xId, Integer portStart, Integer portEnd, String protocol,
+			List<String> sourceCidrList, Integer icmpCode, Integer icmpType,
+			Long relatedRuleId, FirewallRuleType type, long networkId)
+			throws NetworkRuleConflictException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public FirewallRule createRuleForAllCidrs(long ipAddrId, Account caller,
+			Integer startPort, Integer endPort, String protocol,
+			Integer icmpCode, Integer icmpType, Long relatedRuleId,
+			long networkId) throws NetworkRuleConflictException {
+		// TODO Auto-generated method stub
+		return null;
+	}
+
+	@Override
+	public boolean revokeAllFirewallRulesForNetwork(long networkId,
+			long userId, Account caller) throws ResourceUnavailableException {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean revokeFirewallRulesForVm(long vmId) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public boolean addSystemFirewallRules(IPAddressVO ip, Account acct) {
+		// TODO Auto-generated method stub
+		return false;
+	}
+
+	@Override
+	public void removeRule(FirewallRule rule) {
+		// TODO Auto-generated method stub
+
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5a830c4d/server/test/com/cloud/network/MockNetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/network/MockNetworkManagerImpl.java b/server/test/com/cloud/network/MockNetworkManagerImpl.java
index 4ad5324..96201f0 100755
--- a/server/test/com/cloud/network/MockNetworkManagerImpl.java
+++ b/server/test/com/cloud/network/MockNetworkManagerImpl.java
@@ -131,35 +131,16 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
         return null;
     }
 
-    @Override
-    public Map<Service, Map<Capability, String>> getNetworkCapabilities(long networkId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
+   
     @Override
     public boolean isNetworkAvailableInDomain(long networkId, long domainId) {
         // TODO Auto-generated method stub
         return false;
     }
 
-    @Override
-    public Long getDedicatedNetworkDomain(long networkId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public Integer getNetworkRate(long networkId, Long vmId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
+    
 
-    @Override
-    public Network getSystemNetworkByZoneAndTrafficType(long zoneId, TrafficType trafficType) {
-        // TODO Auto-generated method stub
-        return null;
-    }
+   
 
     @Override
     public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
@@ -190,11 +171,7 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
         return false;
     }
 
-    @Override
-    public List<IPAddressVO> listPublicIpsAssignedToGuestNtwk(long accountId, long associatedNetworkId, Boolean sourceNat) {
-        // TODO Auto-generated method stub
-        return null;
-    }
+   
 
     @Override
     public List<NetworkVO> setupNetwork(Account owner, NetworkOfferingVO offering, DeploymentPlan plan, String name, String displayText, boolean isDefault)
@@ -210,11 +187,7 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
         return null;
     }
 
-    @Override
-    public List<NetworkOfferingVO> getSystemAccountNetworkOfferings(String... offeringNames) {
-        // TODO Auto-generated method stub
-        return null;
-    }
+   
 
     @Override
     public void allocate(VirtualMachineProfile<? extends VMInstanceVO> vm, List<Pair<NetworkVO, NicProfile>> networks) throws InsufficientCapacityException, ConcurrentOperationException {
@@ -247,37 +220,17 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
 
     }
 
-    @Override
-    public List<? extends Nic> getNics(long vmId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
+    
     @Override
     public List<NicProfile> getNicProfiles(VirtualMachine vm) {
         // TODO Auto-generated method stub
         return null;
     }
 
-    @Override
-    public String getNextAvailableMacAddressInNetwork(long networkConfigurationId) throws InsufficientAddressCapacityException {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
    
-    @Override
-    public PublicIpAddress getPublicIpAddress(long ipAddressId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public List<? extends Vlan> listPodVlans(long podId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
+   
 
+   
     @Override
     public Pair<NetworkGuru, NetworkVO> implementNetwork(long networkId, DeployDestination dest, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException,
     InsufficientCapacityException {
@@ -285,11 +238,6 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
         return null;
     }
 
-    @Override
-    public List<NetworkVO> listNetworksUsedByVm(long vmId, boolean isSystem) {
-        // TODO Auto-generated method stub
-        return null;
-    }
 
     @Override
     public <T extends VMInstanceVO> void prepareNicForMigration(VirtualMachineProfile<T> vm, DeployDestination dest) {
@@ -317,29 +265,9 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
         return false;
     }
 
-    @Override
-    public Nic getNicInNetwork(long vmId, long networkId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public List<? extends Nic> getNicsForTraffic(long vmId, TrafficType type) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public Network getDefaultNetworkForVm(long vmId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
+   
 
-    @Override
-    public Nic getDefaultNic(long vmId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
+   
 
     @Override
     public boolean applyIpAssociations(Network network, boolean continueOnError) throws ResourceUnavailableException {
@@ -347,17 +275,7 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
         return false;
     }
 
-    @Override
-    public boolean areServicesSupportedByNetworkOffering(long networkOfferingId, Service... services) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public NetworkVO getNetworkWithSecurityGroupEnabled(Long zoneId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
+   
 
     @Override
     public boolean startNetwork(long networkId, DeployDestination dest, ReservationContext context) throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException {
@@ -365,12 +283,7 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
         return false;
     }
 
-    @Override
-    public String getIpOfNetworkElementInVirtualNetwork(long accountId, long dataCenterId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
+   
     @Override
     public IPAddressVO markIpAsUnavailable(long addrId) {
         // TODO Auto-generated method stub
@@ -383,35 +296,14 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
         return null;
     }
 
-    @Override
-    public String getGlobalGuestDomainSuffix() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public String getStartIpAddress(long networkId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
+   
     @Override
     public boolean applyStaticNats(List<? extends StaticNat> staticNats, boolean continueOnError) throws ResourceUnavailableException {
         // TODO Auto-generated method stub
         return false;
     }
 
-    @Override
-    public String getIpInNetwork(long vmId, long networkId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public String getIpInNetworkIncludingRemoved(long vmId, long networkId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
+  
 
     public Map<Service, Set<Provider>> getNetworkOfferingServiceProvidersMap(long networkOfferingId) {
         return null;
@@ -419,11 +311,7 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
 
    
 
-    @Override
-    public boolean isProviderSupportServiceInNetwork(long networkId, Service service, Provider provider) {
-        // TODO Auto-generated method stub
-        return false;
-    }
+   
 
     @Override
     public PhysicalNetwork createPhysicalNetwork(Long zoneId, String vnetRange, String networkSpeed, List<String> isolationMethods, String broadcastDomainRange, Long domainId, List<String> tags, String name) {
@@ -455,11 +343,6 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
         return null;
     }
 
-    @Override
-    public List<? extends Provider> listSupportedNetworkServiceProviders(String serviceName) {
-        // TODO Auto-generated method stub
-        return null;
-    }
 
     @Override
     public PhysicalNetworkServiceProvider addProviderToPhysicalNetwork(Long physicalNetworkId, String providerName, Long destinationPhysicalNetworkId, List<String> enabledServices) {
@@ -533,72 +416,16 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
         return null;
     }
 
-    @Override
-    public PhysicalNetwork getDefaultPhysicalNetworkByZoneAndTrafficType(long zoneId, TrafficType trafficType) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
+   
     @Override
     public Network getExclusiveGuestNetwork(long zoneId) {
         // TODO Auto-generated method stub
         return null;
     }
 
-    @Override
-    public Long getPodIdForVlan(long vlanDbId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public boolean networkIsConfiguredForExternalNetworking(long zoneId, long networkId) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public Map<Capability, String> getNetworkServiceCapabilities(long networkId, Service service) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public List<NetworkVO> listNetworksForAccount(long accountId, long zoneId, GuestType type) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public List<Long> listNetworkOfferingsForUpgrade(long networkId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-
-    @Override
-    public boolean isSecurityGroupSupportedInNetwork(Network network) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public boolean isProviderEnabledInPhysicalNetwork(long physicalNetowrkId, String providerName) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public List<Service> getElementServices(Provider provider) {
-        // TODO Auto-generated method stub
-        return null;
-    }
+   
 
-    @Override
-    public boolean canElementEnableIndividualServices(Provider provider) {
-        // TODO Auto-generated method stub
-        return false;
-    }
+   
 
     @Override
     public UserDataServiceProvider getPasswordResetProvider(Network network) {
@@ -606,12 +433,7 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
         return null;
     }
 
-    @Override
-    public UserDataServiceProvider getUserDataUpdateProvider(Network network) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
+   
     @Override
     public PhysicalNetworkServiceProvider updateNetworkServiceProvider(Long id, String state, List<String> enabledServices) {
         // TODO Auto-generated method stub
@@ -624,423 +446,234 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
         return null;
     }
 
-    @Override
-    public boolean areServicesSupportedInNetwork(long networkId, Service... services) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public boolean isNetworkSystem(Network network) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public Map<Capability, String> getNetworkOfferingServiceCapabilities(NetworkOffering offering, Service service) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public boolean reallocate(VirtualMachineProfile<? extends VMInstanceVO> vm, DataCenterDeployment dest) throws InsufficientCapacityException, ConcurrentOperationException {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-	@Override
-	public Long getPhysicalNetworkId(Network network) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public boolean getAllowSubdomainAccessGlobal() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public boolean isProviderForNetwork(Provider provider, long networkId) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public boolean restartNetwork(RestartNetworkCmd cmd, boolean cleanup)
-			throws ConcurrentOperationException, ResourceUnavailableException,
-			InsufficientCapacityException {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-	@Override
-	public String getNetworkTag(HypervisorType hType, Network network) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-
-	@Override
-	public void canProviderSupportServices(
-			Map<Provider, Set<Service>> providersMap) {
-		// TODO Auto-generated method stub
-		
-	}
-
-    @Override
-    public boolean isProviderForNetworkOffering(Provider provider, long networkOfferingId) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-
-	@Override
-	public boolean canAddDefaultSecurityGroup() {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
-    @Override
-    public List<Pair<TrafficType, String>> listTrafficTypeImplementor(ListTrafficTypeImplementorsCmd cmd) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public List<Service> listNetworkOfferingServices(long networkOfferingId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public boolean areServicesEnabledInZone(long zoneId, NetworkOffering offering, List<Service> services) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public Map<PublicIp, Set<Service>> getIpToServices(List<PublicIp> publicIps, boolean rulesRevoked, boolean includingFirewall) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public Map<Provider, ArrayList<PublicIp>> getProviderToIpList(Network network, Map<PublicIp, Set<Service>> ipToServices) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public boolean checkIpForService(IPAddressVO ip, Service service, Long networkId) {
-        // TODO Auto-generated method stub
-        return false;
-    }
+   
 
+   
 
+    
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkService#isVmPartOfNetwork(long, long)
+     * @see com.cloud.network.NetworkManager#getNetworkLockTimeout()
      */
     @Override
-    public boolean isVmPartOfNetwork(long vmId, long ntwkId) {
+    public int getNetworkLockTimeout() {
         // TODO Auto-generated method stub
-        return false;
+        return 0;
     }
 
-
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#getDefaultNetworkDomain()
+     * @see com.cloud.network.NetworkManager#applyRules(java.util.List, com.cloud.network.rules.FirewallRule.Purpose, com.cloud.network.NetworkRuleApplier, boolean)
      */
     @Override
-    public String getDefaultNetworkDomain() {
+    public boolean applyRules(List<? extends FirewallRule> rules, Purpose purpose, NetworkRuleApplier applier,
+            boolean continueOnError) throws ResourceUnavailableException {
         // TODO Auto-generated method stub
-        return null;
+        return false;
     }
 
-
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#allocateNic(com.cloud.vm.NicProfile, com.cloud.network.Network, java.lang.Boolean, int, com.cloud.vm.VirtualMachineProfile)
+     * @see com.cloud.network.NetworkManager#applyIpAssociations(com.cloud.network.Network, boolean, boolean, java.util.List)
      */
     @Override
-    public Pair<NicProfile, Integer> allocateNic(NicProfile requested, Network network, Boolean isDefaultNic, int deviceId, VirtualMachineProfile<? extends VMInstanceVO> vm)
-            throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException, ConcurrentOperationException {
+    public boolean applyIpAssociations(Network network, boolean rulesRevoked, boolean continueOnError,
+            List<PublicIp> publicIps) throws ResourceUnavailableException {
         // TODO Auto-generated method stub
-        return null;
+        return false;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#prepareNic(com.cloud.vm.VirtualMachineProfile, com.cloud.deploy.DeployDestination, com.cloud.vm.ReservationContext, long, com.cloud.network.NetworkVO)
+     * @see com.cloud.network.NetworkManager#cleanupIpResources(long, long, com.cloud.user.Account)
      */
     @Override
-    public NicProfile prepareNic(VirtualMachineProfile<? extends VMInstanceVO> vmProfile, DeployDestination dest, ReservationContext context, long nicId, NetworkVO network)
-            throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException, ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException {
+    public boolean cleanupIpResources(long addrId, long userId, Account caller) {
         // TODO Auto-generated method stub
-        return null;
+        return false;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#listPublicIpsAssignedToAccount(long, long, java.lang.Boolean)
+     * @see com.cloud.network.NetworkManager#restartNetwork(java.lang.Long, com.cloud.user.Account, com.cloud.user.User, boolean)
      */
     @Override
-    public List<IPAddressVO> listPublicIpsAssignedToAccount(long accountId, long dcId, Boolean sourceNat) {
+    public boolean restartNetwork(Long networkId, Account callerAccount, User callerUser, boolean cleanup)
+            throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException {
         // TODO Auto-generated method stub
-        return null;
+        return false;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkService#allocateIP(com.cloud.user.Account, long, Long)
+     * @see com.cloud.network.NetworkManager#shutdownNetworkElementsAndResources(com.cloud.vm.ReservationContext, boolean, com.cloud.network.NetworkVO)
      */
     @Override
-    public IpAddress allocateIP(Account ipOwner, long zoneId, Long networkId) throws ResourceAllocationException, InsufficientAddressCapacityException, ConcurrentOperationException {
+    public boolean shutdownNetworkElementsAndResources(ReservationContext context, boolean b, NetworkVO network) {
         // TODO Auto-generated method stub
-        return null;
+        return false;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkService#updateGuestNetwork(long, java.lang.String, java.lang.String, com.cloud.user.Account, com.cloud.user.User, java.lang.String, java.lang.Long, java.lang.Boolean)
+     * @see com.cloud.network.NetworkManager#implementNetworkElementsAndResources(com.cloud.deploy.DeployDestination, com.cloud.vm.ReservationContext, com.cloud.network.NetworkVO, com.cloud.offerings.NetworkOfferingVO)
      */
     @Override
-    public Network createPrivateNetwork(String networkName, String displayText, long physicalNetworkId, String vlan, String startIp, String endIP, String gateway, String netmask, long networkOwnerId, Long vpcId)
-            throws ResourceAllocationException, ConcurrentOperationException, InsufficientCapacityException {
+    public void implementNetworkElementsAndResources(DeployDestination dest, ReservationContext context,
+            NetworkVO network, NetworkOfferingVO findById) throws ConcurrentOperationException,
+            InsufficientAddressCapacityException, ResourceUnavailableException, InsufficientCapacityException {
         // TODO Auto-generated method stub
-        return null;
+        
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkService#getIsolatedNetworksWithSourceNATOwnedByAccountInZone(long, com.cloud.user.Account)
+     * @see com.cloud.network.NetworkManager#allocateIp(com.cloud.user.Account, boolean, com.cloud.user.Account, com.cloud.dc.DataCenter)
      */
     @Override
-    public IpAddress associateIPToNetwork(long ipId, long networkId) throws InsufficientAddressCapacityException, ResourceAllocationException, ResourceUnavailableException, ConcurrentOperationException {
+    public IpAddress allocateIp(Account ipOwner, boolean isSystem, Account caller, DataCenter zone)
+            throws ConcurrentOperationException, ResourceAllocationException, InsufficientAddressCapacityException {
         // TODO Auto-generated method stub
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkService#listNetworksByVpc(long)
+     * @see com.cloud.network.NetworkManager#finalizeServicesAndProvidersForNetwork(com.cloud.offering.NetworkOffering, java.lang.Long)
      */
     @Override
-    public List<? extends Network> listNetworksByVpc(long vpcId) {
+    public Map<String, String> finalizeServicesAndProvidersForNetwork(NetworkOffering offering, Long physicalNetworkId) {
         // TODO Auto-generated method stub
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#validateRule(com.cloud.network.rules.FirewallRule)
-     */
-    @Override
-    public boolean validateRule(FirewallRule rule) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#shutdownNetwork(long, com.cloud.vm.ReservationContext, boolean)
+     * @see com.cloud.network.NetworkManager#getNicProfileForVm(com.cloud.network.Network, com.cloud.vm.NicProfile, com.cloud.vm.VirtualMachine)
      */
-    @Override
-    public boolean shutdownNetwork(long networkId, ReservationContext context, boolean cleanupElements) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#listAllNetworksInAllZonesByType(com.cloud.network.Network.GuestType)
-     */
-    @Override
-    public List<NetworkVO> listAllNetworksInAllZonesByType(GuestType type) {
-        // TODO Auto-generated method stub
+    protected NicProfile getNicProfileForVm(Network network, NicProfile requested, VirtualMachine vm) {
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#getPhysicalNetworkInfo(long, com.cloud.hypervisor.Hypervisor.HypervisorType)
+     * @see com.cloud.network.NetworkManager#getOnePhysicalNetworkByZoneAndTrafficType(long, com.cloud.network.Networks.TrafficType)
      */
-    @Override
-    public List<PhysicalNetworkSetupInfo> getPhysicalNetworkInfo(long dcId, HypervisorType hypervisorType) {
-        // TODO Auto-generated method stub
+    protected PhysicalNetwork getOnePhysicalNetworkByZoneAndTrafficType(long zoneId, TrafficType trafficType) {
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#checkCapabilityForProvider(java.util.Set, com.cloud.network.Network.Service, com.cloud.network.Network.Capability, java.lang.String)
+     * @see com.cloud.network.NetworkManager#getZoneNetworkDomain(long)
      */
-    @Override
-    public void checkCapabilityForProvider(Set<Provider> providers, Service service, Capability cap, String capValue) {
-        // TODO Auto-generated method stub
-        
-    }
-
-    /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#getDefaultUniqueProviderForService(java.lang.String)
-     */
-    @Override
-    public List<Provider> getNtwkOffDistinctProviders(long ntwkOffId) {
-        // TODO Auto-generated method stub
+    protected String getZoneNetworkDomain(long zoneId) {
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#assignSystemIp(long, com.cloud.user.Account, boolean, boolean)
+     * @see com.cloud.network.NetworkManager#getNicInNetworkIncludingRemoved(long, long)
      */
-    @Override
-    public IpAddress assignSystemIp(long networkId, Account owner, boolean forElasticLb, boolean forElasticIp) throws InsufficientAddressCapacityException {
-        // TODO Auto-generated method stub
+    protected Nic getNicInNetworkIncludingRemoved(long vmId, long networkId) {
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#checkNetworkPermissions(com.cloud.user.Account, com.cloud.network.Network)
-     */
-    @Override
-    public void checkNetworkPermissions(Account owner, Network network) {
-        // TODO Auto-generated method stub
-        
-    }
-
-    /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#allocateDirectIp(com.cloud.vm.NicProfile, com.cloud.dc.DataCenter, com.cloud.vm.VirtualMachineProfile, com.cloud.network.Network, java.lang.String)
+     * @see com.cloud.network.NetworkService#allocateIP(com.cloud.user.Account, long, java.lang.Long)
      */
     @Override
-    public void releaseNic(VirtualMachineProfile<? extends VMInstanceVO> vmProfile, Nic nic) throws ConcurrentOperationException, ResourceUnavailableException {
-        // TODO Auto-generated method stub
-        
-    }
-
-    /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#getElementImplementingProvider(java.lang.String)
-     */
-    @Override
-    public NetworkElement getElementImplementingProvider(String providerName) {
+    public IpAddress allocateIP(Account ipOwner, long zoneId, Long networkId) throws ResourceAllocationException,
+            InsufficientAddressCapacityException, ConcurrentOperationException {
         // TODO Auto-generated method stub
         return null;
     }
 
-
-	@Override
-	public boolean canUseForDeploy(Network network) {
-		// TODO Auto-generated method stub
-		return false;
-	}
-
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#getDefaultStorageTrafficLabel(long, com.cloud.hypervisor.Hypervisor.HypervisorType)
+     * @see com.cloud.network.NetworkService#restartNetwork(com.cloud.api.commands.RestartNetworkCmd, boolean)
      */
     @Override
-    public String getDefaultStorageTrafficLabel(long zoneId, HypervisorType hypervisorType) {
+    public boolean restartNetwork(RestartNetworkCmd cmd, boolean cleanup) throws ConcurrentOperationException,
+            ResourceUnavailableException, InsufficientCapacityException {
         // TODO Auto-generated method stub
-        return null;
+        return false;
     }
 
     /* (non-Javadoc)
-<<<<<<< HEAD
-     * @see com.cloud.network.NetworkManager#getDefaultPublicTrafficLabel(long, com.cloud.hypervisor.Hypervisor.HypervisorType)
+     * @see com.cloud.network.NetworkService#updateGuestNetwork(long, java.lang.String, java.lang.String, com.cloud.user.Account, com.cloud.user.User, java.lang.String, java.lang.Long, java.lang.Boolean)
      */
     @Override
-    public String getDefaultPublicTrafficLabel(long dcId, HypervisorType vmware) {
+    public Network updateGuestNetwork(long networkId, String name, String displayText, Account callerAccount,
+            User callerUser, String domainSuffix, Long networkOfferingId, Boolean changeCidr) {
         // TODO Auto-generated method stub
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#assignSourceNatIpAddressToGuestNetwork(com.cloud.user.Account, com.cloud.network.Network)
-=======
-     * @see com.cloud.network.NetworkManager#getNicProfile(com.cloud.vm.VirtualMachine, long)
->>>>>>> ddb9e49... VPC: unittest preparation
+     * @see com.cloud.network.NetworkService#listTrafficTypeImplementor(com.cloud.api.commands.ListTrafficTypeImplementorsCmd)
      */
     @Override
-    public PublicIp assignSourceNatIpAddressToGuestNetwork(Account owner, Network guestNetwork) throws InsufficientAddressCapacityException, ConcurrentOperationException {
+    public List<Pair<TrafficType, String>> listTrafficTypeImplementor(ListTrafficTypeImplementorsCmd cmd) {
         // TODO Auto-generated method stub
         return null;
     }
 
-
-    /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#setupDns(com.cloud.network.Network, com.cloud.network.Network.Provider)
-     */
-    @Override
-    public boolean setupDns(Network network, Provider provider) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#getPhysicalNtwksSupportingTrafficType(long, com.cloud.network.Networks.TrafficType)
+     * @see com.cloud.network.NetworkService#getIsolatedNetworksWithSourceNATOwnedByAccountInZone(long, com.cloud.user.Account)
      */
     @Override
-    public List<? extends PhysicalNetwork> getPhysicalNtwksSupportingTrafficType(long zoneId, TrafficType trafficType) {
+    public List<? extends Network> getIsolatedNetworksWithSourceNATOwnedByAccountInZone(long zoneId, Account owner) {
         // TODO Auto-generated method stub
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#assignPublicIpAddress(long, java.lang.Long, com.cloud.user.Account, com.cloud.dc.Vlan.VlanType, java.lang.Long, java.lang.String, boolean)
+     * @see com.cloud.network.NetworkService#associateIPToNetwork(long, long)
      */
     @Override
-    public PublicIp assignPublicIpAddress(long dcId, Long podId, Account owner, VlanType type, Long networkId, String requestedIp, boolean isSystem) throws InsufficientAddressCapacityException {
+    public IpAddress associateIPToNetwork(long ipId, long networkId) throws InsufficientAddressCapacityException,
+            ResourceAllocationException, ResourceUnavailableException, ConcurrentOperationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#getAccountNetworkDomain(long, long)
+     * @see com.cloud.network.NetworkService#createPrivateNetwork(java.lang.String, java.lang.String, long, java.lang.String, java.lang.String, java.lang.String, java.lang.String, java.lang.String, long, java.lang.Long)
      */
     @Override
-    public String getAccountNetworkDomain(long accountId, long zoneId) {
+    public Network createPrivateNetwork(String networkName, String displayText, long physicalNetworkId, String vlan,
+            String startIp, String endIP, String gateway, String netmask, long networkOwnerId, Long vpcId)
+            throws ResourceAllocationException, ConcurrentOperationException, InsufficientCapacityException {
         // TODO Auto-generated method stub
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkService#updateGuestNetwork(long, java.lang.String, java.lang.String, com.cloud.user.Account, com.cloud.user.User, java.lang.String, java.lang.Long, java.lang.Boolean)
+     * @see com.cloud.network.NetworkManager#assignPublicIpAddress(long, java.lang.Long, com.cloud.user.Account, com.cloud.dc.Vlan.VlanType, java.lang.Long, java.lang.String, boolean)
      */
     @Override
-    public Network updateGuestNetwork(long networkId, String name, String displayText, Account callerAccount, User callerUser, String domainSuffix, Long networkOfferingId, Boolean changeCidr) {
+    public PublicIp assignPublicIpAddress(long dcId, Long podId, Account owner, VlanType type, Long networkId,
+            String requestedIp, boolean isSystem) throws InsufficientAddressCapacityException {
         // TODO Auto-generated method stub
         return null;
     }
 
-    
-
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#isPrivateGateway(com.cloud.vm.Nic)
-=======
-     * @see com.cloud.network.NetworkService#canUseForDeploy(com.cloud.network.Network)
->>>>>>> ddb9e49... VPC: unittest preparation
+     * @see com.cloud.network.NetworkManager#shutdownNetwork(long, com.cloud.vm.ReservationContext, boolean)
      */
     @Override
-    public boolean isPrivateGateway(Nic guestNic) {
+    public boolean shutdownNetwork(long networkId, ReservationContext context, boolean cleanupElements) {
         // TODO Auto-generated method stub
         return false;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#allocateDirectIp(com.cloud.vm.NicProfile, com.cloud.dc.DataCenter, com.cloud.vm.VirtualMachineProfile, com.cloud.network.Network, java.lang.String)
+     * @see com.cloud.network.NetworkManager#reallocate(com.cloud.vm.VirtualMachineProfile, com.cloud.deploy.DataCenterDeployment)
      */
     @Override
-    public void allocateDirectIp(NicProfile nic, DataCenter dc, VirtualMachineProfile<? extends VirtualMachine> vm, Network network, String requestedIp) throws InsufficientVirtualNetworkCapcityException,
-            InsufficientAddressCapacityException {
+    public boolean reallocate(VirtualMachineProfile<? extends VMInstanceVO> vm, DataCenterDeployment dest)
+            throws InsufficientCapacityException, ConcurrentOperationException {
         // TODO Auto-generated method stub
-        
-    }
-
-    /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#createNicForVm(com.cloud.network.Network, com.cloud.vm.NicProfile, com.cloud.vm.ReservationContext, com.cloud.vm.VirtualMachineProfileImpl, boolean)
-     */
-    @Override
-    public NicProfile createNicForVm(Network network, NicProfile requested, ReservationContext context, VirtualMachineProfileImpl<VMInstanceVO> vmProfile, boolean prepare)
-            throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException, ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException {
-        // TODO Auto-generated method stub
-        return null;
+        return false;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#getDefaultManagementTrafficLabel(long, com.cloud.hypervisor.Hypervisor.HypervisorType)
+     * @see com.cloud.network.NetworkManager#assignSystemIp(long, com.cloud.user.Account, boolean, boolean)
      */
     @Override
-    public String getDefaultManagementTrafficLabel(long zoneId, HypervisorType hypervisorType) {
+    public IpAddress assignSystemIp(long networkId, Account owner, boolean forElasticLb, boolean forElasticIp)
+            throws InsufficientAddressCapacityException {
         // TODO Auto-generated method stub
         return null;
     }
 
-
     /* (non-Javadoc)
      * @see com.cloud.network.NetworkManager#handleSystemIpRelease(com.cloud.network.IpAddress)
      */
@@ -1051,160 +684,115 @@ public class MockNetworkManagerImpl implements NetworkManager, Manager, NetworkS
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#removeNic(com.cloud.vm.VirtualMachineProfile, com.cloud.vm.Nic)
+     * @see com.cloud.network.NetworkManager#allocateDirectIp(com.cloud.vm.NicProfile, com.cloud.dc.DataCenter, com.cloud.vm.VirtualMachineProfile, com.cloud.network.Network, java.lang.String)
      */
     @Override
-    public void removeNic(VirtualMachineProfile<? extends VMInstanceVO> vm, Nic nic) {
+    public void allocateDirectIp(NicProfile nic, DataCenter dc, VirtualMachineProfile<? extends VirtualMachine> vm,
+            Network network, String requestedIp) throws InsufficientVirtualNetworkCapcityException,
+            InsufficientAddressCapacityException {
         // TODO Auto-generated method stub
         
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#getDefaultGuestTrafficLabel(long, com.cloud.hypervisor.Hypervisor.HypervisorType)
+     * @see com.cloud.network.NetworkManager#assignSourceNatIpAddressToGuestNetwork(com.cloud.user.Account, com.cloud.network.Network)
      */
     @Override
-    public String getDefaultGuestTrafficLabel(long dcId, HypervisorType vmware) {
+    public PublicIp assignSourceNatIpAddressToGuestNetwork(Account owner, Network guestNetwork)
+            throws InsufficientAddressCapacityException, ConcurrentOperationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#getNicProfile(com.cloud.vm.VirtualMachine, long, java.lang.String)
+     * @see com.cloud.network.NetworkManager#allocateNic(com.cloud.vm.NicProfile, com.cloud.network.Network, java.lang.Boolean, int, com.cloud.vm.VirtualMachineProfile)
      */
     @Override
-    public NicProfile getNicProfile(VirtualMachine vm, long networkId, String broadcastUri) {
+    public Pair<NicProfile, Integer> allocateNic(NicProfile requested, Network network, Boolean isDefaultNic,
+            int deviceId, VirtualMachineProfile<? extends VMInstanceVO> vm)
+            throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException,
+            ConcurrentOperationException {
         // TODO Auto-generated method stub
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#assignVpnGatewayIpAddress(long, com.cloud.user.Account, long)
+     * @see com.cloud.network.NetworkManager#prepareNic(com.cloud.vm.VirtualMachineProfile, com.cloud.deploy.DeployDestination, com.cloud.vm.ReservationContext, long, com.cloud.network.NetworkVO)
      */
     @Override
-    public PublicIp assignVpnGatewayIpAddress(long dcId, Account owner, long vpcId) throws InsufficientAddressCapacityException, ConcurrentOperationException {
+    public NicProfile prepareNic(VirtualMachineProfile<? extends VMInstanceVO> vmProfile, DeployDestination dest,
+            ReservationContext context, long nicId, NetworkVO network)
+            throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException,
+            ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException {
         // TODO Auto-generated method stub
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#markPublicIpAsAllocated(com.cloud.network.IPAddressVO)
+     * @see com.cloud.network.NetworkManager#removeNic(com.cloud.vm.VirtualMachineProfile, com.cloud.vm.Nic)
      */
     @Override
-    public void markPublicIpAsAllocated(IPAddressVO addr) {
+    public void removeNic(VirtualMachineProfile<? extends VMInstanceVO> vm, Nic nic) {
         // TODO Auto-generated method stub
         
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#assignDedicateIpAddress(com.cloud.user.Account, java.lang.Long, java.lang.Long, long, boolean)
-     */
-    @Override
-    public PublicIp assignDedicateIpAddress(Account owner, Long guestNtwkId, Long vpcId, long dcId, boolean isSourceNat) throws ConcurrentOperationException, InsufficientAddressCapacityException {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see com.cloud.network.NetworkService#getIsolatedNetworksWithSourceNATOwnedByAccountInZone(long, com.cloud.user.Account)
-     */
-    @Override
-    public List<? extends Network> getIsolatedNetworksWithSourceNATOwnedByAccountInZone(long zoneId, Account owner) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#getDefaultUniqueProviderForService(java.lang.String)
-     */
-    @Override
-    public Provider getDefaultUniqueProviderForService(String serviceName) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#getNetworkLockTimeout()
-     */
-    @Override
-    public int getNetworkLockTimeout() {
-        // TODO Auto-generated method stub
-        return 0;
-    }
-
-    /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#applyRules(java.util.List, com.cloud.network.rules.FirewallRule.Purpose, com.cloud.network.NetworkRuleApplier, boolean)
-     */
-    @Override
-    public boolean applyRules(List<? extends FirewallRule> rules, Purpose purpose, NetworkRuleApplier applier,
-            boolean continueOnError) throws ResourceUnavailableException {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#applyIpAssociations(com.cloud.network.Network, boolean, boolean, java.util.List)
+     * @see com.cloud.network.NetworkManager#setupDns(com.cloud.network.Network, com.cloud.network.Network.Provider)
      */
     @Override
-    public boolean applyIpAssociations(Network network, boolean rulesRevoked, boolean continueOnError,
-            List<PublicIp> publicIps) throws ResourceUnavailableException {
+    public boolean setupDns(Network network, Provider provider) {
         // TODO Auto-generated method stub
         return false;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#cleanupIpResources(long, long, com.cloud.user.Account)
+     * @see com.cloud.network.NetworkManager#releaseNic(com.cloud.vm.VirtualMachineProfile, com.cloud.vm.Nic)
      */
     @Override
-    public boolean cleanupIpResources(long addrId, long userId, Account caller) {
+    public void releaseNic(VirtualMachineProfile<? extends VMInstanceVO> vmProfile, Nic nic)
+            throws ConcurrentOperationException, ResourceUnavailableException {
         // TODO Auto-generated method stub
-        return false;
+        
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#restartNetwork(java.lang.Long, com.cloud.user.Account, com.cloud.user.User, boolean)
+     * @see com.cloud.network.NetworkManager#createNicForVm(com.cloud.network.Network, com.cloud.vm.NicProfile, com.cloud.vm.ReservationContext, com.cloud.vm.VirtualMachineProfileImpl, boolean)
      */
     @Override
-    public boolean restartNetwork(Long networkId, Account callerAccount, User callerUser, boolean cleanup)
-            throws ConcurrentOperationException, ResourceUnavailableException, InsufficientCapacityException {
+    public NicProfile createNicForVm(Network network, NicProfile requested, ReservationContext context,
+            VirtualMachineProfileImpl<VMInstanceVO> vmProfile, boolean prepare)
+            throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException,
+            ConcurrentOperationException, InsufficientCapacityException, ResourceUnavailableException {
         // TODO Auto-generated method stub
-        return false;
+        return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#shutdownNetworkElementsAndResources(com.cloud.vm.ReservationContext, boolean, com.cloud.network.NetworkVO)
+     * @see com.cloud.network.NetworkManager#assignVpnGatewayIpAddress(long, com.cloud.user.Account, long)
      */
     @Override
-    public boolean shutdownNetworkElementsAndResources(ReservationContext context, boolean b, NetworkVO network) {
+    public PublicIp assignVpnGatewayIpAddress(long dcId, Account owner, long vpcId)
+            throws InsufficientAddressCapacityException, ConcurrentOperationException {
         // TODO Auto-generated method stub
-        return false;
+        return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#implementNetworkElementsAndResources(com.cloud.deploy.DeployDestination, com.cloud.vm.ReservationContext, com.cloud.network.NetworkVO, com.cloud.offerings.NetworkOfferingVO)
+     * @see com.cloud.network.NetworkManager#markPublicIpAsAllocated(com.cloud.network.IPAddressVO)
      */
     @Override
-    public void implementNetworkElementsAndResources(DeployDestination dest, ReservationContext context,
-            NetworkVO network, NetworkOfferingVO findById) throws ConcurrentOperationException,
-            InsufficientAddressCapacityException, ResourceUnavailableException, InsufficientCapacityException {
+    public void markPublicIpAsAllocated(IPAddressVO addr) {
         // TODO Auto-generated method stub
         
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#allocateIp(com.cloud.user.Account, boolean, com.cloud.user.Account, com.cloud.dc.DataCenter)
-     */
-    @Override
-    public IpAddress allocateIp(Account ipOwner, boolean isSystem, Account caller, DataCenter zone)
-            throws ConcurrentOperationException, ResourceAllocationException, InsufficientAddressCapacityException {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#finalizeServicesAndProvidersForNetwork(com.cloud.offering.NetworkOffering, java.lang.Long)
+     * @see com.cloud.network.NetworkManager#assignDedicateIpAddress(com.cloud.user.Account, java.lang.Long, java.lang.Long, long, boolean)
      */
     @Override
-    public Map<String, String> finalizeServicesAndProvidersForNetwork(NetworkOffering offering, Long physicalNetworkId) {
+    public PublicIp assignDedicateIpAddress(Account owner, Long guestNtwkId, Long vpcId, long dcId, boolean isSourceNat)
+            throws ConcurrentOperationException, InsufficientAddressCapacityException {
         // TODO Auto-generated method stub
         return null;
     }