http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/929997f5/server/src/com/cloud/network/rules/RulesManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/rules/RulesManagerImpl.java 
b/server/src/com/cloud/network/rules/RulesManagerImpl.java
index f939784..d000ac4 100755
--- a/server/src/com/cloud/network/rules/RulesManagerImpl.java
+++ b/server/src/com/cloud/network/rules/RulesManagerImpl.java
@@ -155,7 +155,8 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
     @Override
     @DB
     @ActionEvent(eventType = EventTypes.EVENT_NET_RULE_ADD, eventDescription = 
"creating forwarding rule", create = true)
-    public PortForwardingRule createPortForwardingRule(PortForwardingRule 
rule, Long vmId, boolean openFirewall) throws NetworkRuleConflictException {
+    public PortForwardingRule createPortForwardingRule(PortForwardingRule 
rule, Long vmId, boolean openFirewall) 
+            throws NetworkRuleConflictException {
         UserContext ctx = UserContext.current();
         Account caller = ctx.getCaller();
 
@@ -169,10 +170,25 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
         } else if (ipAddress.isOneToOneNat()) {
             throw new InvalidParameterValueException("Unable to create port 
forwarding rule; ip id=" + ipAddrId + " has static nat enabled");
         }
+        
+        Long networkId = rule.getNetworkId();
+        //associate ip address to network (if needed)
+        if (ipAddress.getAssociatedWithNetworkId() == null) {
+            s_logger.debug("The ip is not associated with the network id="+ 
networkId + " so assigning");
+            try {
+                _networkMgr.associateIPToGuestNetwork(ipAddrId, networkId);
+            } catch (Exception ex) {
+                s_logger.warn("Failed to associate ip id=" + ipAddrId + " to 
network id=" + networkId + " as " +
+                        "a part of port forwarding rule creation");
+                return null;
+            }
+        }
+        
+        _networkMgr.checkIpForService(ipAddress, Service.PortForwarding);
 
-        _firewallMgr.validateFirewallRule(caller, ipAddress, 
rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getProtocol(), 
Purpose.PortForwarding, FirewallRuleType.User);
-
-        Long networkId = ipAddress.getAssociatedWithNetworkId();
+        _firewallMgr.validateFirewallRule(caller, ipAddress, 
rule.getSourcePortStart(), rule.getSourcePortEnd(), 
+                rule.getProtocol(), Purpose.PortForwarding, 
FirewallRuleType.User);
+        
         Long accountId = ipAddress.getAllocatedToAccountId();
         Long domainId = ipAddress.getAllocatedInDomainId();
 
@@ -189,12 +205,12 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
         // validate user VM exists
         UserVm vm = _vmDao.findById(vmId);
         if (vm == null) {
-            throw new InvalidParameterValueException("Unable to create port 
forwarding rule on address " + ipAddress + ", invalid virtual machine id 
specified (" + vmId + ").");
+            throw new InvalidParameterValueException("Unable to create port 
forwarding rule on address " + ipAddress + 
+                    ", invalid virtual machine id specified (" + vmId + ").");
         } else {
             checkRuleAndUserVm(rule, vm, caller);
         }
 
-        _networkMgr.checkIpForService(ipAddress, Service.PortForwarding);
 
         // Verify that vm has nic in the network
         Ip dstIp = rule.getDestinationIpAddress();
@@ -208,13 +224,15 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
         Transaction txn = Transaction.currentTxn();
         txn.start();
 
-        PortForwardingRuleVO newRule = new PortForwardingRuleVO(rule.getXid(), 
rule.getSourceIpAddressId(), rule.getSourcePortStart(), 
rule.getSourcePortEnd(), dstIp, rule.getDestinationPortStart(),
+        PortForwardingRuleVO newRule = new PortForwardingRuleVO(rule.getXid(), 
rule.getSourceIpAddressId(), 
+                rule.getSourcePortStart(), rule.getSourcePortEnd(), dstIp, 
rule.getDestinationPortStart(),
                 rule.getDestinationPortEnd(), 
rule.getProtocol().toLowerCase(), networkId, accountId, domainId, vmId);
         newRule = _portForwardingDao.persist(newRule);
 
         // create firewallRule for 0.0.0.0/0 cidr
         if (openFirewall) {
-            _firewallMgr.createRuleForAllCidrs(ipAddrId, caller, 
rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getProtocol(), null, 
null, newRule.getId());
+            _firewallMgr.createRuleForAllCidrs(ipAddrId, caller, 
rule.getSourcePortStart(), rule.getSourcePortEnd(),
+                    rule.getProtocol(), null, null, newRule.getId(), 
networkId);
         }
 
         try {
@@ -223,19 +241,17 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
                 throw new CloudRuntimeException("Unable to update the state to 
add for " + newRule);
             }
             UserContext.current().setEventDetails("Rule Id: " + 
newRule.getId());
-            UsageEventVO usageEvent = new 
UsageEventVO(EventTypes.EVENT_NET_RULE_ADD, newRule.getAccountId(), 
ipAddress.getDataCenterId(), newRule.getId(), null);
+            UsageEventVO usageEvent = new 
UsageEventVO(EventTypes.EVENT_NET_RULE_ADD, newRule.getAccountId(), 
+                    ipAddress.getDataCenterId(), newRule.getId(), null);
             _usageEventDao.persist(usageEvent);
             txn.commit();
             return newRule;
         } catch (Exception e) {
-
             if (newRule != null) {
-
                 txn.start();
                 // no need to apply the rule as it wasn't programmed on the 
backend yet
                 _firewallMgr.revokeRelatedFirewallRule(newRule.getId(), false);
                 _portForwardingDao.remove(newRule.getId());
-
                 txn.commit();
             }
 
@@ -289,7 +305,7 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
 
         // create firewallRule for 0.0.0.0/0 cidr
         if (openFirewall) {
-            _firewallMgr.createRuleForAllCidrs(ipAddrId, caller, 
rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getProtocol(), null, 
null, newRule.getId());
+            _firewallMgr.createRuleForAllCidrs(ipAddrId, caller, 
rule.getSourcePortStart(), rule.getSourcePortEnd(), rule.getProtocol(), null, 
null, newRule.getId(), networkId);
         }
 
         try {
@@ -323,14 +339,32 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
     }
 
     @Override
-    public boolean enableStaticNat(long ipId, long vmId, boolean isSystemVm) 
throws NetworkRuleConflictException, ResourceUnavailableException {
+    public boolean enableStaticNat(long ipId, long vmId, long networkId, 
boolean isSystemVm) throws NetworkRuleConflictException, 
ResourceUnavailableException {
         UserContext ctx = UserContext.current();
         Account caller = ctx.getCaller();
 
+        // Verify input parameters
+
         IPAddressVO ipAddress = _ipAddressDao.findById(ipId);
         if (ipAddress == null) {
             throw new InvalidParameterValueException("Unable to find ip 
address by id " + ipId);
         }
+        
+        boolean setNetworkId = false;
+        //associate ip address to network (if needed)
+        if (ipAddress.getAssociatedWithNetworkId() == null) {
+            s_logger.debug("The ip is not associated with the network id="+ 
networkId + " so assigning");
+            try {
+                _networkMgr.associateIPToGuestNetwork(ipId, networkId);
+            } catch (Exception ex) {
+                s_logger.warn("Failed to associate ip id=" + ipId + " to 
network id=" + networkId + " as " +
+                        "a part of enable static nat");
+                return false;
+            }
+            setNetworkId = true;
+        }
+        
+        _networkMgr.checkIpForService(ipAddress, Service.StaticNat);
 
         // Verify input parameters
         if (!isSystemVm) {
@@ -342,12 +376,6 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
             checkIpAndUserVm(ipAddress, vm, caller);
         }
 
-        // Verify that the ip is associated with the network and static nat 
service is supported for the network
-        Long networkId = ipAddress.getAssociatedWithNetworkId();
-        if (networkId == null) {
-            throw new InvalidParameterValueException("Unable to enable static 
nat for the ipAddress id=" + ipId + " as ip is not associated with any 
network");
-        }
-
         // Check that vm has a nic in the network
         Nic guestNic = _networkMgr.getNicInNetwork(vmId, networkId);
         if (guestNic == null) {
@@ -356,14 +384,12 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
 
         Network network = _networkMgr.getNetwork(networkId);
         if (!_networkMgr.areServicesSupportedInNetwork(network.getId(), 
Service.StaticNat)) {
-            throw new InvalidParameterValueException("Unable to create static 
nat rule; StaticNat service is not supported in network id=" + networkId);
+            throw new InvalidParameterValueException("Unable to create static 
nat rule; StaticNat service is not " +
+                       "supported in network id=" + networkId);
         }
 
         // Verify ip address parameter
         isIpReadyForStaticNat(vmId, ipAddress, caller, ctx.getCallerUserId());
-
-        _networkMgr.checkIpForService(ipAddress, Service.StaticNat);
-
         ipAddress.setOneToOneNat(true);
         ipAddress.setAssociatedWithVmId(vmId);
 
@@ -375,6 +401,9 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
             } else {
                 ipAddress.setOneToOneNat(false);
                 ipAddress.setAssociatedWithVmId(null);
+                if (setNetworkId) {
+                    ipAddress.setAssociatedWithNetworkId(null);
+                }
                 _ipAddressDao.update(ipAddress.getId(), ipAddress);
                 s_logger.warn("Failed to enable static nat rule for ip address 
" + ipId + " on the backend");
                 return false;
@@ -385,7 +414,8 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
         }
     }
 
-    protected void isIpReadyForStaticNat(long vmId, IPAddressVO ipAddress, 
Account caller, long callerUserId) throws NetworkRuleConflictException, 
ResourceUnavailableException {
+    protected void isIpReadyForStaticNat(long vmId, IPAddressVO ipAddress, 
Account caller, long callerUserId) 
+            throws NetworkRuleConflictException, ResourceUnavailableException {
         if (ipAddress.isSourceNat()) {
             throw new InvalidParameterValueException("Can't enable static, ip 
address " + ipAddress + " is a sourceNat ip address");
         }
@@ -958,7 +988,8 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
 
     @Override
     @DB
-    public FirewallRuleVO[] reservePorts(IpAddress ip, String protocol, 
FirewallRule.Purpose purpose, boolean openFirewall, Account caller, int... 
ports) throws NetworkRuleConflictException {
+    public FirewallRuleVO[] reservePorts(IpAddress ip, String protocol, 
FirewallRule.Purpose purpose, 
+            boolean openFirewall, Account caller, int... ports) throws 
NetworkRuleConflictException {
         FirewallRuleVO[] rules = new FirewallRuleVO[ports.length];
 
         Transaction txn = Transaction.currentTxn();
@@ -969,7 +1000,8 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
             rules[i] = _firewallDao.persist(rules[i]);
 
             if (openFirewall) {
-                _firewallMgr.createRuleForAllCidrs(ip.getId(), caller, 
ports[i], ports[i], protocol, null, null, rules[i].getId());
+                _firewallMgr.createRuleForAllCidrs(ip.getId(), caller, 
ports[i], ports[i], protocol, null, null, 
+                        rules[i].getId(), ip.getAssociatedWithNetworkId());
             }
         }
         txn.commit();
@@ -1040,8 +1072,7 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
         }
 
         // if network has elastic IP functionality supported, we first have to 
disable static nat on old ip in order to
-// re-enable it on the new one
-        // enable static nat takes care of that
+        // re-enable it on the new one enable static nat takes care of that
         Network guestNetwork = 
_networkMgr.getNetwork(ipAddress.getAssociatedWithNetworkId());
         NetworkOffering offering = 
_configMgr.getNetworkOffering(guestNetwork.getNetworkOfferingId());
         if (offering.getElasticIp()) {
@@ -1084,14 +1115,17 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
         }
 
         if (success) {
+            Transaction txn = Transaction.currentTxn();
+            txn.start();
             boolean isIpSystem = ipAddress.getSystem();
-
             ipAddress.setOneToOneNat(false);
             ipAddress.setAssociatedWithVmId(null);
             if (isIpSystem && !releaseIpIfElastic) {
                 ipAddress.setSystem(false);
             }
             _ipAddressDao.update(ipAddress.getId(), ipAddress);
+            _networkMgr.unassignIPFromVpcNetwork(ipAddress.getId());
+            txn.commit();
 
             if (isIpSystem && releaseIpIfElastic && 
!_networkMgr.handleSystemIpRelease(ipAddress)) {
                 s_logger.warn("Failed to release system ip address " + 
ipAddress);
@@ -1174,7 +1208,8 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
             dstIp = 
_networkMgr.getIpInNetwork(sourceIp.getAssociatedWithVmId(), networkId);
         }
 
-        StaticNatImpl staticNat = new 
StaticNatImpl(sourceIp.getAllocatedToAccountId(), 
sourceIp.getAllocatedInDomainId(), networkId, sourceIpId, dstIp, forRevoke);
+        StaticNatImpl staticNat = new 
StaticNatImpl(sourceIp.getAllocatedToAccountId(), 
sourceIp.getAllocatedInDomainId(),
+                networkId, sourceIpId, dstIp, forRevoke);
         staticNats.add(staticNat);
 
         try {
@@ -1216,12 +1251,14 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
 
                 boolean isSystemVM = (vm.getType() == Type.ConsoleProxy || 
vm.getType() == Type.SecondaryStorageVm);
                 try {
-                    success = enableStaticNat(ip.getId(), vm.getId(), 
isSystemVM);
+                    success = enableStaticNat(ip.getId(), vm.getId(), 
guestNetwork.getId(), isSystemVM);
                 } catch (NetworkRuleConflictException ex) {
-                    s_logger.warn("Failed to enable static nat as a part of 
enabling elasticIp and staticNat for vm " + vm + " in guest network " + 
guestNetwork + " due to exception ", ex);
+                    s_logger.warn("Failed to enable static nat as a part of 
enabling elasticIp and staticNat for vm " + 
+                vm + " in guest network " + guestNetwork + " due to exception 
", ex);
                     success = false;
                 } catch (ResourceUnavailableException ex) {
-                    s_logger.warn("Failed to enable static nat as a part of 
enabling elasticIp and staticNat for vm " + vm + " in guest network " + 
guestNetwork + " due to exception ", ex);
+                    s_logger.warn("Failed to enable static nat as a part of 
enabling elasticIp and staticNat for vm " + 
+                vm + " in guest network " + guestNetwork + " due to exception 
", ex);
                     success = false;
                 }
 
@@ -1235,5 +1272,4 @@ public class RulesManagerImpl implements RulesManager, 
RulesService, Manager {
             }
         }
     }
-
 }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/929997f5/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 1d57e28..c2b85dc 100644
--- a/server/src/com/cloud/network/vpc/VpcManagerImpl.java
+++ b/server/src/com/cloud/network/vpc/VpcManagerImpl.java
@@ -859,7 +859,7 @@ public class VpcManagerImpl implements VpcManager, Manager{
         List<IPAddressVO> ipsToRelease = 
_ipAddressDao.listByAssociatedVpc(vpcId, null);
         s_logger.debug("Releasing ips for vpc id=" + vpcId + " as a part of 
vpc cleanup");
         for (IPAddressVO ipToRelease : ipsToRelease) {
-            success = success && 
_ntwkMgr.releasePublicIpAddress(ipToRelease.getId(), callerUserId, caller);
+            success = success && 
_ntwkMgr.disassociatePublicIpAddress(ipToRelease.getId(), callerUserId, caller);
             if (!success) {
                 s_logger.warn("Failed to cleanup ip " + ipToRelease + " as a 
part of vpc id=" + vpcId + " cleanup");
             }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/929997f5/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 035629c..b1ee175 100755
--- a/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
+++ b/server/src/com/cloud/network/vpn/RemoteAccessVpnManagerImpl.java
@@ -102,7 +102,8 @@ public class RemoteAccessVpnManagerImpl implements 
RemoteAccessVpnService, Manag
     SearchBuilder<RemoteAccessVpnVO> VpnSearch;
 
     @Override
-    public RemoteAccessVpn createRemoteAccessVpn(long publicIpId, String 
ipRange, boolean openFirewall) throws NetworkRuleConflictException {
+    public RemoteAccessVpn createRemoteAccessVpn(long publicIpId, String 
ipRange, boolean openFirewall, long networkId) 
+            throws NetworkRuleConflictException {
         UserContext ctx = UserContext.current();
         Account caller = ctx.getCaller();
 
@@ -114,11 +115,23 @@ public class RemoteAccessVpnManagerImpl implements 
RemoteAccessVpnService, Manag
         
         _accountMgr.checkAccess(caller, null, true, ipAddr);
 
-        if (!ipAddr.readyToUse() || ipAddr.getAssociatedWithNetworkId() == 
null) {
+        if (!ipAddr.readyToUse()) {
             throw new InvalidParameterValueException("The Ip address is not 
ready to be used yet: " + ipAddr.getAddress());
         }
         
         IPAddressVO ipAddress = _ipAddressDao.findById(publicIpId);
+        
+        //associate ip address to network (if needed)
+        if (ipAddress.getAssociatedWithNetworkId() == null) {
+            s_logger.debug("The ip is not associated with the network id="+ 
networkId + " so assigning");
+            try {
+                _networkMgr.associateIPToGuestNetwork(publicIpId, networkId);
+            } catch (Exception ex) {
+                s_logger.warn("Failed to associate ip id=" + publicIpId + " to 
network id=" + networkId + " as " +
+                        "a part of remote access vpn creation");
+                return null;
+            }
+        }
         _networkMgr.checkIpForService(ipAddress, Service.Vpn);
 
         RemoteAccessVpnVO vpnVO = 
_remoteAccessVpnDao.findByPublicIpAddress(publicIpId);
@@ -132,7 +145,7 @@ public class RemoteAccessVpnManagerImpl implements 
RemoteAccessVpnService, Manag
         }
 
         // TODO: assumes one virtual network / domr per account per zone
-        vpnVO = 
_remoteAccessVpnDao.findByAccountAndNetwork(ipAddr.getAccountId(), 
ipAddr.getAssociatedWithNetworkId());
+        vpnVO = 
_remoteAccessVpnDao.findByAccountAndNetwork(ipAddr.getAccountId(), networkId);
         if (vpnVO != null) {
             //if vpn is in Added state, return it to the api
             if (vpnVO.getState() == RemoteAccessVpn.State.Added) {
@@ -142,7 +155,7 @@ public class RemoteAccessVpnManagerImpl implements 
RemoteAccessVpnService, Manag
         }
         
         //Verify that vpn service is enabled for the network
-        Network network = 
_networkMgr.getNetwork(ipAddr.getAssociatedWithNetworkId());
+        Network network = _networkMgr.getNetwork(networkId);
         if (!_networkMgr.areServicesSupportedInNetwork(network.getId(), 
Service.Vpn)) {
             throw new InvalidParameterValueException("Vpn service is not 
supported in network id=" + ipAddr.getAssociatedWithNetworkId());
         }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/929997f5/server/src/com/cloud/user/AccountManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/user/AccountManagerImpl.java 
b/server/src/com/cloud/user/AccountManagerImpl.java
index 68aa187..8cc79bc 100755
--- a/server/src/com/cloud/user/AccountManagerImpl.java
+++ b/server/src/com/cloud/user/AccountManagerImpl.java
@@ -598,7 +598,7 @@ public class AccountManagerImpl implements AccountManager, 
AccountService, Manag
                 List<? extends IpAddress> ipsToRelease = 
_ipAddressDao.listByAccount(accountId);
                 for (IpAddress ip : ipsToRelease) {
                     s_logger.debug("Releasing ip " + ip + " as a part of 
account id=" + accountId + " cleanup");
-                    if (!_networkMgr.releasePublicIpAddress(ip.getId(), 
callerUserId, caller)) {
+                    if (!_networkMgr.disassociatePublicIpAddress(ip.getId(), 
callerUserId, caller)) {
                         s_logger.warn("Failed to release ip address " + ip + " 
as a part of account id=" + accountId + " clenaup");
                         accountCleanupNeeded = true;
                     }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/929997f5/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 d460e78..802df17 100755
--- a/server/test/com/cloud/network/MockNetworkManagerImpl.java
+++ b/server/test/com/cloud/network/MockNetworkManagerImpl.java
@@ -74,13 +74,13 @@ public class MockNetworkManagerImpl implements 
NetworkManager, Manager, NetworkS
     }
 
     @Override
-    public IpAddress associateIP(long ipId) throws 
ResourceAllocationException, InsufficientAddressCapacityException, 
ConcurrentOperationException, ResourceUnavailableException {
+    public IpAddress associateIPToGuestNetwork(long ipId, long networkId) 
throws ResourceAllocationException, InsufficientAddressCapacityException, 
ConcurrentOperationException, ResourceUnavailableException {
         // TODO Auto-generated method stub
         return null;
     }
 
     @Override
-    public boolean disassociateIpAddress(long ipAddressId) {
+    public boolean releaseIpAddress(long ipAddressId) {
         // TODO Auto-generated method stub
         return false;
     }
@@ -181,7 +181,7 @@ public class MockNetworkManagerImpl implements 
NetworkManager, Manager, NetworkS
 
 
     @Override
-    public boolean releasePublicIpAddress(long id, long userId, Account 
caller) {
+    public boolean disassociatePublicIpAddress(long id, long userId, Account 
caller) {
         // TODO Auto-generated method stub
         return false;
     }
@@ -640,12 +640,6 @@ public class MockNetworkManagerImpl implements 
NetworkManager, Manager, NetworkS
     }
 
     @Override
-    public PhysicalNetworkServiceProvider 
addDefaultVirtualRouterToPhysicalNetwork(long physicalNetworkId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
     public Map<Capability, String> 
getNetworkOfferingServiceCapabilities(NetworkOffering offering, Service 
service) {
         // TODO Auto-generated method stub
         return null;
@@ -702,17 +696,6 @@ public class MockNetworkManagerImpl implements 
NetworkManager, Manager, NetworkS
         return false;
     }
 
-    @Override
-    public PhysicalNetworkServiceProvider 
addDefaultSecurityGroupProviderToPhysicalNetwork(long physicalNetworkId) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public List<PhysicalNetworkSetupInfo> getPhysicalNetworkInfo(long dcId, 
HypervisorType hypervisorType) {
-        // TODO Auto-generated method stub
-        return null;
-    }
 
        @Override
        public boolean canAddDefaultSecurityGroup() {
@@ -762,114 +745,138 @@ public class MockNetworkManagerImpl implements 
NetworkManager, Manager, NetworkS
         
     }
 
-       @Override
-       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;
-       }
-
-       @Override
-       public void checkCapabilityForProvider(Set<Provider> providers,
-                       Service service, Capability cap, String capValue) {
-               // TODO Auto-generated method stub
-               
-       }
-
-       @Override
-       public Provider getDefaultUniqueProviderForService(String serviceName) {
-               // TODO Auto-generated method stub
-               return null;
-       }
 
-       @Override
-       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.NetworkService#isVmPartOfNetwork(long, long)
+     */
+    @Override
+    public boolean isVmPartOfNetwork(long vmId, long ntwkId) {
+        // TODO Auto-generated method stub
+        return false;
+    }
 
-       @Override
-       public boolean handleSystemIpRelease(IpAddress ip) {
-               // TODO Auto-generated method stub
-               return false;
-       }
+    /* (non-Javadoc)
+     * @see com.cloud.network.NetworkManager#getAccountNetworkDomain(long, 
long)
+     */
+    @Override
+    public String getAccountNetworkDomain(long accountId, long zoneId) {
+        // TODO Auto-generated method stub
+        return null;
+    }
 
-       @Override
-       public void checkNetworkPermissions(Account owner, Network network) {
-               // TODO Auto-generated method stub
-               
-       }
+    /* (non-Javadoc)
+     * @see com.cloud.network.NetworkManager#getDefaultNetworkDomain()
+     */
+    @Override
+    public String getDefaultNetworkDomain() {
+        // TODO Auto-generated method stub
+        return null;
+    }
 
-       @Override
-       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#getNtwkOffDistinctProviders(long)
+     */
+    @Override
+    public List<Provider> getNtwkOffDistinctProviders(long networkId) {
+        // TODO Auto-generated method stub
+        return null;
+    }
 
-       @Override
-       public boolean validateRule(FirewallRule rule) {
-               // TODO Auto-generated method stub
-               return false;
-       }
+    /* (non-Javadoc)
+     * @see com.cloud.network.NetworkService#associateIP(long, java.lang.Long, 
java.lang.Long)
+     */
+    @Override
+    public IpAddress associateIP(long ipId, Long networkId, Long vpcId) throws 
InsufficientAddressCapacityException, ResourceAllocationException, 
ResourceUnavailableException, ConcurrentOperationException {
+        // TODO Auto-generated method stub
+        return null;
+    }
 
+    /* (non-Javadoc)
+     * @see 
com.cloud.network.NetworkManager#allocateNic(com.cloud.vm.NicProfile, 
com.cloud.network.Network, java.lang.Boolean, int, 
com.cloud.vm.VirtualMachineProfile)
+     */
     @Override
-    public String getDefaultManagementTrafficLabel(long zoneId, HypervisorType 
hypervisorType) {
+    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#prepareNic(com.cloud.vm.VirtualMachineProfile, 
com.cloud.deploy.DeployDestination, com.cloud.vm.ReservationContext, long, 
com.cloud.network.NetworkVO)
+     */
     @Override
-    public String getDefaultStorageTrafficLabel(long zoneId, HypervisorType 
hypervisorType) {
+    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#releaseNic(com.cloud.vm.VirtualMachineProfile, 
com.cloud.network.NetworkVO)
+     */
     @Override
-    public Network updateGuestNetwork(long networkId, String name, String 
displayText, Account callerAccount, User callerUser, String domainSuffix, Long 
networkOfferingId, Boolean changeCidr) {
+    public NicProfile releaseNic(VirtualMachineProfile<? extends VMInstanceVO> 
vmProfile, NetworkVO network) throws ConcurrentOperationException, 
ResourceUnavailableException {
         // TODO Auto-generated method stub
         return null;
     }
 
+    /* (non-Javadoc)
+     * @see 
com.cloud.network.NetworkManager#removeNic(com.cloud.vm.VirtualMachineProfile, 
com.cloud.network.Network)
+     */
     @Override
-    public boolean shutdownNetwork(long networkId, ReservationContext context, 
boolean cleanupElements) {
+    public void removeNic(VirtualMachineProfile<? extends VMInstanceVO> vm, 
Network network) {
         // TODO Auto-generated method stub
-        return false;
+        
     }
 
+    /* (non-Javadoc)
+     * @see 
com.cloud.network.NetworkManager#listPublicIpsAssignedToAccount(long, long, 
java.lang.Boolean)
+     */
     @Override
-    public List<? extends Network> 
getIsolatedNetworksWithSourceNATOwnedByAccountInZone(long zoneId, Account 
owner) {
+    public List<IPAddressVO> listPublicIpsAssignedToAccount(long accountId, 
long dcId, Boolean sourceNat) {
         // TODO Auto-generated method stub
         return null;
     }
 
     /* (non-Javadoc)
-     * @see 
com.cloud.network.NetworkManager#listAllNetworksInAllZonesByType(com.cloud.network.Network.GuestType)
+     * @see com.cloud.network.NetworkManager#unassignIPFromVpcNetwork(long)
      */
     @Override
-    public List<NetworkVO> listAllNetworksInAllZonesByType(GuestType type) {
+    public void unassignIPFromVpcNetwork(long ipId) {
         // TODO Auto-generated method stub
-        return null;
+        
     }
-    
+
+    /* (non-Javadoc)
+     * @see 
com.cloud.network.NetworkService#allocateIP(com.cloud.user.Account, boolean, 
long)
+     */
     @Override
-    public String getDefaultPublicTrafficLabel(long dcId, HypervisorType 
vmware) {
+    public IpAddress allocateIP(Account ipOwner, boolean isSystem, long 
zoneId) throws ResourceAllocationException, 
InsufficientAddressCapacityException, ConcurrentOperationException {
         // 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)
+     */
     @Override
-    public String getDefaultGuestTrafficLabel(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.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.NetworkService#listNetworksByVpc(long)
+     */
     @Override
     public List<? extends Network> listNetworksByVpc(long vpcId) {
         // TODO Auto-generated method stub
@@ -877,100 +884,164 @@ public class MockNetworkManagerImpl implements 
NetworkManager, Manager, NetworkS
     }
 
     /* (non-Javadoc)
-     * @see 
com.cloud.network.NetworkManager#getElementImplementingProvider(java.lang.String)
+     * @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 NetworkElement getElementImplementingProvider(String providerName) {
+    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#assignSourceNatIpAddressToGuestNetwork(com.cloud.user.Account,
 com.cloud.network.Network)
+     * @see 
com.cloud.network.NetworkManager#validateRule(com.cloud.network.rules.FirewallRule)
      */
     @Override
-    public PublicIp assignSourceNatIpAddressToGuestNetwork(Account owner, 
Network guestNetwork) throws InsufficientAddressCapacityException, 
ConcurrentOperationException {
+    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)
+     */
+    @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
         return null;
     }
 
     /* (non-Javadoc)
-     * @see 
com.cloud.network.NetworkManager#assignSourceNatIpAddressToVpc(com.cloud.user.Account,
 com.cloud.network.vpc.Vpc)
+     * @see com.cloud.network.NetworkManager#getPhysicalNetworkInfo(long, 
com.cloud.hypervisor.Hypervisor.HypervisorType)
      */
     @Override
-    public PublicIp assignSourceNatIpAddressToVpc(Account owner, Vpc vpc) 
throws InsufficientAddressCapacityException, ConcurrentOperationException {
+    public List<PhysicalNetworkSetupInfo> getPhysicalNetworkInfo(long dcId, 
HypervisorType hypervisorType) {
         // TODO Auto-generated method stub
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkService#allocateIP(long, 
com.cloud.user.Account)
+     * @see 
com.cloud.network.NetworkManager#checkCapabilityForProvider(java.util.Set, 
com.cloud.network.Network.Service, com.cloud.network.Network.Capability, 
java.lang.String)
      */
     @Override
-    public IpAddress allocateIP(long networkId, Account ipOwner) throws 
ResourceAllocationException, InsufficientAddressCapacityException, 
ConcurrentOperationException {
+    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 Provider getDefaultUniqueProviderForService(String serviceName) {
         // TODO Auto-generated method stub
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkService#allocateIP(long, 
com.cloud.user.Account, boolean)
+     * @see com.cloud.network.NetworkManager#assignSystemIp(long, 
com.cloud.user.Account, boolean, boolean)
      */
     @Override
-    public IpAddress allocateIP(long networkId, Account ipOwner, boolean 
isSystem) throws ResourceAllocationException, 
InsufficientAddressCapacityException, ConcurrentOperationException {
+    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.NetworkService#addVmToNetwork(com.cloud.vm.VirtualMachine, 
com.cloud.network.Network)
+     * @see 
com.cloud.network.NetworkManager#handleSystemIpRelease(com.cloud.network.IpAddress)
      */
     @Override
-    public boolean addVmToNetwork(VirtualMachine vm, Network network) {
+    public boolean handleSystemIpRelease(IpAddress ip) {
         // TODO Auto-generated method stub
         return false;
     }
 
     /* (non-Javadoc)
-     * @see 
com.cloud.network.NetworkService#removeVmFromNetwork(com.cloud.vm.VirtualMachine,
 com.cloud.network.Network)
+     * @see 
com.cloud.network.NetworkManager#checkNetworkPermissions(com.cloud.user.Account,
 com.cloud.network.Network)
      */
     @Override
-    public boolean removeVmFromNetwork(VirtualMachine vm, Network network) {
+    public void checkNetworkPermissions(Account owner, Network network) {
         // TODO Auto-generated method stub
-        return false;
+        
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkService#isVmPartOfNetwork(long, long)
+     * @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 boolean isVmPartOfNetwork(long vmId, long ntwkId) {
+    public void allocateDirectIp(NicProfile nic, DataCenter dc, 
VirtualMachineProfile<? extends VirtualMachine> vm, Network network, String 
requestedIp) throws InsufficientVirtualNetworkCapcityException,
+            InsufficientAddressCapacityException {
         // TODO Auto-generated method stub
-        return false;
+        
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#getAccountNetworkDomain(long, 
long)
+     * @see 
com.cloud.network.NetworkManager#getDefaultManagementTrafficLabel(long, 
com.cloud.hypervisor.Hypervisor.HypervisorType)
      */
     @Override
-    public String getAccountNetworkDomain(long accountId, long zoneId) {
+    public String getDefaultManagementTrafficLabel(long zoneId, HypervisorType 
hypervisorType) {
         // TODO Auto-generated method stub
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#getDefaultNetworkDomain()
+     * @see 
com.cloud.network.NetworkManager#getDefaultStorageTrafficLabel(long, 
com.cloud.hypervisor.Hypervisor.HypervisorType)
      */
     @Override
-    public String getDefaultNetworkDomain() {
+    public String getDefaultStorageTrafficLabel(long zoneId, HypervisorType 
hypervisorType) {
         // TODO Auto-generated method stub
         return null;
     }
 
     /* (non-Javadoc)
-     * @see com.cloud.network.NetworkManager#getNtwkOffDistinctProviders(long)
+     * @see 
com.cloud.network.NetworkManager#getDefaultPublicTrafficLabel(long, 
com.cloud.hypervisor.Hypervisor.HypervisorType)
      */
     @Override
-    public List<Provider> getNtwkOffDistinctProviders(long networkId) {
+    public String getDefaultPublicTrafficLabel(long dcId, HypervisorType 
vmware) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see com.cloud.network.NetworkManager#getDefaultGuestTrafficLabel(long, 
com.cloud.hypervisor.Hypervisor.HypervisorType)
+     */
+    @Override
+    public String getDefaultGuestTrafficLabel(long dcId, HypervisorType 
vmware) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see 
com.cloud.network.NetworkManager#getElementImplementingProvider(java.lang.String)
+     */
+    @Override
+    public NetworkElement getElementImplementingProvider(String providerName) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see 
com.cloud.network.NetworkManager#assignSourceNatIpAddressToGuestNetwork(com.cloud.user.Account,
 com.cloud.network.Network)
+     */
+    @Override
+    public PublicIp assignSourceNatIpAddressToGuestNetwork(Account owner, 
Network guestNetwork) throws InsufficientAddressCapacityException, 
ConcurrentOperationException {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    /* (non-Javadoc)
+     * @see 
com.cloud.network.NetworkManager#assignSourceNatIpAddressToVpc(com.cloud.user.Account,
 com.cloud.network.vpc.Vpc)
+     */
+    @Override
+    public PublicIp assignSourceNatIpAddressToVpc(Account owner, Vpc vpc) 
throws InsufficientAddressCapacityException, ConcurrentOperationException {
         // TODO Auto-generated method stub
         return null;
     }

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/929997f5/wscript
----------------------------------------------------------------------
diff --git a/wscript b/wscript
index a3f4822..80f3d56 100644
--- a/wscript
+++ b/wscript
@@ -3,7 +3,7 @@
 
 # the following two variables are used by the target "waf dist"
 # if you change 'em here, you need to change it also in cloud.spec, add a 
%changelog entry there, and add an entry in debian/changelog
-VERSION = '3.0.3.2012-05-29T18:21:13Z'
+VERSION = '3.0.3.2012-05-31T02:45:25Z'
 APPNAME = 'cloud'
 
 import shutil,os

Reply via email to