Currently, SSH console of BGPSpeaker fails to recieve commands from user when it is running on Python3 due to the binary conversion. This patch fixes this problem and enables to use SSH console on Python3.
Signed-off-by: IWASE Yusuke <iwase.yusu...@gmail.com> --- .../protocols/bgp/operator/commands/show/route_formatter_mixin.py | 2 +- ryu/services/protocols/bgp/operator/ssh.py | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/ryu/services/protocols/bgp/operator/commands/show/route_formatter_mixin.py b/ryu/services/protocols/bgp/operator/commands/show/route_formatter_mixin.py index e29c7c7..4e0a9b3 100644 --- a/ryu/services/protocols/bgp/operator/commands/show/route_formatter_mixin.py +++ b/ryu/services/protocols/bgp/operator/commands/show/route_formatter_mixin.py @@ -41,7 +41,7 @@ class RouteFormatterMixin(object): prefix = path.get('prefix') # Append path info to String buffer. - buff.write(cls.fmtstr.format(path_status, prefix, labels, + buff.write(cls.fmtstr.format(path_status, prefix, str(labels), next_hop, bpr, str(med), str(localpref), ' '.join(map(str, aspath)))) diff --git a/ryu/services/protocols/bgp/operator/ssh.py b/ryu/services/protocols/bgp/operator/ssh.py index 8a584db..4187332 100644 --- a/ryu/services/protocols/bgp/operator/ssh.py +++ b/ryu/services/protocols/bgp/operator/ssh.py @@ -152,6 +152,7 @@ Hello, this is Ryu BGP speaker (version %s). def _handle_csi_seq(self): c = self.chan.recv(1) + c = c.decode() # For Python3 compatibility if c == 'A': self._lookup_hist_up() elif c == 'B': @@ -165,13 +166,14 @@ Hello, this is Ryu BGP speaker (version %s). def _handle_esc_seq(self): c = self.chan.recv(1) + c = c.decode() # For Python3 compatibility if c == '[': self._handle_csi_seq() else: LOG.error("non CSI sequence. do nothing") def _send_csi_seq(self, cmd): - self.chan.send(b'\x1b[' + cmd) + self.chan.send('\x1b[' + cmd) def _movcursor(self, curpos): if self.prompted and curpos < len(self.PROMPT): @@ -347,6 +349,7 @@ Hello, this is Ryu BGP speaker (version %s). while True: c = self.chan.recv(1) + c = c.decode() # For Python3 compatibility if len(c) == 0: break -- 2.7.4 ------------------------------------------------------------------------------ _______________________________________________ Ryu-devel mailing list Ryu-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/ryu-devel