Committed by
Gerrit Code Review
[ONOS-5185] fix bug for VTN data synchronized failed in cluster mode
Change-Id: I8458d2492c52f43f1df0b661a921ee6f3027297d
Showing
1 changed file
with
41 additions
and
19 deletions
| ... | @@ -22,6 +22,7 @@ import java.util.Collection; | ... | @@ -22,6 +22,7 @@ import java.util.Collection; |
| 22 | import java.util.Collections; | 22 | import java.util.Collections; |
| 23 | import java.util.Iterator; | 23 | import java.util.Iterator; |
| 24 | import java.util.List; | 24 | import java.util.List; |
| 25 | +import java.util.UUID; | ||
| 25 | import java.util.stream.Collectors; | 26 | import java.util.stream.Collectors; |
| 26 | 27 | ||
| 27 | import org.apache.felix.scr.annotations.Activate; | 28 | import org.apache.felix.scr.annotations.Activate; |
| ... | @@ -37,6 +38,7 @@ import org.onosproject.core.ApplicationId; | ... | @@ -37,6 +38,7 @@ import org.onosproject.core.ApplicationId; |
| 37 | import org.onosproject.core.CoreService; | 38 | import org.onosproject.core.CoreService; |
| 38 | import org.onosproject.event.AbstractListenerManager; | 39 | import org.onosproject.event.AbstractListenerManager; |
| 39 | import org.onosproject.net.DeviceId; | 40 | import org.onosproject.net.DeviceId; |
| 41 | +import org.onosproject.net.Host; | ||
| 40 | import org.onosproject.store.serializers.KryoNamespaces; | 42 | import org.onosproject.store.serializers.KryoNamespaces; |
| 41 | import org.onosproject.store.service.EventuallyConsistentMap; | 43 | import org.onosproject.store.service.EventuallyConsistentMap; |
| 42 | import org.onosproject.store.service.EventuallyConsistentMapEvent; | 44 | import org.onosproject.store.service.EventuallyConsistentMapEvent; |
| ... | @@ -46,12 +48,18 @@ import org.onosproject.store.service.StorageService; | ... | @@ -46,12 +48,18 @@ import org.onosproject.store.service.StorageService; |
| 46 | import org.onosproject.store.service.WallClockTimestamp; | 48 | import org.onosproject.store.service.WallClockTimestamp; |
| 47 | import org.onosproject.vtnrsc.AllowedAddressPair; | 49 | import org.onosproject.vtnrsc.AllowedAddressPair; |
| 48 | import org.onosproject.vtnrsc.BindingHostId; | 50 | import org.onosproject.vtnrsc.BindingHostId; |
| 51 | +import org.onosproject.vtnrsc.DefaultFloatingIp; | ||
| 49 | import org.onosproject.vtnrsc.DefaultVirtualPort; | 52 | import org.onosproject.vtnrsc.DefaultVirtualPort; |
| 50 | import org.onosproject.vtnrsc.FixedIp; | 53 | import org.onosproject.vtnrsc.FixedIp; |
| 54 | +import org.onosproject.vtnrsc.FloatingIp; | ||
| 55 | +import org.onosproject.vtnrsc.FloatingIpId; | ||
| 56 | +import org.onosproject.vtnrsc.RouterId; | ||
| 51 | import org.onosproject.vtnrsc.SecurityGroup; | 57 | import org.onosproject.vtnrsc.SecurityGroup; |
| 52 | import org.onosproject.vtnrsc.SubnetId; | 58 | import org.onosproject.vtnrsc.SubnetId; |
| 53 | import org.onosproject.vtnrsc.TenantId; | 59 | import org.onosproject.vtnrsc.TenantId; |
| 60 | +import org.onosproject.vtnrsc.TenantNetwork; | ||
| 54 | import org.onosproject.vtnrsc.TenantNetworkId; | 61 | import org.onosproject.vtnrsc.TenantNetworkId; |
| 62 | +import org.onosproject.vtnrsc.TenantRouter; | ||
| 55 | import org.onosproject.vtnrsc.VirtualPort; | 63 | import org.onosproject.vtnrsc.VirtualPort; |
| 56 | import org.onosproject.vtnrsc.VirtualPortId; | 64 | import org.onosproject.vtnrsc.VirtualPortId; |
| 57 | import org.onosproject.vtnrsc.tenantnetwork.TenantNetworkService; | 65 | import org.onosproject.vtnrsc.tenantnetwork.TenantNetworkService; |
| ... | @@ -71,7 +79,7 @@ implements VirtualPortService { | ... | @@ -71,7 +79,7 @@ implements VirtualPortService { |
| 71 | 79 | ||
| 72 | private final Logger log = LoggerFactory.getLogger(getClass()); | 80 | private final Logger log = LoggerFactory.getLogger(getClass()); |
| 73 | 81 | ||
| 74 | - private static final String VIRTUALPORT = "vtn-virtual-port"; | 82 | + private static final String VIRTUALPORT = "vtn-virtual-port-store"; |
| 75 | private static final String VTNRSC_APP = "org.onosproject.vtnrsc"; | 83 | private static final String VTNRSC_APP = "org.onosproject.vtnrsc"; |
| 76 | 84 | ||
| 77 | private static final String VIRTUALPORT_ID_NULL = "VirtualPort ID cannot be null"; | 85 | private static final String VIRTUALPORT_ID_NULL = "VirtualPort ID cannot be null"; |
| ... | @@ -106,23 +114,36 @@ implements VirtualPortService { | ... | @@ -106,23 +114,36 @@ implements VirtualPortService { |
| 106 | 114 | ||
| 107 | eventDispatcher.addSink(VirtualPortEvent.class, listenerRegistry); | 115 | eventDispatcher.addSink(VirtualPortEvent.class, listenerRegistry); |
| 108 | 116 | ||
| 109 | - vPortStore = storageService.<VirtualPortId, VirtualPort>eventuallyConsistentMapBuilder() | 117 | + KryoNamespace.Builder serializer = KryoNamespace.newBuilder() |
| 110 | - .withName(VIRTUALPORT) | 118 | + .register(KryoNamespaces.API) |
| 111 | - .withSerializer(KryoNamespace.newBuilder().register(KryoNamespaces.API) | 119 | + .register(MultiValuedTimestamp.class) |
| 112 | - .register(MultiValuedTimestamp.class) | 120 | + .register(TenantNetworkId.class) |
| 113 | - .register(VirtualPortId.class, | 121 | + .register(Host.class) |
| 114 | - TenantNetworkId.class, | 122 | + .register(TenantNetwork.class) |
| 115 | - VirtualPort.State.class, | 123 | + .register(TenantNetworkId.class) |
| 116 | - TenantId.class, | 124 | + .register(TenantId.class) |
| 117 | - AllowedAddressPair.class, | 125 | + .register(SubnetId.class) |
| 118 | - FixedIp.class, | 126 | + .register(VirtualPortId.class) |
| 119 | - BindingHostId.class, | 127 | + .register(VirtualPort.State.class) |
| 120 | - SecurityGroup.class, | 128 | + .register(AllowedAddressPair.class) |
| 121 | - SubnetId.class, | 129 | + .register(FixedIp.class) |
| 122 | - IpAddress.class, | 130 | + .register(FloatingIp.class) |
| 123 | - DefaultVirtualPort.class)) | 131 | + .register(FloatingIpId.class) |
| 124 | - .withTimestampProvider((k, v) ->new WallClockTimestamp()) | 132 | + .register(FloatingIp.Status.class) |
| 125 | - .build(); | 133 | + .register(UUID.class) |
| 134 | + .register(DefaultFloatingIp.class) | ||
| 135 | + .register(BindingHostId.class) | ||
| 136 | + .register(SecurityGroup.class) | ||
| 137 | + .register(IpAddress.class) | ||
| 138 | + .register(DefaultVirtualPort.class) | ||
| 139 | + .register(RouterId.class) | ||
| 140 | + .register(TenantRouter.class) | ||
| 141 | + .register(VirtualPort.class); | ||
| 142 | + vPortStore = storageService | ||
| 143 | + .<VirtualPortId, VirtualPort>eventuallyConsistentMapBuilder() | ||
| 144 | + .withName(VIRTUALPORT).withSerializer(serializer) | ||
| 145 | + .withTimestampProvider((k, v) -> new WallClockTimestamp()) | ||
| 146 | + .build(); | ||
| 126 | 147 | ||
| 127 | vPortStore.addListener(virtualPortListener); | 148 | vPortStore.addListener(virtualPortListener); |
| 128 | log.info("Started"); | 149 | log.info("Started"); |
| ... | @@ -130,7 +151,8 @@ implements VirtualPortService { | ... | @@ -130,7 +151,8 @@ implements VirtualPortService { |
| 130 | 151 | ||
| 131 | @Deactivate | 152 | @Deactivate |
| 132 | public void deactivate() { | 153 | public void deactivate() { |
| 133 | - vPortStore.clear(); | 154 | + vPortStore.removeListener(virtualPortListener); |
| 155 | + vPortStore.destroy(); | ||
| 134 | log.info("Stoppped"); | 156 | log.info("Stoppped"); |
| 135 | } | 157 | } |
| 136 | 158 | ... | ... |
-
Please register or login to post a comment