Committed by
Gerrit Code Review
[GoldenEye] [ONOS-4163] Add provider service API
Change-Id: I363471d3a69a1c67d57d853fb84d42551eb27b7a
Showing
4 changed files
with
39 additions
and
0 deletions
| ... | @@ -17,6 +17,8 @@ | ... | @@ -17,6 +17,8 @@ |
| 17 | package org.onosproject.incubator.net.tunnel; | 17 | package org.onosproject.incubator.net.tunnel; |
| 18 | 18 | ||
| 19 | import com.google.common.annotations.Beta; | 19 | import com.google.common.annotations.Beta; |
| 20 | + | ||
| 21 | +import org.onosproject.incubator.net.tunnel.Tunnel.State; | ||
| 20 | import org.onosproject.net.provider.ProviderService; | 22 | import org.onosproject.net.provider.ProviderService; |
| 21 | 23 | ||
| 22 | /** | 24 | /** |
| ... | @@ -34,6 +36,16 @@ public interface TunnelProviderService extends ProviderService<TunnelProvider> { | ... | @@ -34,6 +36,16 @@ public interface TunnelProviderService extends ProviderService<TunnelProvider> { |
| 34 | TunnelId tunnelAdded(TunnelDescription tunnel); | 36 | TunnelId tunnelAdded(TunnelDescription tunnel); |
| 35 | 37 | ||
| 36 | /** | 38 | /** |
| 39 | + * Signals that the provider has added a tunnel with a status which may not | ||
| 40 | + * be default, hence is provided as an input. | ||
| 41 | + * | ||
| 42 | + * @param tunnel tunnel information | ||
| 43 | + * @param state tunnel working status | ||
| 44 | + * @return tunnel identity | ||
| 45 | + */ | ||
| 46 | + TunnelId tunnelAdded(TunnelDescription tunnel, State state); | ||
| 47 | + | ||
| 48 | + /** | ||
| 37 | * Signals that the provider has removed a tunnel. | 49 | * Signals that the provider has removed a tunnel. |
| 38 | * | 50 | * |
| 39 | * @param tunnel tunnel information | 51 | * @param tunnel tunnel information | ... | ... |
| ... | @@ -25,6 +25,7 @@ import org.onosproject.net.provider.AbstractListenerProviderRegistry; | ... | @@ -25,6 +25,7 @@ import org.onosproject.net.provider.AbstractListenerProviderRegistry; |
| 25 | import org.onosproject.core.ApplicationId; | 25 | import org.onosproject.core.ApplicationId; |
| 26 | import org.onosproject.incubator.net.tunnel.DefaultTunnel; | 26 | import org.onosproject.incubator.net.tunnel.DefaultTunnel; |
| 27 | import org.onosproject.incubator.net.tunnel.Tunnel; | 27 | import org.onosproject.incubator.net.tunnel.Tunnel; |
| 28 | +import org.onosproject.incubator.net.tunnel.Tunnel.State; | ||
| 28 | import org.onosproject.incubator.net.tunnel.Tunnel.Type; | 29 | import org.onosproject.incubator.net.tunnel.Tunnel.Type; |
| 29 | import org.onosproject.incubator.net.tunnel.TunnelAdminService; | 30 | import org.onosproject.incubator.net.tunnel.TunnelAdminService; |
| 30 | import org.onosproject.incubator.net.tunnel.TunnelDescription; | 31 | import org.onosproject.incubator.net.tunnel.TunnelDescription; |
| ... | @@ -309,6 +310,20 @@ public class TunnelManager | ... | @@ -309,6 +310,20 @@ public class TunnelManager |
| 309 | } | 310 | } |
| 310 | 311 | ||
| 311 | @Override | 312 | @Override |
| 313 | + public TunnelId tunnelAdded(TunnelDescription tunnel, State state) { | ||
| 314 | + Tunnel storedTunnel = new DefaultTunnel(provider().id(), | ||
| 315 | + tunnel.src(), tunnel.dst(), | ||
| 316 | + tunnel.type(), | ||
| 317 | + state, | ||
| 318 | + tunnel.groupId(), | ||
| 319 | + tunnel.id(), | ||
| 320 | + tunnel.tunnelName(), | ||
| 321 | + tunnel.path(), | ||
| 322 | + tunnel.annotations()); | ||
| 323 | + return store.createOrUpdateTunnel(storedTunnel); | ||
| 324 | + } | ||
| 325 | + | ||
| 326 | + @Override | ||
| 312 | public void tunnelUpdated(TunnelDescription tunnel) { | 327 | public void tunnelUpdated(TunnelDescription tunnel) { |
| 313 | Tunnel storedTunnel = new DefaultTunnel(provider().id(), | 328 | Tunnel storedTunnel = new DefaultTunnel(provider().id(), |
| 314 | tunnel.src(), tunnel.dst(), | 329 | tunnel.src(), tunnel.dst(), | ... | ... |
| ... | @@ -38,6 +38,7 @@ import org.onosproject.incubator.net.tunnel.TunnelName; | ... | @@ -38,6 +38,7 @@ import org.onosproject.incubator.net.tunnel.TunnelName; |
| 38 | import org.onosproject.incubator.net.tunnel.TunnelProvider; | 38 | import org.onosproject.incubator.net.tunnel.TunnelProvider; |
| 39 | import org.onosproject.incubator.net.tunnel.TunnelProviderRegistry; | 39 | import org.onosproject.incubator.net.tunnel.TunnelProviderRegistry; |
| 40 | import org.onosproject.incubator.net.tunnel.TunnelProviderService; | 40 | import org.onosproject.incubator.net.tunnel.TunnelProviderService; |
| 41 | +import org.onosproject.incubator.net.tunnel.Tunnel.State; | ||
| 41 | import org.onosproject.net.ConnectPoint; | 42 | import org.onosproject.net.ConnectPoint; |
| 42 | import org.onosproject.net.DefaultAnnotations; | 43 | import org.onosproject.net.DefaultAnnotations; |
| 43 | import org.onosproject.net.DefaultLink; | 44 | import org.onosproject.net.DefaultLink; |
| ... | @@ -166,6 +167,11 @@ public class OvsdbTunnelProviderTest { | ... | @@ -166,6 +167,11 @@ public class OvsdbTunnelProviderTest { |
| 166 | } | 167 | } |
| 167 | 168 | ||
| 168 | @Override | 169 | @Override |
| 170 | + public TunnelId tunnelAdded(TunnelDescription tunnel, State state) { | ||
| 171 | + return null; | ||
| 172 | + } | ||
| 173 | + | ||
| 174 | + @Override | ||
| 169 | public void tunnelRemoved(TunnelDescription tunnel) { | 175 | public void tunnelRemoved(TunnelDescription tunnel) { |
| 170 | tunnelSet.remove(tunnel); | 176 | tunnelSet.remove(tunnel); |
| 171 | } | 177 | } | ... | ... |
| ... | @@ -23,6 +23,7 @@ import org.onosproject.incubator.net.tunnel.TunnelId; | ... | @@ -23,6 +23,7 @@ import org.onosproject.incubator.net.tunnel.TunnelId; |
| 23 | import org.onosproject.incubator.net.tunnel.TunnelProvider; | 23 | import org.onosproject.incubator.net.tunnel.TunnelProvider; |
| 24 | import org.onosproject.incubator.net.tunnel.TunnelProviderRegistry; | 24 | import org.onosproject.incubator.net.tunnel.TunnelProviderRegistry; |
| 25 | import org.onosproject.incubator.net.tunnel.TunnelProviderService; | 25 | import org.onosproject.incubator.net.tunnel.TunnelProviderService; |
| 26 | +import org.onosproject.incubator.net.tunnel.Tunnel.State; | ||
| 26 | import org.onosproject.net.provider.ProviderId; | 27 | import org.onosproject.net.provider.ProviderId; |
| 27 | 28 | ||
| 28 | public class TunnelProviderRegistryAdapter implements TunnelProviderRegistry { | 29 | public class TunnelProviderRegistryAdapter implements TunnelProviderRegistry { |
| ... | @@ -56,6 +57,11 @@ public class TunnelProviderRegistryAdapter implements TunnelProviderRegistry { | ... | @@ -56,6 +57,11 @@ public class TunnelProviderRegistryAdapter implements TunnelProviderRegistry { |
| 56 | } | 57 | } |
| 57 | 58 | ||
| 58 | @Override | 59 | @Override |
| 60 | + public TunnelId tunnelAdded(TunnelDescription tunnel, State state) { | ||
| 61 | + return null; | ||
| 62 | + } | ||
| 63 | + | ||
| 64 | + @Override | ||
| 59 | public void tunnelRemoved(TunnelDescription tunnel) { | 65 | public void tunnelRemoved(TunnelDescription tunnel) { |
| 60 | } | 66 | } |
| 61 | 67 | ... | ... |
-
Please register or login to post a comment