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/18 02:01:23 UTC
[3/39] git commit: Rationalize the interface by injecting all service
providers by the service provider interface instead of assuming everybody
implements NetworkElement. This is step 2 and includes all the plugins import
cleanups - remove unneeded and a
Rationalize the interface by injecting all service providers by the service provider interface instead of assuming everybody implements NetworkElement. This is step 2 and includes all the plugins
import cleanups - remove unneeded and add explicit classes
Signed-off-by: Chiradeep Vittal <ch...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/e37f458a
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/e37f458a
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/e37f458a
Branch: refs/heads/master
Commit: e37f458a8dae361fafaf39e580236fa75ced1801
Parents: 3529c47
Author: Chiradeep Vittal <ch...@apache.org>
Authored: Fri Jan 4 13:58:37 2013 -0800
Committer: Chiradeep Vittal <ch...@apache.org>
Committed: Fri Jan 4 15:13:47 2013 -0800
----------------------------------------------------------------------
.../element/F5ExternalLoadBalancerElement.java | 3 +-
.../element/JuniperSRXExternalFirewallElement.java | 4 +-
.../cloud/network/element/NetscalerElement.java | 2 +-
.../cloud/network/element/NiciraNvpElement.java | 4 +-
.../src/com/cloud/network/element/OvsElement.java | 2 +-
server/src/com/cloud/network/NetworkManager.java | 4 -
.../src/com/cloud/network/NetworkManagerImpl.java | 94 ++++++++-------
.../network/element/VpcVirtualRouterElement.java | 2 +-
8 files changed, 61 insertions(+), 54 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37f458a/plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java b/plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java
index 579a462..b5f6248 100644
--- a/plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java
+++ b/plugins/network-elements/f5/src/com/cloud/network/element/F5ExternalLoadBalancerElement.java
@@ -88,7 +88,8 @@ import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
import com.google.gson.Gson;
-@Local(value = NetworkElement.class)
+@Local(value = {NetworkElement.class, LoadBalancingServiceProvider.class,
+ IpDeployer.class})
public class F5ExternalLoadBalancerElement extends ExternalLoadBalancerDeviceManagerImpl implements LoadBalancingServiceProvider, IpDeployer, F5ExternalLoadBalancerElementService, ExternalLoadBalancerDeviceManager {
private static final Logger s_logger = Logger.getLogger(F5ExternalLoadBalancerElement.class);
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37f458a/plugins/network-elements/juniper-srx/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/juniper-srx/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java b/plugins/network-elements/juniper-srx/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java
index fc47f3d..29daf3a 100644
--- a/plugins/network-elements/juniper-srx/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java
+++ b/plugins/network-elements/juniper-srx/src/com/cloud/network/element/JuniperSRXExternalFirewallElement.java
@@ -88,7 +88,9 @@ import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
-@Local(value = {NetworkElement.class, FirewallServiceProvider.class})
+@Local(value = {NetworkElement.class, FirewallServiceProvider.class,
+ PortForwardingServiceProvider.class, IpDeployer.class,
+ SourceNatServiceProvider.class, RemoteAccessVPNServiceProvider.class})
public class JuniperSRXExternalFirewallElement extends ExternalFirewallDeviceManagerImpl implements SourceNatServiceProvider, FirewallServiceProvider,
PortForwardingServiceProvider, RemoteAccessVPNServiceProvider, IpDeployer, JuniperSRXFirewallElementService {
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37f458a/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java b/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
index 987e937..a1528ce 100644
--- a/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
+++ b/plugins/network-elements/netscaler/src/com/cloud/network/element/NetscalerElement.java
@@ -108,7 +108,7 @@ import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
import com.google.gson.Gson;
-@Local(value = NetworkElement.class)
+@Local(value = {NetworkElement.class, StaticNatServiceProvider.class, LoadBalancingServiceProvider.class})
public class NetscalerElement extends ExternalLoadBalancerDeviceManagerImpl implements LoadBalancingServiceProvider, NetscalerLoadBalancerElementService, ExternalLoadBalancerDeviceManager, IpDeployer,
StaticNatServiceProvider {
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37f458a/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java b/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
index 0a7d042..90866ed 100644
--- a/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
+++ b/plugins/network-elements/nicira-nvp/src/com/cloud/network/element/NiciraNvpElement.java
@@ -122,7 +122,9 @@ import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.dao.NicDao;
-@Local(value = NetworkElement.class)
+@Local(value = {NetworkElement.class, ConnectivityProvider.class,
+ SourceNatServiceProvider.class, StaticNatServiceProvider.class,
+ PortForwardingServiceProvider.class, IpDeployer.class} )
public class NiciraNvpElement extends AdapterBase implements
ConnectivityProvider, SourceNatServiceProvider,
PortForwardingServiceProvider, StaticNatServiceProvider,
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37f458a/plugins/network-elements/ovs/src/com/cloud/network/element/OvsElement.java
----------------------------------------------------------------------
diff --git a/plugins/network-elements/ovs/src/com/cloud/network/element/OvsElement.java b/plugins/network-elements/ovs/src/com/cloud/network/element/OvsElement.java
index 5e8639c..e828558 100644
--- a/plugins/network-elements/ovs/src/com/cloud/network/element/OvsElement.java
+++ b/plugins/network-elements/ovs/src/com/cloud/network/element/OvsElement.java
@@ -40,7 +40,7 @@ import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachineProfile;
-@Local(value = NetworkElement.class)
+@Local(value = {NetworkElement.class})
public class OvsElement extends AdapterBase implements NetworkElement {
@Inject
OvsTunnelManager _ovsTunnelMgr;
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37f458a/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 057f473..0646789 100755
--- a/server/src/com/cloud/network/NetworkManager.java
+++ b/server/src/com/cloud/network/NetworkManager.java
@@ -139,11 +139,7 @@ public interface NetworkManager extends NetworkService {
boolean applyRules(List<? extends FirewallRule> rules, boolean continueOnError) throws ResourceUnavailableException;
public boolean validateRule(FirewallRule rule);
-
- List<? extends RemoteAccessVPNServiceProvider> getRemoteAccessVpnElements();
- List<? extends Site2SiteVpnServiceProvider> getSite2SiteVpnElements();
-
PublicIpAddress getPublicIpAddress(long ipAddressId);
List<? extends Vlan> listPodVlans(long podId);
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37f458a/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 ef331e5..a1604ae 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -67,8 +67,28 @@ import com.cloud.network.Networks.TrafficType;
import com.cloud.network.PhysicalNetwork.BroadcastDomainRange;
import com.cloud.network.VirtualRouterProvider.VirtualRouterProviderType;
import com.cloud.network.addr.PublicIp;
-import com.cloud.network.dao.*;
-import com.cloud.network.element.*;
+import com.cloud.network.dao.FirewallRulesDao;
+import com.cloud.network.dao.IPAddressDao;
+import com.cloud.network.dao.LoadBalancerDao;
+import com.cloud.network.dao.NetworkDao;
+import com.cloud.network.dao.NetworkDomainDao;
+import com.cloud.network.dao.NetworkServiceMapDao;
+import com.cloud.network.dao.PhysicalNetworkDao;
+import com.cloud.network.dao.PhysicalNetworkServiceProviderDao;
+import com.cloud.network.dao.PhysicalNetworkServiceProviderVO;
+import com.cloud.network.dao.PhysicalNetworkTrafficTypeDao;
+import com.cloud.network.dao.PhysicalNetworkTrafficTypeVO;
+import com.cloud.network.element.DhcpServiceProvider;
+import com.cloud.network.element.FirewallServiceProvider;
+import com.cloud.network.element.IpDeployer;
+import com.cloud.network.element.LoadBalancingServiceProvider;
+import com.cloud.network.element.NetworkACLServiceProvider;
+import com.cloud.network.element.NetworkElement;
+import com.cloud.network.element.PortForwardingServiceProvider;
+import com.cloud.network.element.StaticNatServiceProvider;
+import com.cloud.network.element.UserDataServiceProvider;
+import com.cloud.network.element.VirtualRouterElement;
+import com.cloud.network.element.VpcVirtualRouterElement;
import com.cloud.network.guru.NetworkGuru;
import com.cloud.network.lb.LoadBalancingRule;
import com.cloud.network.lb.LoadBalancingRule.LbDestination;
@@ -110,13 +130,23 @@ import com.cloud.utils.db.SearchCriteria.Op;
import com.cloud.utils.exception.CloudRuntimeException;
import com.cloud.utils.net.Ip;
import com.cloud.utils.net.NetUtils;
-import com.cloud.vm.*;
+import com.cloud.vm.Nic;
+import com.cloud.vm.NicProfile;
+import com.cloud.vm.NicVO;
+import com.cloud.vm.ReservationContext;
+import com.cloud.vm.ReservationContextImpl;
+import com.cloud.vm.SecondaryStorageVmVO;
+import com.cloud.vm.UserVmVO;
+import com.cloud.vm.VMInstanceVO;
+import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachine.Type;
+import com.cloud.vm.VirtualMachineProfile;
+import com.cloud.vm.VirtualMachineProfileImpl;
import com.cloud.vm.dao.DomainRouterDao;
import com.cloud.vm.dao.NicDao;
import com.cloud.vm.dao.UserVmDao;
import com.cloud.vm.dao.VMInstanceDao;
-import edu.emory.mathcs.backport.java.util.Collections;
+
import org.apache.log4j.Logger;
import javax.ejb.Local;
@@ -187,6 +217,8 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
Adapters<NetworkElement> _networkElements;
@Inject(adapter = IpDeployer.class)
Adapters<IpDeployer> _ipDeployers;
+ @Inject(adapter = DhcpServiceProvider.class)
+ Adapters<DhcpServiceProvider> _dhcpProviders;
@Inject
NetworkDomainDao _networkDomainDao;
@Inject
@@ -852,20 +884,8 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
}
IpDeployer deployer = null;
NetworkElement element = getElementImplementingProvider(provider.getName());
- if (element instanceof SourceNatServiceProvider) {
- deployer = ((SourceNatServiceProvider) element).getIpDeployer(network);
- } else if (element instanceof StaticNatServiceProvider) {
- deployer = ((StaticNatServiceProvider) element).getIpDeployer(network);
- } else if (element instanceof LoadBalancingServiceProvider) {
- deployer = ((LoadBalancingServiceProvider) element).getIpDeployer(network);
- } else if (element instanceof PortForwardingServiceProvider) {
- deployer = ((PortForwardingServiceProvider) element).getIpDeployer(network);
- } else if (element instanceof RemoteAccessVPNServiceProvider) {
- deployer = ((RemoteAccessVPNServiceProvider) element).getIpDeployer(network);
- } else if (element instanceof ConnectivityProvider) {
- // Nothing to do
- s_logger.debug("ConnectivityProvider " + element.getClass().getSimpleName() + " has no ip associations");
- continue;
+ if (element instanceof IpDeployer) {
+ deployer = (IpDeployer) element;
} else {
throw new CloudRuntimeException("Fail to get ip deployer for element: " + element);
}
@@ -2387,31 +2407,6 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
return _networksDao.findById(id);
}
- @Override
- public List<? extends RemoteAccessVPNServiceProvider> getRemoteAccessVpnElements() {
- List<RemoteAccessVPNServiceProvider> elements = new ArrayList<RemoteAccessVPNServiceProvider>();
- for (NetworkElement element : _networkElements) {
- if (element instanceof RemoteAccessVPNServiceProvider) {
- RemoteAccessVPNServiceProvider e = (RemoteAccessVPNServiceProvider) element;
- elements.add(e);
- }
- }
-
- return elements;
- }
-
- @Override
- public List<? extends Site2SiteVpnServiceProvider> getSite2SiteVpnElements() {
- List<Site2SiteVpnServiceProvider> elements = new ArrayList<Site2SiteVpnServiceProvider>();
- for (NetworkElement element : _networkElements) {
- if (element instanceof Site2SiteVpnServiceProvider) {
- Site2SiteVpnServiceProvider e = (Site2SiteVpnServiceProvider) element;
- elements.add(e);
- }
- }
-
- return elements;
- }
@Override
public void cleanupNics(VirtualMachineProfile<? extends VMInstanceVO> vm) {
@@ -4542,7 +4537,18 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
@Override
public List<NetworkVO> listNetworksForAccount(long accountId, long zoneId, Network.GuestType type) {
- List<NetworkVO> accountNetworks = _networksDao.listNetworksByAccount(accountId, zoneId, type, false);
+ List<NetworkVO> accountNetworks = new ArrayList<NetworkVO>();
+ List<NetworkVO> zoneNetworks = _networksDao.listByZone(zoneId);
+
+ for (NetworkVO network : zoneNetworks) {
+ if (!isNetworkSystem(network)) {
+ if (network.getGuestType() == Network.GuestType.Shared || !_networksDao.listBy(accountId, network.getId()).isEmpty()) {
+ if (type == null || type == network.getGuestType()) {
+ accountNetworks.add(network);
+ }
+ }
+ }
+ }
return accountNetworks;
}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e37f458a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java b/server/src/com/cloud/network/element/VpcVirtualRouterElement.java
index 0acc47d..71da967 100644
--- a/server/src/com/cloud/network/element/VpcVirtualRouterElement.java
+++ b/server/src/com/cloud/network/element/VpcVirtualRouterElement.java
@@ -61,7 +61,7 @@ import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachine;
import com.cloud.vm.VirtualMachine.Type;
import com.cloud.vm.VirtualMachineProfile;
-@Local(value = NetworkElement.class)
+@Local(value = {NetworkElement.class, Site2SiteVpnServiceProvider.class})
public class VpcVirtualRouterElement extends VirtualRouterElement implements VpcProvider, Site2SiteVpnServiceProvider, NetworkACLServiceProvider{
private static final Logger s_logger = Logger.getLogger(VpcVirtualRouterElement.class);
@Inject