Control: tags -1 + patch fixed-upstream

On Fri, 10 Nov 2017 12:15:39 +0100 "Santiago R.R." <santiag...@riseup.net> 
wrote:
…
> mn tries to run ovs-controller, which has been renamed to
> /usr/bin/ovs-testcontroller according to
> https://github.com/openvswitch/ovs/blob/9a180f2c002adf73951e0ee9990c44e5e5cd4a0f/NEWS#L600

ovs-controller -> test-controller -> ovs-testcontroller

https://github.com/openvswitch/ovs/blob/9a180f2c002adf73951e0ee9990c44e5e5cd4a0f/NEWS#L471

> mininet should Depends or Recomends on openvswitch-testcontroller

It seems I am wrong about this.

> 
> $ sudo mn --topo tree,depth=2,fanout=3
> *** Creating network
> *** Adding controller
> *** Adding hosts:
> h1 h2 h3 h4 h5 h6 h7 h8 h9
> *** Adding switches:
> s1 s2 s3 s4
> *** Adding links:
> (s1, s2) (s1, s3) (s1, s4) (s2, h1) (s2, h2) (s2, h3) (s3, h4) (s3, h5) (s3, 
> h6) (s4, h7) (s4, h8) (s4, h9)
> *** Configuring hosts
> h1 h2 h3 h4 h5 h6 h7 h8 h9
> *** Starting controller
> c0 Cannot find required executable ovs-controller.
> Please make sure that it is installed and available in your $PATH:
> (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)
…
> Versions of packages mininet depends on:
> ii  cgroup-bin            0.41-8
> ii  iperf                 2.0.10+dfsg1-1
> ii  libc6                 2.24-17
> ii  net-tools             1.60+git20161116.90da8a0-1
> ii  openvswitch-switch    2.8.1+dfsg1-3
> ii  python                2.7.14-1
> ii  python-pkg-resources  36.6.0-1
> ii  socat                 1.7.3.2-1
> ii  telnet                0.17-41

(I am new on this, and I am trying to understand how mininet relies on
openvswitch, so sorry if what I say doesn't make any sense.)

Actually, the issue doesn't happen in stretch or buster, or more
precisely, with openvswitch-switch 2.6.2~pre+git20161223-3.

As far as I understand, the reason why mininet complains against
openvswtich is because openvswith-common includes
/usr/bin/ovs-testcontroller since 2.8.1+dfsg1-1. Binary that was part of
openvswitch-testcontroller before. Installing -testcontroller in stretch
or buster makes that mininet also complains.

And it also seems that it was already fixed by upstream in commit
57abd9baef8b3ec3ce3c349829b37022cfef724a. Patch attached to this mail.

Cheers,

  -- Santiago

P.S. Question for openvswitch maintainers: does it make sense to include
back /usr/bin/ovs-testcontroller in the -testcontroller package?
From a5a3485edbb15d2442eb42d776fb9ba370526e7a Mon Sep 17 00:00:00 2001
From: Santiago <santiago.ruano-rin...@telecom-bretagne.eu>
Date: Wed, 29 Nov 2017 18:30:12 +0100
Subject: [PATCH] Add
 debian/patches/upstream_0001-Use-correct-command-name-in-OVSController.patch
 to take into account the three possible names of ovs-testcontroller

Signed-off-by: Santiago <santiago.ruano-rin...@telecom-bretagne.eu>
---
 debian/patches/series                              |  1 +
 ...Use-correct-command-name-in-OVSController.patch | 38 ++++++++++++++++++++++
 2 files changed, 39 insertions(+)
 create mode 100644 debian/patches/series
 create mode 100644 debian/patches/upstream_0001-Use-correct-command-name-in-OVSController.patch

diff --git a/debian/patches/series b/debian/patches/series
new file mode 100644
index 0000000..54f122c
--- /dev/null
+++ b/debian/patches/series
@@ -0,0 +1 @@
+upstream_0001-Use-correct-command-name-in-OVSController.patch
diff --git a/debian/patches/upstream_0001-Use-correct-command-name-in-OVSController.patch b/debian/patches/upstream_0001-Use-correct-command-name-in-OVSController.patch
new file mode 100644
index 0000000..e91ea01
--- /dev/null
+++ b/debian/patches/upstream_0001-Use-correct-command-name-in-OVSController.patch
@@ -0,0 +1,38 @@
+From 57abd9baef8b3ec3ce3c349829b37022cfef724a Mon Sep 17 00:00:00 2001
+From: Bob Lantz <rla...@cs.stanford.edu>
+Date: Tue, 24 May 2016 17:40:00 -0700
+Subject: [PATCH] Use correct command name in OVSController
+
+---
+ mininet/node.py | 10 +++++-----
+ 1 file changed, 5 insertions(+), 5 deletions(-)
+
+diff --git a/mininet/node.py b/mininet/node.py
+index ea7851b..1e50b51 100644
+--- a/mininet/node.py
++++ b/mininet/node.py
+@@ -1423,16 +1423,16 @@ def isAvailable( cls ):
+ 
+ class OVSController( Controller ):
+     "Open vSwitch controller"
+-    def __init__( self, name, command='ovs-controller', **kwargs ):
+-        if quietRun( 'which test-controller' ):
+-            command = 'test-controller'
+-        Controller.__init__( self, name, command=command, **kwargs )
++    def __init__( self, name, **kwargs ):
++        kwargs.setdefault( 'command', self.isAvailable() or
++                           'ovs-controller' )
++        Controller.__init__( self, name, **kwargs )
+ 
+     @classmethod
+     def isAvailable( cls ):
+         return ( quietRun( 'which ovs-controller' ) or
+                  quietRun( 'which test-controller' ) or
+-                 quietRun( 'which ovs-testcontroller' ) )
++                 quietRun( 'which ovs-testcontroller' ) ).strip()
+ 
+ class NOX( Controller ):
+     "Controller to run a NOX application."
+-- 
+2.11.0
+
-- 
2.11.0

Attachment: signature.asc
Description: PGP signature

Reply via email to