> On 6. Dec 2018, at 12:12, Tomcsányi, Domonkos <[email protected]> wrote:
> 
> Hi Neels,
> 
> 2018. dec. 6. dátummal, 13:38 időpontban Neels Hofmeyr <[email protected]> 
> írta:
> 
>> 
>> Those are the projects that run the python-based external tests, which 
>> involve
>> opening up VTY and CTRL ports among others, because we start up the program 
>> and
>> interact with it on VTY and CTRL. That means each of those projects is not 
>> able
>> to run tests more than once per slave, or we get sporadic conflicts of not
>> being able to start the main program. That was really annoying.
>> 
>> Another complex way would be to round robin through a range of ports or
>> localhost addresses or something, and tweak the .cfg for each test run so 
>> that
>> the ports never conflict :/
>> 
>> Or some sort of network segmenting?
> 
> I think Linux network namespaces would be a possible solution for this issue, 
> if I understood correctly, but setting that up feels to me more complicated 
> then using Docker.
> Just my 2cents.

I just skimmed through this thread but it seems to have the right answers.

The primary reason was being able to run multiple instances of the VTY tests
without having to make the (test)software more complex (e.g. bind to vty
port 0 and then parse it) (and the db paths and af_unix paths)


Secondary reasons are making the build environment volatile and managing the
dependencies differently.


For the primary one I looked at "ip netns exec" first but IIRC couldn't find
tools to automatically clean things up. I briefly considered writing something
that does clone+unshare(2) but the toolchain of docker was further and provided
immediate results.

holger

Reply via email to