CLOUDSTACK-1771: fixed VirtualRouter nics assignment in the Shared networks. 
Before the fix VR could get a different IP address from the network upon 
recreation. With the fix the IP address assigned to the first VR in the 
network, will remain with the network till its entire lifecycle (stored in 
placeholder nic) and will be assigned to the VR every time it recreates in the 
network.
Shared networks in both - Advance and Basic - zone types are covered by this 
checkin


Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/70566dd3
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/70566dd3
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/70566dd3

Branch: refs/heads/marvin_refactor
Commit: 70566dd3e4b7ba31b44144ff8b411cbd59531d50
Parents: f4fad9e
Author: Alena Prokharchyk <[email protected]>
Authored: Mon Mar 25 16:34:04 2013 -0700
Committer: Prasanna Santhanam <[email protected]>
Committed: Sun Mar 31 22:05:04 2013 +0530

----------------------------------------------------------------------
 api/src/com/cloud/network/NetworkModel.java        |    2 -
 .../network/ExternalFirewallDeviceManagerImpl.java |    2 +-
 server/src/com/cloud/network/NetworkManager.java   |    4 +-
 .../src/com/cloud/network/NetworkManagerImpl.java  |  104 ++++++---------
 server/src/com/cloud/network/NetworkModelImpl.java |   33 +----
 .../com/cloud/network/guru/DirectNetworkGuru.java  |   10 +-
 .../network/guru/DirectPodBasedNetworkGuru.java    |    8 +-
 .../router/VirtualNetworkApplianceManagerImpl.java |   53 +++----
 .../src/com/cloud/upgrade/dao/Upgrade410to420.java |   45 +------
 server/src/com/cloud/vm/dao/NicDao.java            |    4 +-
 .../com/cloud/network/MockNetworkModelImpl.java    |    6 -
 .../test/com/cloud/vpc/MockNetworkModelImpl.java   |    6 -
 12 files changed, 90 insertions(+), 187 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70566dd3/api/src/com/cloud/network/NetworkModel.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/NetworkModel.java 
