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); }
