Jonathan Hart
Committed by Gerrit Code Review

Add CLI command to view provisioned subscribers

Change-Id: I67a49d7fa569e9f4f28eb8eaea1b34ba2bd5a5fa
...@@ -21,6 +21,7 @@ import org.onosproject.event.ListenerService; ...@@ -21,6 +21,7 @@ import org.onosproject.event.ListenerService;
21 import org.onosproject.net.ConnectPoint; 21 import org.onosproject.net.ConnectPoint;
22 import org.onosproject.net.DeviceId; 22 import org.onosproject.net.DeviceId;
23 23
24 +import java.util.Collection;
24 import java.util.Map; 25 import java.util.Map;
25 26
26 /** 27 /**
...@@ -45,6 +46,13 @@ public interface AccessDeviceService ...@@ -45,6 +46,13 @@ public interface AccessDeviceService
45 void removeSubscriber(ConnectPoint port); 46 void removeSubscriber(ConnectPoint port);
46 47
47 /** 48 /**
49 + * Returns information about the provisioned subscribers.
50 + *
51 + * @return subscribers
52 + */
53 + Collection<Map.Entry<ConnectPoint, VlanId>> getSubscribers();
54 +
55 + /**
48 * Returns the map of configured OLTs. 56 * Returns the map of configured OLTs.
49 * 57 *
50 * @return a map 58 * @return a map
......
...@@ -26,9 +26,9 @@ import org.onosproject.olt.AccessDeviceService; ...@@ -26,9 +26,9 @@ import org.onosproject.olt.AccessDeviceService;
26 import java.util.Map; 26 import java.util.Map;
27 27
28 /** 28 /**
29 - * Adds a subscriber to an access device. 29 + * Shows configured OLTs.
30 */ 30 */
31 -@Command(scope = "onos", name = "show-olts", 31 +@Command(scope = "onos", name = "olts",
32 description = "Shows configured OLTs") 32 description = "Shows configured OLTs")
33 public class ShowOltCommand extends AbstractShellCommand { 33 public class ShowOltCommand extends AbstractShellCommand {
34 34
......
1 +/*
2 + * Copyright 2016 Open Networking Laboratory
3 + *
4 + * Licensed under the Apache License, Version 2.0 (the "License");
5 + * you may not use this file except in compliance with the License.
6 + * You may obtain a copy of the License at
7 + *
8 + * http://www.apache.org/licenses/LICENSE-2.0
9 + *
10 + * Unless required by applicable law or agreed to in writing, software
11 + * distributed under the License is distributed on an "AS IS" BASIS,
12 + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 + * See the License for the specific language governing permissions and
14 + * limitations under the License.
15 + */
16 +
17 +package org.onosproject.olt.cli;
18 +
19 +import org.apache.karaf.shell.commands.Command;
20 +import org.onlab.packet.VlanId;
21 +import org.onosproject.cli.AbstractShellCommand;
22 +import org.onosproject.net.ConnectPoint;
23 +import org.onosproject.olt.AccessDeviceService;
24 +
25 +import java.util.Map;
26 +
27 +/**
28 + * Shows provisioned subscribers.
29 + */
30 +@Command(scope = "onos", name = "subscribers",
31 + description = "Shows provisioned subscribers")
32 +public class ShowSubscribersCommand extends AbstractShellCommand {
33 +
34 + private static final String FORMAT = "port=%s, cvlan=%s";
35 +
36 + @Override
37 + protected void execute() {
38 + AccessDeviceService service = AbstractShellCommand.get(AccessDeviceService.class);
39 + service.getSubscribers().forEach(this::display);
40 + }
41 +
42 + private void display(Map.Entry<ConnectPoint, VlanId> subscriber) {
43 + print(FORMAT, subscriber.getKey(), subscriber.getValue());
44 + }
45 +}
...@@ -67,6 +67,7 @@ import org.onosproject.store.service.StorageService; ...@@ -67,6 +67,7 @@ import org.onosproject.store.service.StorageService;
67 import org.osgi.service.component.ComponentContext; 67 import org.osgi.service.component.ComponentContext;
68 import org.slf4j.Logger; 68 import org.slf4j.Logger;
69 69
70 +import java.util.Collection;
70 import java.util.Dictionary; 71 import java.util.Dictionary;
71 import java.util.List; 72 import java.util.List;
72 import java.util.Map; 73 import java.util.Map;
...@@ -243,6 +244,11 @@ public class Olt ...@@ -243,6 +244,11 @@ public class Olt
243 } 244 }
244 245
245 @Override 246 @Override
247 + public Collection<Map.Entry<ConnectPoint, VlanId>> getSubscribers() {
248 + return subscribers.entrySet();
249 + }
250 +
251 + @Override
246 public Map<DeviceId, AccessDeviceData> fetchOlts() { 252 public Map<DeviceId, AccessDeviceData> fetchOlts() {
247 return Maps.newHashMap(oltData); 253 return Maps.newHashMap(oltData);
248 } 254 }
...@@ -459,11 +465,10 @@ public class Olt ...@@ -459,11 +465,10 @@ public class Olt
459 public void event(DeviceEvent event) { 465 public void event(DeviceEvent event) {
460 DeviceId devId = event.subject().id(); 466 DeviceId devId = event.subject().id();
461 if (!oltData.containsKey(devId)) { 467 if (!oltData.containsKey(devId)) {
462 - log.debug("Device {} is not an OLT", devId);
463 return; 468 return;
464 } 469 }
465 switch (event.type()) { 470 switch (event.type()) {
466 - //TODO: Port handling and bookkeeping should be inproved once 471 + //TODO: Port handling and bookkeeping should be improved once
467 // olt firmware handles correct behaviour. 472 // olt firmware handles correct behaviour.
468 case PORT_ADDED: 473 case PORT_ADDED:
469 if (!oltData.get(devId).uplink().equals(event.port().number()) && 474 if (!oltData.get(devId).uplink().equals(event.port().number()) &&
......
...@@ -37,6 +37,9 @@ ...@@ -37,6 +37,9 @@
37 <null/> 37 <null/>
38 </completers> 38 </completers>
39 </command> 39 </command>
40 + <command>
41 + <action class="org.onosproject.olt.cli.ShowSubscribersCommand"/>
42 + </command>
40 </command-bundle> 43 </command-bundle>
41 44
42 <bean id="deviceIdCompleter" class="org.onosproject.cli.net.DeviceIdCompleter"/> 45 <bean id="deviceIdCompleter" class="org.onosproject.cli.net.DeviceIdCompleter"/>
......