Committed by
Gerrit Code Review
ONOS-4000 trimming reply from device and minor Netconf classes refactoring
Change-Id: I33a6d5cac8a2523d377c662e3ae362903d9883fb
Showing
4 changed files
with
18 additions
and
23 deletions
... | @@ -16,8 +16,7 @@ | ... | @@ -16,8 +16,7 @@ |
16 | --> | 16 | --> |
17 | <drivers> | 17 | <drivers> |
18 | <!--This driver is for simulated NETCONF devices through of-config tool on top og OVSDB--> | 18 | <!--This driver is for simulated NETCONF devices through of-config tool on top og OVSDB--> |
19 | - <driver name="ovs-netconf" extends="default,ovs" | 19 | + <driver name="ovs-netconf" manufacturer="" hwVersion="" swVersion=""> |
20 | - manufacturer="" hwVersion="" swVersion=""> | ||
21 | <behaviour api="org.onosproject.net.behaviour.ControllerConfig" | 20 | <behaviour api="org.onosproject.net.behaviour.ControllerConfig" |
22 | impl="org.onosproject.drivers.netconf.NetconfControllerConfig"/> | 21 | impl="org.onosproject.drivers.netconf.NetconfControllerConfig"/> |
23 | <behaviour api="org.onosproject.net.behaviour.ConfigGetter" | 22 | <behaviour api="org.onosproject.net.behaviour.ConfigGetter" |
... | @@ -25,7 +24,7 @@ | ... | @@ -25,7 +24,7 @@ |
25 | <behaviour api="org.onosproject.net.behaviour.ConfigSetter" | 24 | <behaviour api="org.onosproject.net.behaviour.ConfigSetter" |
26 | impl="org.onosproject.drivers.netconf.NetconfConfigSetter"/> | 25 | impl="org.onosproject.drivers.netconf.NetconfConfigSetter"/> |
27 | </driver> | 26 | </driver> |
28 | - <driver name="netconf" extends="default"> | 27 | + <driver name="netconf" manufacturer="" hwVersion="" swVersion=""> |
29 | <behaviour api="org.onosproject.net.behaviour.ConfigGetter" | 28 | <behaviour api="org.onosproject.net.behaviour.ConfigGetter" |
30 | impl="org.onosproject.drivers.netconf.NetconfConfigGetter"/> | 29 | impl="org.onosproject.drivers.netconf.NetconfConfigGetter"/> |
31 | <behaviour api="org.onosproject.net.behaviour.ConfigSetter" | 30 | <behaviour api="org.onosproject.net.behaviour.ConfigSetter" | ... | ... |
... | @@ -32,7 +32,7 @@ import java.io.IOException; | ... | @@ -32,7 +32,7 @@ import java.io.IOException; |
32 | public class DefaultNetconfDevice implements NetconfDevice { | 32 | public class DefaultNetconfDevice implements NetconfDevice { |
33 | 33 | ||
34 | public static final Logger log = LoggerFactory | 34 | public static final Logger log = LoggerFactory |
35 | - .getLogger(NetconfSessionImpl.class); | 35 | + .getLogger(DefaultNetconfDevice.class); |
36 | 36 | ||
37 | private NetconfDeviceInfo netconfDeviceInfo; | 37 | private NetconfDeviceInfo netconfDeviceInfo; |
38 | private boolean deviceState = false; | 38 | private boolean deviceState = false; |
... | @@ -75,7 +75,7 @@ public class DefaultNetconfDevice implements NetconfDevice { | ... | @@ -75,7 +75,7 @@ public class DefaultNetconfDevice implements NetconfDevice { |
75 | try { | 75 | try { |
76 | netconfSession.close(); | 76 | netconfSession.close(); |
77 | } catch (IOException e) { | 77 | } catch (IOException e) { |
78 | - log.warn("Cannot communicate with the device {} ", netconfDeviceInfo); | 78 | + log.warn("Cannot communicate with the device {} session already closed", netconfDeviceInfo); |
79 | } | 79 | } |
80 | } | 80 | } |
81 | 81 | ... | ... |
... | @@ -101,7 +101,7 @@ public class NetconfSessionImpl implements NetconfSession { | ... | @@ -101,7 +101,7 @@ public class NetconfSessionImpl implements NetconfSession { |
101 | deviceInfo.password()); | 101 | deviceInfo.password()); |
102 | } else { | 102 | } else { |
103 | log.debug("Authenticating to device {} with username {}", | 103 | log.debug("Authenticating to device {} with username {}", |
104 | - deviceInfo.getDeviceId(), deviceInfo.name(), deviceInfo.password()); | 104 | + deviceInfo.getDeviceId(), deviceInfo.name()); |
105 | isAuthenticated = netconfConnection.authenticateWithPassword( | 105 | isAuthenticated = netconfConnection.authenticateWithPassword( |
106 | deviceInfo.name(), deviceInfo.password()); | 106 | deviceInfo.name(), deviceInfo.password()); |
107 | } | 107 | } |
... | @@ -117,8 +117,7 @@ public class NetconfSessionImpl implements NetconfSession { | ... | @@ -117,8 +117,7 @@ public class NetconfSessionImpl implements NetconfSession { |
117 | Preconditions.checkArgument(isAuthenticated, | 117 | Preconditions.checkArgument(isAuthenticated, |
118 | "Authentication to device {} with username " + | 118 | "Authentication to device {} with username " + |
119 | "{} Failed", | 119 | "{} Failed", |
120 | - deviceInfo.getDeviceId(), deviceInfo.name(), | 120 | + deviceInfo.getDeviceId(), deviceInfo.name()); |
121 | - deviceInfo.password()); | ||
122 | startSshSession(); | 121 | startSshSession(); |
123 | } | 122 | } |
124 | } | 123 | } |
... | @@ -170,7 +169,7 @@ public class NetconfSessionImpl implements NetconfSession { | ... | @@ -170,7 +169,7 @@ public class NetconfSessionImpl implements NetconfSession { |
170 | try { | 169 | try { |
171 | startConnection(); | 170 | startConnection(); |
172 | } catch (IOException e2) { | 171 | } catch (IOException e2) { |
173 | - log.error("No connection {} for device, exception {}", netconfConnection, e2); | 172 | + log.error("No connection {} for device", netconfConnection, e2); |
174 | throw new NetconfException("Cannot re-open the connection with device" + deviceInfo, e); | 173 | throw new NetconfException("Cannot re-open the connection with device" + deviceInfo, e); |
175 | } | 174 | } |
176 | } | 175 | } |
... | @@ -206,7 +205,7 @@ public class NetconfSessionImpl implements NetconfSession { | ... | @@ -206,7 +205,7 @@ public class NetconfSessionImpl implements NetconfSession { |
206 | throw new NetconfException("No matching reply for request " + request, e); | 205 | throw new NetconfException("No matching reply for request " + request, e); |
207 | } | 206 | } |
208 | log.debug("Result {} from request {} to device {}", rp, request, deviceInfo); | 207 | log.debug("Result {} from request {} to device {}", rp, request, deviceInfo); |
209 | - return rp; | 208 | + return rp.trim(); |
210 | } | 209 | } |
211 | 210 | ||
212 | private String formatRequestMessageId(String request) { | 211 | private String formatRequestMessageId(String request) { |
... | @@ -284,19 +283,20 @@ public class NetconfSessionImpl implements NetconfSession { | ... | @@ -284,19 +283,20 @@ public class NetconfSessionImpl implements NetconfSession { |
284 | rpc.append(messageIdInteger.get()); | 283 | rpc.append(messageIdInteger.get()); |
285 | rpc.append("\" "); | 284 | rpc.append("\" "); |
286 | rpc.append("xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">\n"); | 285 | rpc.append("xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\">\n"); |
287 | - rpc.append("<edit-config>"); | 286 | + rpc.append("<edit-config>\n"); |
288 | rpc.append("<target>"); | 287 | rpc.append("<target>"); |
289 | rpc.append("<").append(targetConfiguration).append("/>"); | 288 | rpc.append("<").append(targetConfiguration).append("/>"); |
290 | - rpc.append("</target>"); | 289 | + rpc.append("</target>\n"); |
291 | rpc.append("<default-operation>"); | 290 | rpc.append("<default-operation>"); |
292 | rpc.append(mode); | 291 | rpc.append(mode); |
293 | - rpc.append("</default-operation>"); | 292 | + rpc.append("</default-operation>\n"); |
294 | - rpc.append("<config>"); | 293 | + rpc.append("<config>\n"); |
295 | rpc.append(newConfiguration); | 294 | rpc.append(newConfiguration); |
296 | - rpc.append("</config>"); | 295 | + rpc.append("</config>\n"); |
297 | - rpc.append("</edit-config>"); | 296 | + rpc.append("</edit-config>\n"); |
298 | rpc.append("</rpc>"); | 297 | rpc.append("</rpc>"); |
299 | rpc.append(ENDPATTERN); | 298 | rpc.append(ENDPATTERN); |
299 | + log.info(rpc.toString()); | ||
300 | return checkReply(sendRequest(rpc.toString())); | 300 | return checkReply(sendRequest(rpc.toString())); |
301 | } | 301 | } |
302 | 302 | ... | ... |
... | @@ -161,13 +161,8 @@ public class NetconfStreamThread extends Thread implements NetconfStreamHandler | ... | @@ -161,13 +161,8 @@ public class NetconfStreamThread extends Thread implements NetconfStreamHandler |
161 | while (!socketClosed) { | 161 | while (!socketClosed) { |
162 | int cInt = bufferReader.read(); | 162 | int cInt = bufferReader.read(); |
163 | if (cInt == -1) { | 163 | if (cInt == -1) { |
164 | - socketClosed = true; | 164 | + log.debug("Netconf device {} sent error char in session," + |
165 | - log.debug("char {} " + bufferReader.read()); | 165 | + " will need to be reopend", netconfDeviceInfo); |
166 | - NetconfDeviceOutputEvent event = new NetconfDeviceOutputEvent( | ||
167 | - NetconfDeviceOutputEvent.Type.DEVICE_UNREGISTERED, | ||
168 | - null, null, Optional.of(-1), netconfDeviceInfo); | ||
169 | - netconfDeviceEventListeners.forEach( | ||
170 | - listener -> listener.event(event)); | ||
171 | } | 166 | } |
172 | char c = (char) cInt; | 167 | char c = (char) cInt; |
173 | state = state.evaluateChar(c); | 168 | state = state.evaluateChar(c); |
... | @@ -175,6 +170,7 @@ public class NetconfStreamThread extends Thread implements NetconfStreamHandler | ... | @@ -175,6 +170,7 @@ public class NetconfStreamThread extends Thread implements NetconfStreamHandler |
175 | if (state == NetconfMessageState.END_PATTERN) { | 170 | if (state == NetconfMessageState.END_PATTERN) { |
176 | String deviceReply = deviceReplyBuilder.toString(); | 171 | String deviceReply = deviceReplyBuilder.toString(); |
177 | if (deviceReply.equals(END_PATTERN)) { | 172 | if (deviceReply.equals(END_PATTERN)) { |
173 | + socketClosed = true; | ||
178 | NetconfDeviceOutputEvent event = new NetconfDeviceOutputEvent( | 174 | NetconfDeviceOutputEvent event = new NetconfDeviceOutputEvent( |
179 | NetconfDeviceOutputEvent.Type.DEVICE_UNREGISTERED, | 175 | NetconfDeviceOutputEvent.Type.DEVICE_UNREGISTERED, |
180 | null, null, Optional.of(-1), netconfDeviceInfo); | 176 | null, null, Optional.of(-1), netconfDeviceInfo); | ... | ... |
-
Please register or login to post a comment