remote stats service functional
Change-Id: I4ebc4c565b7ee7533b5bd1a0379f54470223ba0e
Showing
2 changed files
with
17 additions
and
7 deletions
... | @@ -3,8 +3,7 @@ package org.onlab.onos.store.statistic.impl; | ... | @@ -3,8 +3,7 @@ package org.onlab.onos.store.statistic.impl; |
3 | import static org.onlab.onos.store.statistic.impl.StatisticStoreMessageSubjects.*; | 3 | import static org.onlab.onos.store.statistic.impl.StatisticStoreMessageSubjects.*; |
4 | import static org.slf4j.LoggerFactory.getLogger; | 4 | import static org.slf4j.LoggerFactory.getLogger; |
5 | 5 | ||
6 | -import com.google.common.collect.ImmutableSet; | 6 | +import com.google.common.collect.Sets; |
7 | - | ||
8 | import org.apache.felix.scr.annotations.Activate; | 7 | import org.apache.felix.scr.annotations.Activate; |
9 | import org.apache.felix.scr.annotations.Component; | 8 | import org.apache.felix.scr.annotations.Component; |
10 | import org.apache.felix.scr.annotations.Deactivate; | 9 | import org.apache.felix.scr.annotations.Deactivate; |
... | @@ -130,7 +129,7 @@ public class DistributedStatisticStore implements StatisticStore { | ... | @@ -130,7 +129,7 @@ public class DistributedStatisticStore implements StatisticStore { |
130 | } | 129 | } |
131 | 130 | ||
132 | @Override | 131 | @Override |
133 | - public void removeFromStatistics(FlowRule rule) { | 132 | + public synchronized void removeFromStatistics(FlowRule rule) { |
134 | ConnectPoint cp = buildConnectPoint(rule); | 133 | ConnectPoint cp = buildConnectPoint(rule); |
135 | if (cp == null) { | 134 | if (cp == null) { |
136 | return; | 135 | return; |
... | @@ -139,6 +138,15 @@ public class DistributedStatisticStore implements StatisticStore { | ... | @@ -139,6 +138,15 @@ public class DistributedStatisticStore implements StatisticStore { |
139 | if (rep != null) { | 138 | if (rep != null) { |
140 | rep.remove(rule); | 139 | rep.remove(rule); |
141 | } | 140 | } |
141 | + Set<FlowEntry> values = current.get(cp); | ||
142 | + if (values != null) { | ||
143 | + values.remove(rule); | ||
144 | + } | ||
145 | + values = previous.get(cp); | ||
146 | + if (values != null) { | ||
147 | + values.remove(rule); | ||
148 | + } | ||
149 | + | ||
142 | } | 150 | } |
143 | 151 | ||
144 | @Override | 152 | @Override |
... | @@ -181,7 +189,7 @@ public class DistributedStatisticStore implements StatisticStore { | ... | @@ -181,7 +189,7 @@ public class DistributedStatisticStore implements StatisticStore { |
181 | return SERIALIZER.decode(response.get(STATISTIC_STORE_TIMEOUT_MILLIS, | 189 | return SERIALIZER.decode(response.get(STATISTIC_STORE_TIMEOUT_MILLIS, |
182 | TimeUnit.MILLISECONDS)); | 190 | TimeUnit.MILLISECONDS)); |
183 | } catch (IOException | TimeoutException e) { | 191 | } catch (IOException | TimeoutException e) { |
184 | - // FIXME: throw a FlowStoreException | 192 | + // FIXME: throw a StatsStoreException |
185 | throw new RuntimeException(e); | 193 | throw new RuntimeException(e); |
186 | } | 194 | } |
187 | } | 195 | } |
... | @@ -200,7 +208,7 @@ public class DistributedStatisticStore implements StatisticStore { | ... | @@ -200,7 +208,7 @@ public class DistributedStatisticStore implements StatisticStore { |
200 | } else { | 208 | } else { |
201 | ClusterMessage message = new ClusterMessage( | 209 | ClusterMessage message = new ClusterMessage( |
202 | clusterService.getLocalNode().id(), | 210 | clusterService.getLocalNode().id(), |
203 | - GET_CURRENT, | 211 | + GET_PREVIOUS, |
204 | SERIALIZER.encode(connectPoint)); | 212 | SERIALIZER.encode(connectPoint)); |
205 | 213 | ||
206 | try { | 214 | try { |
... | @@ -209,7 +217,7 @@ public class DistributedStatisticStore implements StatisticStore { | ... | @@ -209,7 +217,7 @@ public class DistributedStatisticStore implements StatisticStore { |
209 | return SERIALIZER.decode(response.get(STATISTIC_STORE_TIMEOUT_MILLIS, | 217 | return SERIALIZER.decode(response.get(STATISTIC_STORE_TIMEOUT_MILLIS, |
210 | TimeUnit.MILLISECONDS)); | 218 | TimeUnit.MILLISECONDS)); |
211 | } catch (IOException | TimeoutException e) { | 219 | } catch (IOException | TimeoutException e) { |
212 | - // FIXME: throw a FlowStoreException | 220 | + // FIXME: throw a StatsStoreException |
213 | throw new RuntimeException(e); | 221 | throw new RuntimeException(e); |
214 | } | 222 | } |
215 | } | 223 | } |
... | @@ -283,7 +291,7 @@ public class DistributedStatisticStore implements StatisticStore { | ... | @@ -283,7 +291,7 @@ public class DistributedStatisticStore implements StatisticStore { |
283 | 291 | ||
284 | public synchronized Set<FlowEntry> get() { | 292 | public synchronized Set<FlowEntry> get() { |
285 | counter.set(rules.size()); | 293 | counter.set(rules.size()); |
286 | - return ImmutableSet.copyOf(rules); | 294 | + return Sets.newHashSet(rules); |
287 | } | 295 | } |
288 | 296 | ||
289 | 297 | ... | ... |
... | @@ -31,6 +31,7 @@ import org.onlab.onos.net.flow.DefaultFlowEntry; | ... | @@ -31,6 +31,7 @@ import org.onlab.onos.net.flow.DefaultFlowEntry; |
31 | import org.onlab.onos.net.flow.DefaultFlowRule; | 31 | import org.onlab.onos.net.flow.DefaultFlowRule; |
32 | import org.onlab.onos.net.flow.DefaultTrafficSelector; | 32 | import org.onlab.onos.net.flow.DefaultTrafficSelector; |
33 | import org.onlab.onos.net.flow.DefaultTrafficTreatment; | 33 | import org.onlab.onos.net.flow.DefaultTrafficTreatment; |
34 | +import org.onlab.onos.net.flow.FlowEntry; | ||
34 | import org.onlab.onos.net.flow.FlowId; | 35 | import org.onlab.onos.net.flow.FlowId; |
35 | import org.onlab.onos.net.flow.criteria.Criteria; | 36 | import org.onlab.onos.net.flow.criteria.Criteria; |
36 | import org.onlab.onos.net.flow.criteria.Criterion; | 37 | import org.onlab.onos.net.flow.criteria.Criterion; |
... | @@ -98,6 +99,7 @@ public final class KryoNamespaces { | ... | @@ -98,6 +99,7 @@ public final class KryoNamespaces { |
98 | DefaultHostDescription.class, | 99 | DefaultHostDescription.class, |
99 | DefaultFlowRule.class, | 100 | DefaultFlowRule.class, |
100 | DefaultFlowEntry.class, | 101 | DefaultFlowEntry.class, |
102 | + FlowEntry.FlowEntryState.class, | ||
101 | FlowId.class, | 103 | FlowId.class, |
102 | DefaultTrafficSelector.class, | 104 | DefaultTrafficSelector.class, |
103 | Criteria.PortCriterion.class, | 105 | Criteria.PortCriterion.class, | ... | ... |
-
Please register or login to post a comment