Jonathan Hart

Add static factory method to create ConnectPoints from strings.

Change-Id: I743b4a4fb433ad07cf6f2cbed3da7b6e19a74ebb
...@@ -63,7 +63,6 @@ public class AddFlowsCommand extends AbstractShellCommand { ...@@ -63,7 +63,6 @@ public class AddFlowsCommand extends AbstractShellCommand {
63 63
64 @Override 64 @Override
65 protected void execute() { 65 protected void execute() {
66 -
67 FlowRuleService flowService = get(FlowRuleService.class); 66 FlowRuleService flowService = get(FlowRuleService.class);
68 DeviceService deviceService = get(DeviceService.class); 67 DeviceService deviceService = get(DeviceService.class);
69 CoreService coreService = get(CoreService.class); 68 CoreService coreService = get(CoreService.class);
...@@ -99,7 +98,6 @@ public class AddFlowsCommand extends AbstractShellCommand { ...@@ -99,7 +98,6 @@ public class AddFlowsCommand extends AbstractShellCommand {
99 } 98 }
100 99
101 for (int i = 0; i < num; i++) { 100 for (int i = 0; i < num; i++) {
102 -
103 latch = new CountDownLatch(2); 101 latch = new CountDownLatch(2);
104 flowService.apply(rules.build(new FlowRuleOperationsContext() { 102 flowService.apply(rules.build(new FlowRuleOperationsContext() {
105 103
...@@ -121,7 +119,6 @@ public class AddFlowsCommand extends AbstractShellCommand { ...@@ -121,7 +119,6 @@ public class AddFlowsCommand extends AbstractShellCommand {
121 } 119 }
122 })); 120 }));
123 121
124 -
125 flowService.apply(remove.build(new FlowRuleOperationsContext() { 122 flowService.apply(remove.build(new FlowRuleOperationsContext() {
126 @Override 123 @Override
127 public void onSuccess(FlowRuleOperations ops) { 124 public void onSuccess(FlowRuleOperations ops) {
...@@ -135,14 +132,8 @@ public class AddFlowsCommand extends AbstractShellCommand { ...@@ -135,14 +132,8 @@ public class AddFlowsCommand extends AbstractShellCommand {
135 } 132 }
136 133
137 } 134 }
138 -
139 -
140 -
141 -
142 } 135 }
143 136
144 -
145 -
146 private Object json(ObjectMapper mapper, boolean isSuccess, ArrayList<Long> elapsed) { 137 private Object json(ObjectMapper mapper, boolean isSuccess, ArrayList<Long> elapsed) {
147 ObjectNode result = mapper.createObjectNode(); 138 ObjectNode result = mapper.createObjectNode();
148 result.put("Success", isSuccess); 139 result.put("Success", isSuccess);
...@@ -159,6 +150,4 @@ public class AddFlowsCommand extends AbstractShellCommand { ...@@ -159,6 +150,4 @@ public class AddFlowsCommand extends AbstractShellCommand {
159 print(" Run %s : %s", i, elapsed.get(i)); 150 print(" Run %s : %s", i, elapsed.get(i));
160 } 151 }
161 } 152 }
162 -
163 -
164 } 153 }
......
1 package org.onosproject.cli.net; 1 package org.onosproject.cli.net;
2 2
3 -import java.util.List;
4 -import java.util.Optional;
5 -
6 import org.apache.karaf.shell.commands.Argument; 3 import org.apache.karaf.shell.commands.Argument;
7 import org.apache.karaf.shell.commands.Command; 4 import org.apache.karaf.shell.commands.Command;
8 import org.apache.karaf.shell.commands.Option; 5 import org.apache.karaf.shell.commands.Option;
9 import org.onlab.packet.MplsLabel; 6 import org.onlab.packet.MplsLabel;
10 import org.onosproject.net.ConnectPoint; 7 import org.onosproject.net.ConnectPoint;
11 -import org.onosproject.net.DeviceId;
12 -import org.onosproject.net.PortNumber;
13 import org.onosproject.net.flow.TrafficSelector; 8 import org.onosproject.net.flow.TrafficSelector;
14 import org.onosproject.net.flow.TrafficTreatment; 9 import org.onosproject.net.flow.TrafficTreatment;
15 import org.onosproject.net.intent.Constraint; 10 import org.onosproject.net.intent.Constraint;
16 import org.onosproject.net.intent.IntentService; 11 import org.onosproject.net.intent.IntentService;
17 import org.onosproject.net.intent.MplsIntent; 12 import org.onosproject.net.intent.MplsIntent;
18 13
19 -import static org.onosproject.net.DeviceId.deviceId; 14 +import java.util.List;
20 -import static org.onosproject.net.PortNumber.portNumber; 15 +import java.util.Optional;
21 16
22 /** 17 /**
23 * Installs MPLS intents. 18 * Installs MPLS intents.
...@@ -53,19 +48,14 @@ public class AddMplsIntent extends ConnectivityIntentCommand { ...@@ -53,19 +48,14 @@ public class AddMplsIntent extends ConnectivityIntentCommand {
53 protected void execute() { 48 protected void execute() {
54 IntentService service = get(IntentService.class); 49 IntentService service = get(IntentService.class);
55 50
56 - DeviceId ingressDeviceId = deviceId(getDeviceId(ingressDeviceString)); 51 + ConnectPoint ingress = ConnectPoint.deviceConnectPoint(ingressDeviceString);
57 - PortNumber ingressPortNumber = portNumber(getPortNumber(ingressDeviceString));
58 - ConnectPoint ingress = new ConnectPoint(ingressDeviceId,
59 - ingressPortNumber);
60 Optional<MplsLabel> ingressLabel = Optional.empty(); 52 Optional<MplsLabel> ingressLabel = Optional.empty();
61 if (!ingressLabelString.isEmpty()) { 53 if (!ingressLabelString.isEmpty()) {
62 ingressLabel = Optional 54 ingressLabel = Optional
63 .ofNullable(MplsLabel.mplsLabel(parseInt(ingressLabelString))); 55 .ofNullable(MplsLabel.mplsLabel(parseInt(ingressLabelString)));
64 } 56 }
65 57
66 - DeviceId egressDeviceId = deviceId(getDeviceId(egressDeviceString)); 58 + ConnectPoint egress = ConnectPoint.deviceConnectPoint(egressDeviceString);
67 - PortNumber egressPortNumber = portNumber(getPortNumber(egressDeviceString));
68 - ConnectPoint egress = new ConnectPoint(egressDeviceId, egressPortNumber);
69 59
70 Optional<MplsLabel> egressLabel = Optional.empty(); 60 Optional<MplsLabel> egressLabel = Optional.empty();
71 if (!ingressLabelString.isEmpty()) { 61 if (!ingressLabelString.isEmpty()) {
...@@ -92,34 +82,6 @@ public class AddMplsIntent extends ConnectivityIntentCommand { ...@@ -92,34 +82,6 @@ public class AddMplsIntent extends ConnectivityIntentCommand {
92 service.submit(intent); 82 service.submit(intent);
93 } 83 }
94 84
95 - /**
96 - * Extracts the port number portion of the ConnectPoint.
97 - *
98 - * @param deviceString string representing the device/port
99 - * @return port number as a string, empty string if the port is not found
100 - */
101 - public static String getPortNumber(String deviceString) {
102 - int slash = deviceString.indexOf('/');
103 - if (slash <= 0) {
104 - return "";
105 - }
106 - return deviceString.substring(slash + 1, deviceString.length());
107 - }
108 -
109 - /**
110 - * Extracts the device ID portion of the ConnectPoint.
111 - *
112 - * @param deviceString string representing the device/port
113 - * @return device ID string
114 - */
115 - public static String getDeviceId(String deviceString) {
116 - int slash = deviceString.indexOf('/');
117 - if (slash <= 0) {
118 - return "";
119 - }
120 - return deviceString.substring(0, slash);
121 - }
122 -
123 protected Integer parseInt(String value) { 85 protected Integer parseInt(String value) {
124 try { 86 try {
125 return Integer.parseInt(value); 87 return Integer.parseInt(value);
......
...@@ -18,8 +18,6 @@ package org.onosproject.cli.net; ...@@ -18,8 +18,6 @@ package org.onosproject.cli.net;
18 import org.apache.karaf.shell.commands.Argument; 18 import org.apache.karaf.shell.commands.Argument;
19 import org.apache.karaf.shell.commands.Command; 19 import org.apache.karaf.shell.commands.Command;
20 import org.onosproject.net.ConnectPoint; 20 import org.onosproject.net.ConnectPoint;
21 -import org.onosproject.net.DeviceId;
22 -import org.onosproject.net.PortNumber;
23 import org.onosproject.net.flow.TrafficSelector; 21 import org.onosproject.net.flow.TrafficSelector;
24 import org.onosproject.net.flow.TrafficTreatment; 22 import org.onosproject.net.flow.TrafficTreatment;
25 import org.onosproject.net.intent.Constraint; 23 import org.onosproject.net.intent.Constraint;
...@@ -31,9 +29,6 @@ import java.util.HashSet; ...@@ -31,9 +29,6 @@ import java.util.HashSet;
31 import java.util.List; 29 import java.util.List;
32 import java.util.Set; 30 import java.util.Set;
33 31
34 -import static org.onosproject.net.DeviceId.deviceId;
35 -import static org.onosproject.net.PortNumber.portNumber;
36 -
37 /** 32 /**
38 * Installs connectivity intent between multiple ingress devices and a single egress device. 33 * Installs connectivity intent between multiple ingress devices and a single egress device.
39 */ 34 */
...@@ -55,16 +50,12 @@ public class AddMultiPointToSinglePointIntentCommand extends ConnectivityIntentC ...@@ -55,16 +50,12 @@ public class AddMultiPointToSinglePointIntentCommand extends ConnectivityIntentC
55 } 50 }
56 51
57 String egressDeviceString = deviceStrings[deviceStrings.length - 1]; 52 String egressDeviceString = deviceStrings[deviceStrings.length - 1];
58 - DeviceId egressDeviceId = deviceId(getDeviceId(egressDeviceString)); 53 + ConnectPoint egress = ConnectPoint.deviceConnectPoint(egressDeviceString);
59 - PortNumber egressPortNumber = portNumber(getPortNumber(egressDeviceString));
60 - ConnectPoint egress = new ConnectPoint(egressDeviceId, egressPortNumber);
61 - Set<ConnectPoint> ingressPoints = new HashSet<>();
62 54
55 + Set<ConnectPoint> ingressPoints = new HashSet<>();
63 for (int index = 0; index < deviceStrings.length - 1; index++) { 56 for (int index = 0; index < deviceStrings.length - 1; index++) {
64 String ingressDeviceString = deviceStrings[index]; 57 String ingressDeviceString = deviceStrings[index];
65 - DeviceId ingressDeviceId = deviceId(getDeviceId(ingressDeviceString)); 58 + ConnectPoint ingress = ConnectPoint.deviceConnectPoint(ingressDeviceString);
66 - PortNumber ingressPortNumber = portNumber(getPortNumber(ingressDeviceString));
67 - ConnectPoint ingress = new ConnectPoint(ingressDeviceId, ingressPortNumber);
68 ingressPoints.add(ingress); 59 ingressPoints.add(ingress);
69 } 60 }
70 61
...@@ -85,32 +76,4 @@ public class AddMultiPointToSinglePointIntentCommand extends ConnectivityIntentC ...@@ -85,32 +76,4 @@ public class AddMultiPointToSinglePointIntentCommand extends ConnectivityIntentC
85 service.submit(intent); 76 service.submit(intent);
86 print("Multipoint to single point intent submitted:\n%s", intent.toString()); 77 print("Multipoint to single point intent submitted:\n%s", intent.toString());
87 } 78 }
88 -
89 - /**
90 - * Extracts the port number portion of the ConnectPoint.
91 - *
92 - * @param deviceString string representing the device/port
93 - * @return port number as a string, empty string if the port is not found
94 - */
95 - private String getPortNumber(String deviceString) {
96 - int slash = deviceString.indexOf('/');
97 - if (slash <= 0) {
98 - return "";
99 - }
100 - return deviceString.substring(slash + 1, deviceString.length());
101 - }
102 -
103 - /**
104 - * Extracts the device ID portion of the ConnectPoint.
105 - *
106 - * @param deviceString string representing the device/port
107 - * @return device ID string
108 - */
109 - private String getDeviceId(String deviceString) {
110 - int slash = deviceString.indexOf('/');
111 - if (slash <= 0) {
112 - return "";
113 - }
114 - return deviceString.substring(0, slash);
115 - }
116 } 79 }
......
...@@ -15,14 +15,9 @@ ...@@ -15,14 +15,9 @@
15 */ 15 */
16 package org.onosproject.cli.net; 16 package org.onosproject.cli.net;
17 17
18 -import static org.onosproject.net.DeviceId.deviceId;
19 -import static org.onosproject.net.PortNumber.portNumber;
20 -
21 import org.apache.karaf.shell.commands.Argument; 18 import org.apache.karaf.shell.commands.Argument;
22 import org.apache.karaf.shell.commands.Command; 19 import org.apache.karaf.shell.commands.Command;
23 import org.onosproject.net.ConnectPoint; 20 import org.onosproject.net.ConnectPoint;
24 -import org.onosproject.net.DeviceId;
25 -import org.onosproject.net.PortNumber;
26 import org.onosproject.net.intent.Intent; 21 import org.onosproject.net.intent.Intent;
27 import org.onosproject.net.intent.IntentService; 22 import org.onosproject.net.intent.IntentService;
28 import org.onosproject.net.intent.OpticalConnectivityIntent; 23 import org.onosproject.net.intent.OpticalConnectivityIntent;
...@@ -48,13 +43,9 @@ public class AddOpticalIntentCommand extends ConnectivityIntentCommand { ...@@ -48,13 +43,9 @@ public class AddOpticalIntentCommand extends ConnectivityIntentCommand {
48 protected void execute() { 43 protected void execute() {
49 IntentService service = get(IntentService.class); 44 IntentService service = get(IntentService.class);
50 45
51 - DeviceId ingressDeviceId = deviceId(getDeviceId(ingressDeviceString)); 46 + ConnectPoint ingress = ConnectPoint.deviceConnectPoint(ingressDeviceString);
52 - PortNumber ingressPortNumber = portNumber(getPortNumber(ingressDeviceString));
53 - ConnectPoint ingress = new ConnectPoint(ingressDeviceId, ingressPortNumber);
54 47
55 - DeviceId egressDeviceId = deviceId(getDeviceId(egressDeviceString)); 48 + ConnectPoint egress = ConnectPoint.deviceConnectPoint(egressDeviceString);
56 - PortNumber egressPortNumber = portNumber(getPortNumber(egressDeviceString));
57 - ConnectPoint egress = new ConnectPoint(egressDeviceId, egressPortNumber);
58 49
59 Intent intent = OpticalConnectivityIntent.builder() 50 Intent intent = OpticalConnectivityIntent.builder()
60 .appId(appId()) 51 .appId(appId())
...@@ -65,32 +56,4 @@ public class AddOpticalIntentCommand extends ConnectivityIntentCommand { ...@@ -65,32 +56,4 @@ public class AddOpticalIntentCommand extends ConnectivityIntentCommand {
65 service.submit(intent); 56 service.submit(intent);
66 print("Optical intent submitted:\n%s", intent.toString()); 57 print("Optical intent submitted:\n%s", intent.toString());
67 } 58 }
68 -
69 - /**
70 - * Extracts the port number portion of the ConnectPoint.
71 - *
72 - * @param deviceString string representing the device/port
73 - * @return port number as a string, empty string if the port is not found
74 - */
75 - private String getPortNumber(String deviceString) {
76 - int slash = deviceString.indexOf('/');
77 - if (slash <= 0) {
78 - return "";
79 - }
80 - return deviceString.substring(slash + 1, deviceString.length());
81 - }
82 -
83 - /**
84 - * Extracts the device ID portion of the ConnectPoint.
85 - *
86 - * @param deviceString string representing the device/port
87 - * @return device ID string
88 - */
89 - private String getDeviceId(String deviceString) {
90 - int slash = deviceString.indexOf('/');
91 - if (slash <= 0) {
92 - return "";
93 - }
94 - return deviceString.substring(0, slash);
95 - }
96 } 59 }
......
...@@ -15,13 +15,9 @@ ...@@ -15,13 +15,9 @@
15 */ 15 */
16 package org.onosproject.cli.net; 16 package org.onosproject.cli.net;
17 17
18 -import java.util.List;
19 -
20 import org.apache.karaf.shell.commands.Argument; 18 import org.apache.karaf.shell.commands.Argument;
21 import org.apache.karaf.shell.commands.Command; 19 import org.apache.karaf.shell.commands.Command;
22 import org.onosproject.net.ConnectPoint; 20 import org.onosproject.net.ConnectPoint;
23 -import org.onosproject.net.DeviceId;
24 -import org.onosproject.net.PortNumber;
25 import org.onosproject.net.flow.TrafficSelector; 21 import org.onosproject.net.flow.TrafficSelector;
26 import org.onosproject.net.flow.TrafficTreatment; 22 import org.onosproject.net.flow.TrafficTreatment;
27 import org.onosproject.net.intent.Constraint; 23 import org.onosproject.net.intent.Constraint;
...@@ -29,8 +25,7 @@ import org.onosproject.net.intent.Intent; ...@@ -29,8 +25,7 @@ import org.onosproject.net.intent.Intent;
29 import org.onosproject.net.intent.IntentService; 25 import org.onosproject.net.intent.IntentService;
30 import org.onosproject.net.intent.PointToPointIntent; 26 import org.onosproject.net.intent.PointToPointIntent;
31 27
32 -import static org.onosproject.net.DeviceId.deviceId; 28 +import java.util.List;
33 -import static org.onosproject.net.PortNumber.portNumber;
34 29
35 /** 30 /**
36 * Installs point-to-point connectivity intents. 31 * Installs point-to-point connectivity intents.
...@@ -49,18 +44,13 @@ public class AddPointToPointIntentCommand extends ConnectivityIntentCommand { ...@@ -49,18 +44,13 @@ public class AddPointToPointIntentCommand extends ConnectivityIntentCommand {
49 required = true, multiValued = false) 44 required = true, multiValued = false)
50 String egressDeviceString = null; 45 String egressDeviceString = null;
51 46
52 -
53 @Override 47 @Override
54 protected void execute() { 48 protected void execute() {
55 IntentService service = get(IntentService.class); 49 IntentService service = get(IntentService.class);
56 50
57 - DeviceId ingressDeviceId = deviceId(getDeviceId(ingressDeviceString)); 51 + ConnectPoint ingress = ConnectPoint.deviceConnectPoint(ingressDeviceString);
58 - PortNumber ingressPortNumber = portNumber(getPortNumber(ingressDeviceString));
59 - ConnectPoint ingress = new ConnectPoint(ingressDeviceId, ingressPortNumber);
60 52
61 - DeviceId egressDeviceId = deviceId(getDeviceId(egressDeviceString)); 53 + ConnectPoint egress = ConnectPoint.deviceConnectPoint(egressDeviceString);
62 - PortNumber egressPortNumber = portNumber(getPortNumber(egressDeviceString));
63 - ConnectPoint egress = new ConnectPoint(egressDeviceId, egressPortNumber);
64 54
65 TrafficSelector selector = buildTrafficSelector(); 55 TrafficSelector selector = buildTrafficSelector();
66 TrafficTreatment treatment = buildTrafficTreatment(); 56 TrafficTreatment treatment = buildTrafficTreatment();
...@@ -80,32 +70,4 @@ public class AddPointToPointIntentCommand extends ConnectivityIntentCommand { ...@@ -80,32 +70,4 @@ public class AddPointToPointIntentCommand extends ConnectivityIntentCommand {
80 service.submit(intent); 70 service.submit(intent);
81 print("Point to point intent submitted:\n%s", intent.toString()); 71 print("Point to point intent submitted:\n%s", intent.toString());
82 } 72 }
83 -
84 - /**
85 - * Extracts the port number portion of the ConnectPoint.
86 - *
87 - * @param deviceString string representing the device/port
88 - * @return port number as a string, empty string if the port is not found
89 - */
90 - public static String getPortNumber(String deviceString) {
91 - int slash = deviceString.indexOf('/');
92 - if (slash <= 0) {
93 - return "";
94 - }
95 - return deviceString.substring(slash + 1, deviceString.length());
96 - }
97 -
98 - /**
99 - * Extracts the device ID portion of the ConnectPoint.
100 - *
101 - * @param deviceString string representing the device/port
102 - * @return device ID string
103 - */
104 - public static String getDeviceId(String deviceString) {
105 - int slash = deviceString.indexOf('/');
106 - if (slash <= 0) {
107 - return "";
108 - }
109 - return deviceString.substring(0, slash);
110 - }
111 } 73 }
......
...@@ -15,15 +15,9 @@ ...@@ -15,15 +15,9 @@
15 */ 15 */
16 package org.onosproject.cli.net; 16 package org.onosproject.cli.net;
17 17
18 -import java.util.HashSet;
19 -import java.util.List;
20 -import java.util.Set;
21 -
22 import org.apache.karaf.shell.commands.Argument; 18 import org.apache.karaf.shell.commands.Argument;
23 import org.apache.karaf.shell.commands.Command; 19 import org.apache.karaf.shell.commands.Command;
24 import org.onosproject.net.ConnectPoint; 20 import org.onosproject.net.ConnectPoint;
25 -import org.onosproject.net.DeviceId;
26 -import org.onosproject.net.PortNumber;
27 import org.onosproject.net.flow.DefaultTrafficTreatment; 21 import org.onosproject.net.flow.DefaultTrafficTreatment;
28 import org.onosproject.net.flow.TrafficSelector; 22 import org.onosproject.net.flow.TrafficSelector;
29 import org.onosproject.net.flow.TrafficTreatment; 23 import org.onosproject.net.flow.TrafficTreatment;
...@@ -31,8 +25,9 @@ import org.onosproject.net.intent.Constraint; ...@@ -31,8 +25,9 @@ import org.onosproject.net.intent.Constraint;
31 import org.onosproject.net.intent.IntentService; 25 import org.onosproject.net.intent.IntentService;
32 import org.onosproject.net.intent.SinglePointToMultiPointIntent; 26 import org.onosproject.net.intent.SinglePointToMultiPointIntent;
33 27
34 -import static org.onosproject.net.DeviceId.deviceId; 28 +import java.util.HashSet;
35 -import static org.onosproject.net.PortNumber.portNumber; 29 +import java.util.List;
30 +import java.util.Set;
36 31
37 /** 32 /**
38 * Installs connectivity intent between a single ingress device and multiple egress devices. 33 * Installs connectivity intent between a single ingress device and multiple egress devices.
...@@ -54,18 +49,12 @@ public class AddSinglePointToMultiPointIntentCommand extends ConnectivityIntentC ...@@ -54,18 +49,12 @@ public class AddSinglePointToMultiPointIntentCommand extends ConnectivityIntentC
54 } 49 }
55 50
56 String ingressDeviceString = deviceStrings[0]; 51 String ingressDeviceString = deviceStrings[0];
57 - DeviceId ingressDeviceId = deviceId(getDeviceId(ingressDeviceString)); 52 + ConnectPoint ingressPoint = ConnectPoint.deviceConnectPoint(ingressDeviceString);
58 - PortNumber ingressPortNumber = portNumber(getPortNumber(ingressDeviceString));
59 - ConnectPoint ingressPoint = new ConnectPoint(ingressDeviceId,
60 - ingressPortNumber);
61 53
62 Set<ConnectPoint> egressPoints = new HashSet<>(); 54 Set<ConnectPoint> egressPoints = new HashSet<>();
63 for (int index = 1; index < deviceStrings.length; index++) { 55 for (int index = 1; index < deviceStrings.length; index++) {
64 String egressDeviceString = deviceStrings[index]; 56 String egressDeviceString = deviceStrings[index];
65 - DeviceId egressDeviceId = deviceId(getDeviceId(egressDeviceString)); 57 + ConnectPoint egress = ConnectPoint.deviceConnectPoint(egressDeviceString);
66 - PortNumber egressPortNumber = portNumber(getPortNumber(egressDeviceString));
67 - ConnectPoint egress = new ConnectPoint(egressDeviceId,
68 - egressPortNumber);
69 egressPoints.add(egress); 58 egressPoints.add(egress);
70 } 59 }
71 60
...@@ -88,32 +77,4 @@ public class AddSinglePointToMultiPointIntentCommand extends ConnectivityIntentC ...@@ -88,32 +77,4 @@ public class AddSinglePointToMultiPointIntentCommand extends ConnectivityIntentC
88 print("Single point to multipoint intent submitted:\n%s", intent.toString()); 77 print("Single point to multipoint intent submitted:\n%s", intent.toString());
89 } 78 }
90 79
91 - /**
92 - * Extracts the port number portion of the ConnectPoint.
93 - *
94 - * @param deviceString string representing the device/port
95 - * @return port number as a string, empty string if the port is not found
96 - */
97 - private String getPortNumber(String deviceString) {
98 - int slash = deviceString.indexOf('/');
99 - if (slash <= 0) {
100 - return "";
101 - }
102 - return deviceString.substring(slash + 1, deviceString.length());
103 - }
104 -
105 - /**
106 - * Extracts the device ID portion of the ConnectPoint.
107 - *
108 - * @param deviceString string representing the device/port
109 - * @return device ID string
110 - */
111 - private String getDeviceId(String deviceString) {
112 - int slash = deviceString.indexOf('/');
113 - if (slash <= 0) {
114 - return "";
115 - }
116 - return deviceString.substring(0, slash);
117 - }
118 -
119 } 80 }
......
...@@ -25,11 +25,6 @@ import org.onosproject.net.link.LinkService; ...@@ -25,11 +25,6 @@ import org.onosproject.net.link.LinkService;
25 import java.util.List; 25 import java.util.List;
26 import java.util.SortedSet; 26 import java.util.SortedSet;
27 27
28 -import static org.onosproject.cli.net.AddPointToPointIntentCommand.getDeviceId;
29 -import static org.onosproject.cli.net.AddPointToPointIntentCommand.getPortNumber;
30 -import static org.onosproject.net.DeviceId.deviceId;
31 -import static org.onosproject.net.PortNumber.portNumber;
32 -
33 /** 28 /**
34 * Link destination end-point completer. 29 * Link destination end-point completer.
35 */ 30 */
...@@ -49,8 +44,7 @@ public class LinkDstCompleter extends AbstractCompleter { ...@@ -49,8 +44,7 @@ public class LinkDstCompleter extends AbstractCompleter {
49 // Generate the device ID/port number identifiers 44 // Generate the device ID/port number identifiers
50 SortedSet<String> strings = delegate.getStrings(); 45 SortedSet<String> strings = delegate.getStrings();
51 try { 46 try {
52 - ConnectPoint src = new ConnectPoint(deviceId(getDeviceId(srcArg)), 47 + ConnectPoint src = ConnectPoint.deviceConnectPoint(srcArg);
53 - portNumber(getPortNumber(srcArg)));
54 service.getEgressLinks(src) 48 service.getEgressLinks(src)
55 .forEach(link -> strings.add(link.dst().elementId().toString() + 49 .forEach(link -> strings.add(link.dst().elementId().toString() +
56 "/" + link.dst().port())); 50 "/" + link.dst().port()));
......
...@@ -19,18 +19,11 @@ import org.apache.karaf.shell.commands.Argument; ...@@ -19,18 +19,11 @@ import org.apache.karaf.shell.commands.Argument;
19 import org.apache.karaf.shell.commands.Command; 19 import org.apache.karaf.shell.commands.Command;
20 import org.onosproject.cli.AbstractShellCommand; 20 import org.onosproject.cli.AbstractShellCommand;
21 import org.onosproject.net.ConnectPoint; 21 import org.onosproject.net.ConnectPoint;
22 -import org.onosproject.net.DeviceId;
23 import org.onosproject.net.Link; 22 import org.onosproject.net.Link;
24 -import org.onosproject.net.PortNumber;
25 import org.onosproject.net.link.LinkService; 23 import org.onosproject.net.link.LinkService;
26 import org.onosproject.net.resource.LinkResourceAllocations; 24 import org.onosproject.net.resource.LinkResourceAllocations;
27 import org.onosproject.net.resource.LinkResourceService; 25 import org.onosproject.net.resource.LinkResourceService;
28 26
29 -import static org.onosproject.cli.net.AddPointToPointIntentCommand.getDeviceId;
30 -import static org.onosproject.cli.net.AddPointToPointIntentCommand.getPortNumber;
31 -import static org.onosproject.net.DeviceId.deviceId;
32 -import static org.onosproject.net.PortNumber.portNumber;
33 -
34 /** 27 /**
35 * Lists allocations by link. 28 * Lists allocations by link.
36 */ 29 */
...@@ -55,13 +48,9 @@ public class ResourceAllocationsCommand extends AbstractShellCommand { ...@@ -55,13 +48,9 @@ public class ResourceAllocationsCommand extends AbstractShellCommand {
55 48
56 Iterable<LinkResourceAllocations> itr = null; 49 Iterable<LinkResourceAllocations> itr = null;
57 try { 50 try {
58 - DeviceId ingressDeviceId = deviceId(getDeviceId(srcString)); 51 + ConnectPoint src = ConnectPoint.deviceConnectPoint(srcString);
59 - PortNumber ingressPortNumber = portNumber(getPortNumber(srcString));
60 - ConnectPoint src = new ConnectPoint(ingressDeviceId, ingressPortNumber);
61 52
62 - DeviceId egressDeviceId = deviceId(getDeviceId(dstString)); 53 + ConnectPoint dst = ConnectPoint.deviceConnectPoint(dstString);
63 - PortNumber egressPortNumber = portNumber(getPortNumber(dstString));
64 - ConnectPoint dst = new ConnectPoint(egressDeviceId, egressPortNumber);
65 54
66 Link link = linkService.getLink(src, dst); 55 Link link = linkService.getLink(src, dst);
67 56
......
...@@ -19,18 +19,11 @@ import org.apache.karaf.shell.commands.Argument; ...@@ -19,18 +19,11 @@ import org.apache.karaf.shell.commands.Argument;
19 import org.apache.karaf.shell.commands.Command; 19 import org.apache.karaf.shell.commands.Command;
20 import org.onosproject.cli.AbstractShellCommand; 20 import org.onosproject.cli.AbstractShellCommand;
21 import org.onosproject.net.ConnectPoint; 21 import org.onosproject.net.ConnectPoint;
22 -import org.onosproject.net.DeviceId;
23 import org.onosproject.net.Link; 22 import org.onosproject.net.Link;
24 -import org.onosproject.net.PortNumber;
25 import org.onosproject.net.link.LinkService; 23 import org.onosproject.net.link.LinkService;
26 import org.onosproject.net.resource.LinkResourceService; 24 import org.onosproject.net.resource.LinkResourceService;
27 import org.onosproject.net.resource.ResourceRequest; 25 import org.onosproject.net.resource.ResourceRequest;
28 26
29 -import static org.onosproject.cli.net.AddPointToPointIntentCommand.getDeviceId;
30 -import static org.onosproject.cli.net.AddPointToPointIntentCommand.getPortNumber;
31 -import static org.onosproject.net.DeviceId.deviceId;
32 -import static org.onosproject.net.PortNumber.portNumber;
33 -
34 /** 27 /**
35 * Lists allocations by link. 28 * Lists allocations by link.
36 */ 29 */
...@@ -55,13 +48,9 @@ public class ResourceAvailableCommand extends AbstractShellCommand { ...@@ -55,13 +48,9 @@ public class ResourceAvailableCommand extends AbstractShellCommand {
55 48
56 Iterable<ResourceRequest> itr = null; 49 Iterable<ResourceRequest> itr = null;
57 try { 50 try {
58 - DeviceId ingressDeviceId = deviceId(getDeviceId(srcString)); 51 + ConnectPoint src = ConnectPoint.deviceConnectPoint(srcString);
59 - PortNumber ingressPortNumber = portNumber(getPortNumber(srcString));
60 - ConnectPoint src = new ConnectPoint(ingressDeviceId, ingressPortNumber);
61 52
62 - DeviceId egressDeviceId = deviceId(getDeviceId(dstString)); 53 + ConnectPoint dst = ConnectPoint.deviceConnectPoint(dstString);
63 - PortNumber egressPortNumber = portNumber(getPortNumber(dstString));
64 - ConnectPoint dst = new ConnectPoint(egressDeviceId, egressPortNumber);
65 54
66 Link link = linkService.getLink(src, dst); 55 Link link = linkService.getLink(src, dst);
67 56
......
...@@ -15,9 +15,12 @@ ...@@ -15,9 +15,12 @@
15 */ 15 */
16 package org.onosproject.net; 16 package org.onosproject.net;
17 17
18 +import com.google.common.base.MoreObjects;
19 +
18 import java.util.Objects; 20 import java.util.Objects;
19 21
20 -import com.google.common.base.MoreObjects; 22 +import static com.google.common.base.Preconditions.checkArgument;
23 +import static com.google.common.base.Preconditions.checkNotNull;
21 24
22 /** 25 /**
23 * Abstraction of a network connection point expressed as a pair of the 26 * Abstraction of a network connection point expressed as a pair of the
...@@ -90,6 +93,42 @@ public class ConnectPoint { ...@@ -90,6 +93,42 @@ public class ConnectPoint {
90 return portNumber; 93 return portNumber;
91 } 94 }
92 95
96 + /**
97 + * Parse a device connect point from a string.
98 + * The connect point should be in the format "deviceUri/portNumber".
99 + *
100 + * @param string string to parse
101 + * @return a ConnectPoint based on the information in the string.
102 + */
103 + public static ConnectPoint deviceConnectPoint(String string) {
104 + checkNotNull(string);
105 + String[] splitted = string.split("/");
106 + checkArgument(splitted.length == 2,
107 + "Connect point must be in \"deviceUri/portNumber\" format");
108 +
109 + return new ConnectPoint(DeviceId.deviceId(splitted[0]),
110 + PortNumber.portNumber(splitted[1]));
111 + }
112 +
113 + /**
114 + * Parse a host connect point from a string.
115 + * The connect point should be in the format "hostId/vlanId/portNumber".
116 + *
117 + * @param string string to parse
118 + * @return a ConnectPoint based on the information in the string.
119 + */
120 + public static ConnectPoint hostConnectPoint(String string) {
121 + checkNotNull(string);
122 + String[] splitted = string.split("/");
123 + checkArgument(splitted.length == 3,
124 + "Connect point must be in \"hostId/vlanId/portNumber\" format");
125 +
126 + int lastSlash = string.lastIndexOf("/");
127 +
128 + return new ConnectPoint(HostId.hostId(string.substring(0, lastSlash)),
129 + PortNumber.portNumber(string.substring(lastSlash + 1, string.length())));
130 + }
131 +
93 @Override 132 @Override
94 public int hashCode() { 133 public int hashCode() {
95 return Objects.hash(elementId, portNumber); 134 return Objects.hash(elementId, portNumber);
......
...@@ -18,12 +18,14 @@ package org.onosproject.net; ...@@ -18,12 +18,14 @@ package org.onosproject.net;
18 import com.google.common.testing.EqualsTester; 18 import com.google.common.testing.EqualsTester;
19 import org.junit.Test; 19 import org.junit.Test;
20 20
21 +import static junit.framework.TestCase.fail;
21 import static org.junit.Assert.assertEquals; 22 import static org.junit.Assert.assertEquals;
23 +import static org.junit.Assert.assertTrue;
22 import static org.onosproject.net.DeviceId.deviceId; 24 import static org.onosproject.net.DeviceId.deviceId;
23 import static org.onosproject.net.PortNumber.portNumber; 25 import static org.onosproject.net.PortNumber.portNumber;
24 26
25 /** 27 /**
26 - * Test of the connetion point entity. 28 + * Test of the connection point entity.
27 */ 29 */
28 public class ConnectPointTest { 30 public class ConnectPointTest {
29 31
...@@ -39,7 +41,6 @@ public class ConnectPointTest { ...@@ -39,7 +41,6 @@ public class ConnectPointTest {
39 assertEquals("incorrect element id", P2, p.port()); 41 assertEquals("incorrect element id", P2, p.port());
40 } 42 }
41 43
42 -
43 @Test 44 @Test
44 public void testEquality() { 45 public void testEquality() {
45 new EqualsTester() 46 new EqualsTester()
...@@ -48,4 +49,62 @@ public class ConnectPointTest { ...@@ -48,4 +49,62 @@ public class ConnectPointTest {
48 .addEqualityGroup(new ConnectPoint(DID2, P1), new ConnectPoint(DID2, P1)) 49 .addEqualityGroup(new ConnectPoint(DID2, P1), new ConnectPoint(DID2, P1))
49 .testEquals(); 50 .testEquals();
50 } 51 }
52 +
53 + @Test
54 + public void testParseDeviceConnectPoint() {
55 + String cp = "of:0011223344556677/1";
56 +
57 + ConnectPoint connectPoint = ConnectPoint.deviceConnectPoint(cp);
58 + assertEquals("of:0011223344556677", connectPoint.deviceId().toString());
59 + assertEquals("1", connectPoint.port().toString());
60 +
61 + expectDeviceParseException("");
62 + expectDeviceParseException("1/");
63 + expectDeviceParseException("1/1/1");
64 + expectDeviceParseException("of:0011223344556677/word");
65 + }
66 +
67 + /**
68 + * Parse a device connect point and expect an exception to be thrown.
69 + *
70 + * @param string string to parse
71 + */
72 + private static void expectDeviceParseException(String string) {
73 + try {
74 + ConnectPoint.deviceConnectPoint(string);
75 + fail("Expected exception was not thrown");
76 + } catch (Exception e) {
77 + assertTrue(true);
78 + }
79 + }
80 +
81 + @Test
82 + public void testParseHostConnectPoint() {
83 + String cp = "16:3A:BD:6E:31:E4/-1/1";
84 +
85 + ConnectPoint connectPoint = ConnectPoint.hostConnectPoint(cp);
86 + assertEquals("16:3A:BD:6E:31:E4/-1", connectPoint.hostId().toString());
87 + assertEquals("1", connectPoint.port().toString());
88 +
89 + expectHostParseException("");
90 + expectHostParseException("1/");
91 + expectHostParseException("1/1");
92 + expectHostParseException("1/1/1/1");
93 + expectHostParseException("16:3A:BD:6E:31:E4/word/1");
94 + expectHostParseException("16:3A:BD:6E:31:E4/1/word");
95 + }
96 +
97 + /**
98 + * Parse a host connect point and expect an exception to be thrown.
99 + *
100 + * @param string string to parse
101 + */
102 + private static void expectHostParseException(String string) {
103 + try {
104 + ConnectPoint.hostConnectPoint(string);
105 + fail("Expected exception was not thrown");
106 + } catch (Exception e) {
107 + assertTrue(true);
108 + }
109 + }
51 } 110 }
......
...@@ -19,16 +19,10 @@ import org.apache.karaf.shell.commands.Argument; ...@@ -19,16 +19,10 @@ import org.apache.karaf.shell.commands.Argument;
19 import org.apache.karaf.shell.commands.Command; 19 import org.apache.karaf.shell.commands.Command;
20 import org.onosproject.cli.AbstractShellCommand; 20 import org.onosproject.cli.AbstractShellCommand;
21 import org.onosproject.net.ConnectPoint; 21 import org.onosproject.net.ConnectPoint;
22 -import org.onosproject.net.DeviceId;
23 -import org.onosproject.net.PortNumber;
24 import org.onosproject.provider.nil.NullProviders; 22 import org.onosproject.provider.nil.NullProviders;
25 23
26 import static org.onosproject.cli.UpDownCompleter.DOWN; 24 import static org.onosproject.cli.UpDownCompleter.DOWN;
27 import static org.onosproject.cli.UpDownCompleter.UP; 25 import static org.onosproject.cli.UpDownCompleter.UP;
28 -import static org.onosproject.cli.net.AddPointToPointIntentCommand.getDeviceId;
29 -import static org.onosproject.cli.net.AddPointToPointIntentCommand.getPortNumber;
30 -import static org.onosproject.net.DeviceId.deviceId;
31 -import static org.onosproject.net.PortNumber.portNumber;
32 26
33 /** 27 /**
34 * Servers or repairs a simulated link. 28 * Servers or repairs a simulated link.
...@@ -55,13 +49,9 @@ public class NullLinkCommand extends AbstractShellCommand { ...@@ -55,13 +49,9 @@ public class NullLinkCommand extends AbstractShellCommand {
55 NullProviders service = get(NullProviders.class); 49 NullProviders service = get(NullProviders.class);
56 50
57 try { 51 try {
58 - DeviceId oneId = deviceId(getDeviceId(one)); 52 + ConnectPoint onePoint = ConnectPoint.deviceConnectPoint(one);
59 - PortNumber onePort = portNumber(getPortNumber(one));
60 - ConnectPoint onePoint = new ConnectPoint(oneId, onePort);
61 53
62 - DeviceId twoId = deviceId(getDeviceId(two)); 54 + ConnectPoint twoPoint = ConnectPoint.deviceConnectPoint(two);
63 - PortNumber twoPort = portNumber(getPortNumber(two));
64 - ConnectPoint twoPoint = new ConnectPoint(twoId, twoPort);
65 55
66 if (cmd.equals(UP)) { 56 if (cmd.equals(UP)) {
67 service.repairLink(onePoint, twoPoint); 57 service.repairLink(onePoint, twoPoint);
......