When cleaning up or setting ip associations the NiciraNvpElement should be 
ignored.
Implemented a generic ConnectivyProvider interface work around the dependency 
from server to nicira-plugin.


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

Branch: refs/heads/master
Commit: 236f63fd34a66eb6025731bad4def4c6f0f1ab5f
Parents: 969b94e
Author: Hugo Trippaers <[email protected]>
Authored: Mon Jul 30 15:07:03 2012 +0200
Committer: Hugo Trippaers <[email protected]>
Committed: Mon Jul 30 15:17:35 2012 +0200

----------------------------------------------------------------------
 .../network/element/ConnectivityProvider.java      |   21 +++++++++++++++
 .../cloud/network/element/NiciraNvpElement.java    |    2 +-
 .../src/com/cloud/network/NetworkManagerImpl.java  |    5 +++
 3 files changed, 27 insertions(+), 1 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/236f63fd/api/src/com/cloud/network/element/ConnectivityProvider.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/network/element/ConnectivityProvider.java 
b/api/src/com/cloud/network/element/ConnectivityProvider.java
new file mode 100644
index 0000000..81cac03
--- /dev/null
+++ b/api/src/com/cloud/network/element/ConnectivityProvider.java
@@ -0,0 +1,21 @@
+// Licensed to the Apache Software Foundation (ASF) under one
+// or more contributor license agreements.  See the NOTICE file
+// distributed with this work for additional information
+// regarding copyright ownership.  The ASF licenses this file
+// to you under the Apache License, Version 2.0 (the
+// "License"); you may not use this file except in compliance
+// with the License.  You may obtain a copy of the License at
+//
+//   http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing,
+// software distributed under the License is distributed on an
+// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+// KIND, either express or implied.  See the License for the
+// specific language governing permissions and limitations
+// under the License.
+package com.cloud.network.element;
+
+public interface ConnectivityProvider extends NetworkElement {
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/236f63fd/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 ba4b961..ff9d020 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
@@ -90,7 +90,7 @@ import com.cloud.vm.VirtualMachineProfile;
 import com.cloud.vm.dao.NicDao;
 
 @Local(value = NetworkElement.class)
-public class NiciraNvpElement extends AdapterBase implements NetworkElement, 
NiciraNvpElementService, ResourceStateAdapter {
+public class NiciraNvpElement extends AdapterBase implements 
ConnectivityProvider, NiciraNvpElementService, ResourceStateAdapter {
     private static final Logger s_logger = 
Logger.getLogger(NiciraNvpElement.class);
     
     private static final Map<Service, Map<Capability, String>> capabilities = 
setCapabilities();

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/236f63fd/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 83acc9b..2556588 100755
--- a/server/src/com/cloud/network/NetworkManagerImpl.java
+++ b/server/src/com/cloud/network/NetworkManagerImpl.java
@@ -126,6 +126,7 @@ 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.ConnectivityProvider;
 import com.cloud.network.element.DhcpServiceProvider;
 import com.cloud.network.element.FirewallServiceProvider;
 import com.cloud.network.element.IpDeployer;
@@ -913,6 +914,10 @@ public class NetworkManagerImpl implements NetworkManager, 
NetworkService, Manag
                     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;
                 } else {
                     throw new CloudRuntimeException("Fail to get ip deployer 
for element: " + element);
                 }

Reply via email to