b/api/src/com/cloud/network/NetworkModel.java
index c1f1674..916f28a 100644
--- a/api/src/com/cloud/network/NetworkModel.java
+++ b/api/src/com/cloud/network/NetworkModel.java
@@ -261,6 +261,4 @@ public interface NetworkModel {
        String getStartIpv6Address(long id);
 
     Nic getPlaceholderNic(Network network, Long podId);
-
-    boolean isProviderEnabledInZone(long zoneId, String provider);
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70566dd3/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java 
b/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
index ae00bf2..d0ef1bd 100644
--- a/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
+++ b/server/src/com/cloud/network/ExternalFirewallDeviceManagerImpl.java
@@ -428,7 +428,7 @@ public abstract class ExternalFirewallDeviceManagerImpl 
extends AdapterBase impl
         IPAddressVO sourceNatIp = null;
         if (!sharedSourceNat) {
             // Get the source NAT IP address for this account          
-            List<? extends IpAddress> sourceNatIps = 
_networkModel.listPublicIpsAssignedToAccount(network.getAccountId(), 
+            List<? extends IpAddress> sourceNatIps = 
_networkModel.listPublicIpsAssignedToAccount(network.getAccountId(),
                     zoneId, true);
 
             if (sourceNatIps.size() != 1) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70566dd3/server/src/com/cloud/network/NetworkManager.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManager.java 
b/server/src/com/cloud/network/NetworkManager.java
index 851f7f5..e961f04 100755
--- a/server/src/com/cloud/network/NetworkManager.java
+++ b/server/src/com/cloud/network/NetworkManager.java
@@ -20,8 +20,8 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.cloudstack.acl.ControlledEntity.ACLType;
-
 import com.cloud.dc.DataCenter;
+import com.cloud.dc.DataCenterVO;
 import com.cloud.dc.Pod;
 import com.cloud.dc.Vlan.VlanType;
 import com.cloud.deploy.DataCenterDeployment;
@@ -51,11 +51,13 @@ import com.cloud.user.User;
 import com.cloud.utils.Pair;
 import com.cloud.vm.Nic;
 import com.cloud.vm.NicProfile;
+import com.cloud.vm.NicSecondaryIp;
 import com.cloud.vm.NicVO;
 import com.cloud.vm.ReservationContext;
 import com.cloud.vm.VMInstanceVO;
 import com.cloud.vm.VirtualMachine;
 import com.cloud.vm.VirtualMachineProfile;
+import com.cloud.vm.VirtualMachineProfileImpl;
 
 /**
  * NetworkManager manages the network for the different end users.

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70566dd3/server/src/com/cloud/network/NetworkManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkManagerImpl.java 
b/server/src/com/cloud/network/NetworkManagerImpl.java
index c0685ba..226bf05 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -243,41 +243,16 @@ public class NetworkManagerImpl extends ManagerBase 
implements NetworkManager, L
     @Inject
     PodVlanMapDao _podVlanMapDao;
 
+    @Inject 
     List<NetworkGuru> _networkGurus;
-    public List<NetworkGuru> getNetworkGurus() {
-               return _networkGurus;
-       }
-       public void setNetworkGurus(List<NetworkGuru> _networkGurus) {
-               this._networkGurus = _networkGurus;
-       }
-
-       List<NetworkElement> _networkElements;
-    public List<NetworkElement> getNetworkElements() {
-               return _networkElements;
-       }
-       public void setNetworkElements(List<NetworkElement> _networkElements) {
-               this._networkElements = _networkElements;
-       }
-
-       @Inject NetworkDomainDao _networkDomainDao;
-
-       List<IpDeployer> _ipDeployers;
-    public List<IpDeployer> getIpDeployers() {
-               return _ipDeployers;
-       }
-       public void setIpDeployers(List<IpDeployer> _ipDeployers) {
-               this._ipDeployers = _ipDeployers;
-       }
-
-       List<DhcpServiceProvider> _dhcpProviders;
-    public List<DhcpServiceProvider> getDhcpProviders() {
-               return _dhcpProviders;
-       }
-       public void setDhcpProviders(List<DhcpServiceProvider> _dhcpProviders) {
-               this._dhcpProviders = _dhcpProviders;
-       }
-
-       @Inject
+
+    @Inject  protected List<NetworkElement> _networkElements;
+
+    @Inject NetworkDomainDao _networkDomainDao;
+    @Inject List<IpDeployer> _ipDeployers;
+    @Inject List<DhcpServiceProvider> _dhcpProviders;
+ 
+    @Inject
     VMInstanceDao _vmDao;
     @Inject
     FirewallManager _firewallMgr;
@@ -611,10 +586,10 @@ public class NetworkManagerImpl extends ManagerBase 
implements NetworkManager, L
                 }
                 IpDeployer deployer = null;
                 NetworkElement element = 
_networkModel.getElementImplementingProvider(provider.getName());
-                if (!(element instanceof IpDeployingRequester)) {
+                if (!(ComponentContext.getTargetObject(element) instanceof 
IpDeployingRequester)) {
                     throw new CloudRuntimeException("Element " + element + " 
is not a IpDeployingRequester!");
                 }
-                deployer = 
((IpDeployingRequester)element).getIpDeployer(network);
+                deployer = 
((IpDeployingRequester)ComponentContext.getTargetObject(element)).getIpDeployer(network);
                 if (deployer == null) {
                     throw new CloudRuntimeException("Fail to get ip deployer 
for element: " + element);
                 }
@@ -1528,6 +1503,7 @@ public class NetworkManagerImpl extends ManagerBase 
implements NetworkManager, L
         // associate a source NAT IP (if one isn't already associated with the 
network)
 
         boolean sharedSourceNat = offering.getSharedSourceNat();
+        DataCenter zone = _dcDao.findById(network.getDataCenterId());
         if (network.getGuestType() == Network.GuestType.Isolated
                && _networkModel.areServicesSupportedInNetwork(network.getId(), 
Service.SourceNat)
                && !sharedSourceNat) {
@@ -1593,13 +1569,13 @@ public class NetworkManagerImpl extends ManagerBase 
implements NetworkManager, L
         if (vmProfile.getType() == Type.User && element.getProvider() != null) 
{
             if (_networkModel.areServicesSupportedInNetwork(network.getId(), 
Service.Dhcp) &&
                     
_networkModel.isProviderSupportServiceInNetwork(network.getId(), Service.Dhcp, 
element.getProvider()) &&
-                    element instanceof DhcpServiceProvider) {
+                    (ComponentContext.getTargetObject(element) instanceof 
DhcpServiceProvider)) {
                 DhcpServiceProvider sp = (DhcpServiceProvider) element;
                 sp.addDhcpEntry(network, profile, vmProfile, dest, context);
             }
             if (_networkModel.areServicesSupportedInNetwork(network.getId(), 
Service.UserData) &&
                     
_networkModel.isProviderSupportServiceInNetwork(network.getId(), 
Service.UserData, element.getProvider()) &&
-                    element instanceof UserDataServiceProvider) {
+                    (ComponentContext.getTargetObject(element) instanceof 
UserDataServiceProvider)) {
                 UserDataServiceProvider sp = (UserDataServiceProvider) element;
                 sp.addPasswordAndUserdata(network, profile, vmProfile, dest, 
context);
             }
@@ -2063,7 +2039,7 @@ public class NetworkManagerImpl extends ManagerBase 
implements NetworkManager, L
             userNetwork.setIp6Cidr(ip6Cidr);
             userNetwork.setIp6Gateway(ip6Gateway);
         }
-        
+
         if (vlanId != null) {
             userNetwork.setBroadcastUri(URI.create("vlan://" + vlanId));
             userNetwork.setBroadcastDomainType(BroadcastDomainType.Vlan);
@@ -3469,29 +3445,29 @@ public class NetworkManagerImpl extends ManagerBase 
implements NetworkManager, L
                                                         String requestedIpv4, 
String requestedIpv6) throws InsufficientVirtualNetworkCapcityException,
             InsufficientAddressCapacityException {
        boolean ipv4 = false, ipv6 = false;
-       
-       Transaction txn = Transaction.currentTxn();
+
+       Transaction txn = Transaction.currentTxn();
         txn.start();
-        
+
        if (network.getGateway() != null) {
                if (nic.getIp4Address() == null) {
                        ipv4 = true;
-                       PublicIp ip = null;
-                       
-                       //Get ip address from the placeholder and don't 
allocate a new one
-                       if (requestedIpv4 != null && vm.getType() == 
VirtualMachine.Type.DomainRouter) {
-                           Nic placeholderNic = 
_networkModel.getPlaceholderNic(network, null);
-                           if (placeholderNic != null) {
-                               IPAddressVO userIp = 
_ipAddressDao.findByIpAndSourceNetworkId(network.getId(), 
placeholderNic.getIp4Address());
+                       PublicIp ip = null;
+
+                       //Get ip address from the placeholder and don't 
allocate a new one
+                       if (requestedIpv4 != null && vm.getType() == 
VirtualMachine.Type.DomainRouter) {
+                           Nic placeholderNic = 
_networkModel.getPlaceholderNic(network, null);
+                           if (placeholderNic != null) {
+                               IPAddressVO userIp = 
_ipAddressDao.findByIpAndSourceNetworkId(network.getId(), 
placeholderNic.getIp4Address());
                         ip = PublicIp.createFromAddrAndVlan(userIp, 
_vlanDao.findById(userIp.getVlanId()));
                         s_logger.debug("Nic got an ip address " + 
placeholderNic.getIp4Address() + " stored in placeholder nic for the network " 
+ network);
                     }
-                       }
-                       
-                       if (ip == null) {
+                       }
+
+                       if (ip == null) {
                     ip = assignPublicIpAddress(dc.getId(), null, 
vm.getOwner(), VlanType.DirectAttached, network.getId(), requestedIpv4, false);
-                       }
-                                               
+                       }
+
                        nic.setIp4Address(ip.getAddress().toString());
                        nic.setGateway(ip.getGateway());
                        nic.setNetmask(ip.getNetmask());
@@ -3506,7 +3482,7 @@ public class NetworkManagerImpl extends ManagerBase 
implements NetworkManager, L
                nic.setDns2(dc.getDns2());
        }
        
-       //FIXME - get ipv6 address from the placeholder if it's stored there
+       //FIXME - get ipv6 address from the placeholder if it's stored there
        if (network.getIp6Gateway() != null) {
                if (nic.getIp6Address() == null) {
                        ipv6 = true;
@@ -3529,8 +3505,8 @@ public class NetworkManagerImpl extends ManagerBase 
implements NetworkManager, L
                nic.setIp6Dns1(dc.getIp6Dns1());
                nic.setIp6Dns2(dc.getIp6Dns2());
        }
-       
-       txn.commit();
+
+       txn.commit();
     }
 
        @Override
@@ -3677,15 +3653,15 @@ public class NetworkManagerImpl extends ManagerBase 
implements NetworkManager, L
     @Override
     public StaticNatServiceProvider getStaticNatProviderForNetwork(Network 
network) {
         NetworkElement element = getElementForServiceInNetwork(network, 
Service.StaticNat);
-        assert element instanceof StaticNatServiceProvider;
-        return (StaticNatServiceProvider)element;
+        assert ComponentContext.getTargetObject(element) instanceof 
StaticNatServiceProvider;
+        return 
(StaticNatServiceProvider)ComponentContext.getTargetObject(element);
     }
 
     @Override
     public LoadBalancingServiceProvider 
getLoadBalancingProviderForNetwork(Network network) {
         NetworkElement element = getElementForServiceInNetwork(network, 
Service.Lb);
-        assert element instanceof LoadBalancingServiceProvider; 
-        return (LoadBalancingServiceProvider)element;
+        assert ComponentContext.getTargetObject(element) instanceof 
LoadBalancingServiceProvider; 
+        return ( 
LoadBalancingServiceProvider)ComponentContext.getTargetObject(element);
     }
     @Override
     public boolean isNetworkInlineMode(Network network) {
@@ -3734,14 +3710,14 @@ public class NetworkManagerImpl extends ManagerBase 
implements NetworkManager, L
             Ip ipAddr = ip.getAddress();
             return ipAddr.addr();
         }
-        
+
         @Override
         public NicVO savePlaceholderNic(Network network, String ip4Address) {
-            NicVO nic = new NicVO(null, null, network.getId(), null); 
+            NicVO nic = new NicVO(null, null, network.getId(), null);
             nic.setIp4Address(ip4Address);
             nic.setReservationStrategy(ReservationStrategy.PlaceHolder);
             nic.setState(Nic.State.Reserved);
             return _nicDao.persist(nic);
         }
-        
+
  }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70566dd3/server/src/com/cloud/network/NetworkModelImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkModelImpl.java 
b/server/src/com/cloud/network/NetworkModelImpl.java
index d967f33..d1326b5 100644
--- a/server/src/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/com/cloud/network/NetworkModelImpl.java
@@ -143,15 +143,9 @@ public class NetworkModelImpl extends ManagerBase 
implements NetworkModel {
     @Inject
     PodVlanMapDao _podVlanMapDao;
 
-    List<NetworkElement> _networkElements;
-    public List<NetworkElement> getNetworkElements() {
-               return _networkElements;
-       }
-       public void setNetworkElements(List<NetworkElement> _networkElements) {
-               this._networkElements = _networkElements;
-       }
-
-       @Inject
+    @Inject List<NetworkElement> _networkElements;
+    
+    @Inject
     NetworkDomainDao _networkDomainDao;
     @Inject
     VMInstanceDao _vmDao;
@@ -404,9 +398,9 @@ public class NetworkModelImpl extends ManagerBase 
implements NetworkModel {
         Network network = _networksDao.findById(networkId);
         NetworkElement oldElement = 
getElementImplementingProvider(oldProvider.getName());
         NetworkElement newElement = 
getElementImplementingProvider(newProvider.getName());
-        if (oldElement instanceof IpDeployingRequester && newElement 
instanceof IpDeployingRequester) {
-               IpDeployer oldIpDeployer = 
((IpDeployingRequester)oldElement).getIpDeployer(network);
-               IpDeployer newIpDeployer = 
((IpDeployingRequester)newElement).getIpDeployer(network);
+        if (ComponentContext.getTargetObject(oldElement) instanceof 
IpDeployingRequester && ComponentContext.getTargetObject(newElement) instanceof 
IpDeployingRequester) {
+               IpDeployer oldIpDeployer = 
((IpDeployingRequester)ComponentContext.getTargetObject(oldElement)).getIpDeployer(network);
+               IpDeployer newIpDeployer = 
((IpDeployingRequester)ComponentContext.getTargetObject(newElement)).getIpDeployer(network);
                if 
(!oldIpDeployer.getProvider().getName().equals(newIpDeployer.getProvider().getName()))
 {
                        throw new InvalidParameterException("There would be 
multiple providers for IP " + publicIp.getAddress() + "!");
                }
@@ -1212,19 +1206,6 @@ public class NetworkModelImpl extends ManagerBase 
implements NetworkModel {
         }
         return isProviderEnabled(ntwkSvcProvider);
     }
-    
-    @Override
-    public boolean isProviderEnabledInZone(long zoneId, String provider)
-    {
-        //the provider has to be enabled at least in one network in the zone
-        for (PhysicalNetwork pNtwk : _physicalNetworkDao.listByZone(zoneId)) {
-            if (isProviderEnabledInPhysicalNetwork(pNtwk.getId(), provider)) {
-                return true;
-            }
-        }
-        
-        return false;
-    }
 
     @Override
     public String getNetworkTag(HypervisorType hType, Network network) {
@@ -2012,7 +1993,7 @@ public class NetworkModelImpl extends ManagerBase 
implements NetworkModel {
        }
                return startIpv6;
        }
-       
+
     @Override
     public NicVO getPlaceholderNic(Network network, Long podId) {
         List<NicVO> nics = 
_nicDao.listPlaceholderNicsByNetworkId(network.getId());

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70566dd3/server/src/com/cloud/network/guru/DirectNetworkGuru.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/guru/DirectNetworkGuru.java 
b/server/src/com/cloud/network/guru/DirectNetworkGuru.java
index 2c8acbb..c53bbb7 100755
--- a/server/src/com/cloud/network/guru/DirectNetworkGuru.java
+++ b/server/src/com/cloud/network/guru/DirectNetworkGuru.java
@@ -220,7 +220,7 @@ public class DirectNetworkGuru extends AdapterBase 
implements NetworkGuru {
     protected void allocateDirectIp(NicProfile nic, Network network, 
VirtualMachineProfile<? extends VirtualMachine> vm, DataCenter dc, String 
requestedIp4Addr, String requestedIp6Addr)
             throws InsufficientVirtualNetworkCapcityException,
             InsufficientAddressCapacityException {
-        
+
         //FIXME - save ipv6 informaiton in the placeholder nic
         Transaction txn = Transaction.currentTxn();
         txn.start();
@@ -257,7 +257,7 @@ public class DirectNetworkGuru extends AdapterBase 
implements NetworkGuru {
             if (ip != null) {
                 Transaction txn = Transaction.currentTxn();
                 txn.start();
-                
+
                 // if the ip address a part of placeholder, don't release it
                 Nic placeholderNic = _networkModel.getPlaceholderNic(network, 
null);
                 if (placeholderNic != null && 
placeholderNic.getIp4Address().equalsIgnoreCase(ip.getAddress().addr())) {
@@ -266,7 +266,7 @@ public class DirectNetworkGuru extends AdapterBase 
implements NetworkGuru {
                     _networkMgr.markIpAsUnavailable(ip.getId());
                     _ipAddressDao.unassignIpAddress(ip.getId());
                 }
-               
+
                 //unassign nic secondary ip address
                 s_logger.debug("remove nic " + nic.getId() + " secondary ip ");
                 List<String> nicSecIps = null;
@@ -276,7 +276,7 @@ public class DirectNetworkGuru extends AdapterBase 
implements NetworkGuru {
                     _networkMgr.markIpAsUnavailable(pubIp.getId());
                     _ipAddressDao.unassignIpAddress(pubIp.getId());
                 }
-    
+
                 txn.commit();
             }
        }
@@ -308,7 +308,7 @@ public class DirectNetworkGuru extends AdapterBase 
implements NetworkGuru {
                 _nicDao.remove(nic.getId());
             }
         }
-        
+
         txn.commit();
         return true;
     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70566dd3/server/src/com/cloud/network/guru/DirectPodBasedNetworkGuru.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/guru/DirectPodBasedNetworkGuru.java 
b/server/src/com/cloud/network/guru/DirectPodBasedNetworkGuru.java
index d74cd06..8f15d5a 100755
--- a/server/src/com/cloud/network/guru/DirectPodBasedNetworkGuru.java
+++ b/server/src/com/cloud/network/guru/DirectPodBasedNetworkGuru.java
@@ -164,7 +164,7 @@ public class DirectPodBasedNetworkGuru extends 
DirectNetworkGuru {
         if (nic.getIp4Address() == null) {
             Transaction txn = Transaction.currentTxn();
             txn.start();
-            
+
             PublicIp ip = null;
             List<PodVlanMapVO> podRefs = 
_podVlanDao.listPodVlanMapsByPod(pod.getId());
             String podRangeGateway = null;
@@ -180,11 +180,11 @@ public class DirectPodBasedNetworkGuru extends 
DirectNetworkGuru {
                     s_logger.debug("Nic got an ip address " + 
placeholderNic.getIp4Address() + " stored in placeholder nic for the network " 
+ network + " and gateway " + podRangeGateway);
                 }
             }
-            
+
             if (ip == null) {
                 ip = _networkMgr.assignPublicIpAddress(dc.getId(), 
pod.getId(), vm.getOwner(), VlanType.DirectAttached, network.getId(), null, 
false);
             }
-            
+
             nic.setIp4Address(ip.getAddress().toString());
             nic.setFormat(AddressFormat.Ip4);
             nic.setGateway(ip.getGateway());
@@ -196,7 +196,7 @@ public class DirectPodBasedNetworkGuru extends 
DirectNetworkGuru {
             }
             nic.setReservationId(String.valueOf(ip.getVlanTag()));
             nic.setMacAddress(ip.getMacAddress());
-            
+
             //save the placeholder nic if the vm is the Virtual router
             if (vm.getType() == VirtualMachine.Type.DomainRouter) {
                 Nic placeholderNic = _networkModel.getPlaceholderNic(network, 
null);

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70566dd3/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java 
b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
index 67c94fc..50188e7 100755
--- 
a/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
+++ 
b/server/src/com/cloud/network/router/VirtualNetworkApplianceManagerImpl.java
@@ -303,6 +303,8 @@ public class VirtualNetworkApplianceManagerImpl extends 
ManagerBase implements V
     @Inject
     VpnUserDao _vpnUsersDao;
     @Inject
+    RemoteAccessVpnDao _remoteAccessVpnDao;
+    @Inject
     RulesManager _rulesMgr;
     @Inject
     NetworkDao _networkDao;
@@ -1275,22 +1277,13 @@ public class VirtualNetworkApplianceManagerImpl extends 
ManagerBase implements V
                      * We update the router pair which the lower id router 
owned by this mgmt server, in order
                      * to prevent duplicate update of router status from 
cluster mgmt servers
                      */
-                    DomainRouterVO router0 = routers.get(0);
-                    DomainRouterVO router1 = routers.get(1);
-                    DomainRouterVO router = router0;
-                    if ((router0.getId() < router1.getId()) && 
router0.getHostId() != null) {
-                       router = router0;
-                    } else {
-                       router = router1;
-                    }
-                    if (router.getHostId() == null) {
-                       s_logger.debug("Skip router pair (" + 
router0.getInstanceName() + "," + router1.getInstanceName() + ") due to can't 
find host");
-                       continue;
+                    DomainRouterVO router = routers.get(0);
+                    if (routers.get(1).getId() < router.getId()) {
+                        router = routers.get(1);
                     }
                     HostVO host = _hostDao.findById(router.getHostId());
                     if (host == null || host.getManagementServerId() == null ||
                             host.getManagementServerId() != 
ManagementServerNode.getManagementServerId()) {
-                       s_logger.debug("Skip router pair (" + 
router0.getInstanceName() + "," + router1.getInstanceName() + ") due to not 
belong to this mgmt server");
                         continue;
                     }
                 updateRoutersRedundantState(routers);
@@ -1706,30 +1699,30 @@ public class VirtualNetworkApplianceManagerImpl extends 
ManagerBase implements V
             String defaultNetworkStartIp = null, defaultNetworkStartIpv6 = 
null;
             if (!setupPublicNetwork) {
                if (guestNetwork.getCidr() != null) {
-                   //Check the placeholder nic, and if it's ip address is not 
empty, allocate it from there
-                   String requestedGateway = null;
-                   if (guestNetwork.getGateway() != null) {
-                       requestedGateway = guestNetwork.getGateway();
-                   } else if (plan != null && plan.getPodId() != null) {
-                       Pod pod = _configMgr.getPod(plan.getPodId());
-                       requestedGateway = pod.getGateway();
-                   }
-                   Nic placeholder = 
_networkModel.getPlaceholderNic(guestNetwork, null);
-                   if (placeholder != null) {
-                       s_logger.debug("Requesting ip address " + 
placeholder.getIp4Address() + " stored in placeholder nic for the network " + 
guestNetwork);
-                       defaultNetworkStartIp = placeholder.getIp4Address();
-                   } else {
-                       String startIp = 
_networkModel.getStartIpAddress(guestNetwork.getId());
+                   //Check the placeholder nic, and if it's ip address is not 
empty, allocate it from there
+                   String requestedGateway = null;
+                   if (guestNetwork.getGateway() != null) {
+                       requestedGateway = guestNetwork.getGateway();
+                   } else if (plan != null && plan.getPodId() != null) {
+                       Pod pod = _configMgr.getPod(plan.getPodId());
+                       requestedGateway = pod.getGateway();
+                   }
+                   Nic placeholder = 
_networkModel.getPlaceholderNic(guestNetwork, null);
+                   if (placeholder != null) {
+                       s_logger.debug("Requesting ip address " + 
placeholder.getIp4Address() + " stored in placeholder nic for the network " + 
guestNetwork);
+                       defaultNetworkStartIp = placeholder.getIp4Address();
+                   } else {
+                       String startIp = 
_networkModel.getStartIpAddress(guestNetwork.getId());
                         if (startIp != null && 
_ipAddressDao.findByIpAndSourceNetworkId(guestNetwork.getId(), 
startIp).getAllocatedTime() == null) {
                             defaultNetworkStartIp = startIp;
                         } else if (s_logger.isDebugEnabled()){
-                            s_logger.debug("First ip " + startIp + " in 
network id=" + guestNetwork.getId() + 
+                            s_logger.debug("First ip " + startIp + " in 
network id=" + guestNetwork.getId() +
                                     " is already allocated, can't use it for 
domain router; will get random ip address from the range");
                         }
-                   }
+                   }
                }
                
-               //FIXME - get ipv6 stored in the placeholder
+               //FIXME - get ipv6 stored in the placeholder
                if (guestNetwork.getIp6Cidr() != null) {
                        String startIpv6 = 
_networkModel.getStartIpv6Address(guestNetwork.getId());
                        if (startIpv6 != null && 
_ipv6Dao.findByNetworkIdAndIp(guestNetwork.getId(), startIpv6) == null) {
@@ -2344,7 +2337,7 @@ public class VirtualNetworkApplianceManagerImpl extends 
ManagerBase implements V
                 }
       
                 if 
(_networkModel.isProviderSupportServiceInNetwork(guestNetworkId, Service.Vpn, 
provider)) {
-                    RemoteAccessVpn vpn = 
_vpnDao.findByPublicIpAddress(ip.getId());
+                    RemoteAccessVpn vpn = _vpnDao.findById(ip.getId());
                     if (vpn != null) {
                         vpns.add(vpn);
                     }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70566dd3/server/src/com/cloud/upgrade/dao/Upgrade410to420.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/upgrade/dao/Upgrade410to420.java 
b/server/src/com/cloud/upgrade/dao/Upgrade410to420.java
index d26da4d..dd0aa3e 100644
--- a/server/src/com/cloud/upgrade/dao/Upgrade410to420.java
+++ b/server/src/com/cloud/upgrade/dao/Upgrade410to420.java
@@ -17,6 +17,9 @@
 
 package com.cloud.upgrade.dao;
 
+import com.cloud.utils.exception.CloudRuntimeException;
+import com.cloud.utils.script.Script;
+
 import java.io.File;
 import java.sql.Connection;
 import java.sql.PreparedStatement;
@@ -26,9 +29,6 @@ import java.util.UUID;
 
 import org.apache.log4j.Logger;
 
-import com.cloud.utils.exception.CloudRuntimeException;
-import com.cloud.utils.script.Script;
-
 public class Upgrade410to420 implements DbUpgrade {
        final static Logger s_logger = Logger.getLogger(Upgrade410to420.class);
 
@@ -61,7 +61,6 @@ public class Upgrade410to420 implements DbUpgrade {
        public void performDataMigration(Connection conn) {
         upgradeVmwareLabels(conn);
         createPlaceHolderNics(conn);
-        updateRemoteAccessVpn(conn);
         PreparedStatement sql = null;
         try {
             sql = conn.prepareStatement("update vm_template set 
image_data_store_id = 1 where type = 'SYSTEM' or type = 'BUILTIN'");
@@ -160,7 +159,7 @@ public class Upgrade410to420 implements DbUpgrade {
             }
         }
     }
-    
+
     private void createPlaceHolderNics(Connection conn) {
         PreparedStatement pstmt = null;
         ResultSet rs = null;
@@ -181,44 +180,10 @@ public class Upgrade410to420 implements DbUpgrade {
                     pstmt.setLong(4, networkId);
                     pstmt.executeUpdate();
                     s_logger.debug("Created placeholder nic for the ipAddress 
" + ip);
-                
-            }
-        } catch (SQLException e) {
-            throw new CloudRuntimeException("Unable to create placeholder 
nics", e);
-        } finally {
-            try {
-                if (rs != null) {
-                    rs.close();
-                }
-                if (pstmt != null) {
-                    pstmt.close();
-                }
-            } catch (SQLException e) {
-            }
-        }
-    }
-    
-    
-    private void updateRemoteAccessVpn(Connection conn) {
-        PreparedStatement pstmt = null;
-        ResultSet rs = null;
 
-        try {
-            pstmt = conn.prepareStatement("SELECT vpn_server_addr_id FROM 
`cloud`.`remote_access_vpn`");
-            rs = pstmt.executeQuery();
-            long id=1;
-            while (rs.next()) {
-                    String uuid = UUID.randomUUID().toString();
-                    Long ipId = rs.getLong(1);
-                    pstmt = conn.prepareStatement("UPDATE 
`cloud`.`remote_access_vpn` set uuid=?, id=? where vpn_server_addr_id=?");
-                    pstmt.setString(1, uuid);
-                    pstmt.setLong(2, id);
-                    pstmt.setLong(3, ipId);
-                    pstmt.executeUpdate();
-                    id++;
             }
         } catch (SQLException e) {
-            throw new CloudRuntimeException("Unable to update id/uuid of 
remote_access_vpn table", e);
+            throw new CloudRuntimeException("Unable to create placeholder 
nics", e);
         } finally {
             try {
                 if (rs != null) {

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70566dd3/server/src/com/cloud/vm/dao/NicDao.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/dao/NicDao.java 
b/server/src/com/cloud/vm/dao/NicDao.java
index eb38a8d..67b9d12 100644
--- a/server/src/com/cloud/vm/dao/NicDao.java
+++ b/server/src/com/cloud/vm/dao/NicDao.java
@@ -62,7 +62,7 @@ public interface NicDao extends GenericDao<NicVO, Long> {
     List<NicVO> listByVmIdAndNicId(Long vmId, Long nicId);
 
     NicVO findByIp4AddressAndVmId(String ip4Address, long instance);
-    
+
     List<NicVO> listPlaceholderNicsByNetworkId(long networkId);
-    
+
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70566dd3/server/test/com/cloud/network/MockNetworkModelImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/network/MockNetworkModelImpl.java 
b/server/test/com/cloud/network/MockNetworkModelImpl.java
index c578965..b926519 100644
--- a/server/test/com/cloud/network/MockNetworkModelImpl.java
+++ b/server/test/com/cloud/network/MockNetworkModelImpl.java
@@ -844,10 +844,4 @@ public class MockNetworkModelImpl extends ManagerBase 
implements NetworkModel {
         // TODO Auto-generated method stub
         return null;
     }
-
-    @Override
-    public boolean isProviderEnabledInZone(long zoneId, String provider) {
-        // TODO Auto-generated method stub
-        return false;
-    }
 }

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/70566dd3/server/test/com/cloud/vpc/MockNetworkModelImpl.java
----------------------------------------------------------------------
diff --git a/server/test/com/cloud/vpc/MockNetworkModelImpl.java 
b/server/test/com/cloud/vpc/MockNetworkModelImpl.java
index e1534cb..b05e8ea 100644
--- a/server/test/com/cloud/vpc/MockNetworkModelImpl.java
+++ b/server/test/com/cloud/vpc/MockNetworkModelImpl.java
@@ -857,10 +857,4 @@ public class MockNetworkModelImpl extends ManagerBase 
implements NetworkModel {
         return null;
     }
 
-    @Override
-    public boolean isProviderEnabledInZone(long zoneId, String provider) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
 }

Reply via email to