Hi Iwase-san,

I am sorry for the delay in my reply.

On Mon, 7 Nov 2016 16:08:09 +0900
Iwase Yusuke <[email protected]> wrote:

> Hi Kakuma-San,
> 
> Could you check my answer as following?
> This patch will fix the Travis-CI build error of Ryu upstream.
> 

I also was checking it and I found that it is caused by the fact that
tinyrpc is not installed.
I answered in inline.

> Thanks,
> Iwase
> 
> 
> On 2016年11月06日 14:28, Iwase Yusuke wrote:
> > Hi, Kakuma-San,
> >
> >
> > On 2016年11月04日 06:52, fumihiko kakuma wrote:
> >> Hi Iwase-san,
> >>
> >> On Wed,  2 Nov 2016 16:51:35 +0900
> >> IWASE Yusuke <[email protected]> wrote:
> >>
> >>> Signed-off-by: IWASE Yusuke <[email protected]>
> >>> ---
> >>>  ryu/tests/integrated/common/docker_base.py | 23 +++++++++++++----------
> >>>  1 file changed, 13 insertions(+), 10 deletions(-)
> >>>
> >>> diff --git a/ryu/tests/integrated/common/docker_base.py 
> >>> b/ryu/tests/integrated/common/docker_base.py
> >>> index 13fe223..fd3ceef 100644
> >>> --- a/ryu/tests/integrated/common/docker_base.py
> >>> +++ b/ryu/tests/integrated/common/docker_base.py
> >>> @@ -196,25 +196,28 @@ class DockerImage(object):
> >>>      def create_ryu(self, tagname='ryu', image=None, check_exist=False):
> >>>          if check_exist and self.exist(tagname):
> >>>              return tagname
> >>> -        workdir = TEST_BASE_DIR + '/' + tagname
> >>> +        workdir = '%s/%s' % (TEST_BASE_DIR, tagname)
> >>>          workdir_ctn = '/root/osrg/ryu'
> >>> -        pkges = 'telnet tcpdump iproute2 '
> >>> -        pkges += 'gcc python-pip python-dev libffi-dev libssl-dev'
> >>> +        pkges = 'telnet tcpdump iproute2'
> >>> +        pkges += ' gcc python-dev libffi-dev libssl-dev'
> >>> +        pkges += ' libxml2-dev libxslt1-dev zlib1g-dev'
> >>>          if image:
> >>>              use_image = image
> >>>          else:
> >>>              use_image = self.baseimage
> >>>          c = CmdBuffer()
> >>> -        c << 'FROM ' + use_image
> >>> +        c << 'FROM %s' % use_image
> >>>          c << 'RUN apt-get update'
> >>> -        c << 'RUN apt-get install -qy --no-install-recommends ' + pkges
> >>> -        c << 'RUN pip install -U six paramiko msgpack-rpc-python'
> >>> -        c << 'ADD ryu ' + workdir_ctn
> >>> -        install = 'RUN cd %s && pip install -r tools/pip-requires ' % 
> >>> workdir_ctn
> >>> -        install += '&& python setup.py install'
> >>> +        c << 'RUN apt-get install -qy --no-install-recommends %s' % pkges
> >>> +        c << 'ADD ryu %s' % workdir_ctn
> >>> +        install = 'RUN cd %s' % workdir_ctn
> >>> +        install += ' && pip install'
> >>> +        install += ' -r tools/pip-requires'
> >>> +        install += ' -r tools/test-requires'
> >>
> >> Why do we need the test-requires to run a ryu app on a container?
> >> I think that we may need a pip-requires which some packages are added or
> >> an another required file.
> >
> > test-requires also includes the optional requirements (e.g. paramiko, 
> > tinyrpc)
> > to run BGPSpeaker and OF-Config, for example.
> >  
> > http://ryu.readthedocs.io/en/latest/getting_started.html#optional-requirements
> >
> > So, when we want to test the other feature on osrg/ryu based Docker 
> > container,
> > we must have installed them, I guess.

Yes, but I didn't like to install test tool(mock, nose and etc).

> > I prefer to separating the optional requirements from "test-requires", 
> > though...
> >

But I am ok in using test-requires if it makes many works.

> >>
> >> And the above Dockerfile seems to faile in a case not to use
> >> osrg/ryu image. But we may not need that case.
> >
> > You mean the above does not have "python-pip", for example?


Yes. And I get the following error while I build ryu image file.

$ cat /tmp/ctn_docker/bgp/ryu/Dockerfile
FROM ubuntu:14.04.5
RUN apt-get update
RUN apt-get install -qy --no-install-recommends telnet tcpdump iproute2 gcc 
python-dev libffi-dev libssl-dev libxml2-dev libxslt1-dev zlib1g-dev python-pip
ADD ryu /root/osrg/ryu
RUN cd /root/osrg/ryu && pip install -r tools/pip-requires -r 
tools/test-requires && python setup.py install
$ sudo docker build -t ryu /tmp/ctn_docker/bgp/ryu
Sending build context to Docker daemon 179.3 MB
Step 1 : FROM ubuntu:14.04.5
 ---> f2d8ce9fa988
Step 2 : RUN apt-get update
 ---> Running in 90d7f0bb0ef3
Ign http://archive.ubuntu.com trusty InRelease
Get:1 http://archive.ubuntu.com trusty-updates InRelease [65.9 kB]

...

Removing intermediate container 384b0764eeaf
Step 4 : ADD ryu /root/osrg/ryu
 ---> ee57cfffe5d9
Removing intermediate container 1adb83f316e9
Step 5 : RUN cd /root/osrg/ryu && pip install -r tools/pip-requires -r 
tools/test-requires && python setup.py install
 ---> Running in 9de973780048
Exception:
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/lib/python2.7/dist-packages/pip/commands/install.py", line 262, in 
run
    for req in parse_requirements(filename, finder=finder, options=options, 
session=session):
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 1632, in 
parse_requirements
    req = InstallRequirement.from_line(line, comes_from, 
prereleases=getattr(options, "pre", None))
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 173, in from_line
    return cls(req, comes_from, url=url, prereleases=prereleases)
  File "/usr/lib/python2.7/dist-packages/pip/req.py", line 71, in __init__
    req = pkg_resources.Requirement.parse(req)
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2667, in parse
    reqs = list(parse_requirements(s))
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2605, in 
parse_requirements
    line, p, specs = scan_list(VERSION,LINE_END,line,p,(1,2),"version spec")
  File "/usr/lib/python2.7/dist-packages/pkg_resources.py", line 2573, in 
scan_list
    raise ValueError("Expected "+item_name+" in",line,"at",line[p:])
ValueError: ('Expected version spec in', "lxml; platform_python_implementation 
!= 'PyPy'", 'at', "; platform_python_implementation != 'PyPy'")

Storing debug log for failure in /root/.pip/pip.log
The command '/bin/sh -c cd /root/osrg/ryu && pip install -r tools/pip-requires 
-r tools/test-requires && python setup.py install' returned a non-zero code: 2
$

> > Well, is there any case or request for using the other base image?
> > If any, I guess we can use the Ubuntu based image only...
> >

In the default DockerImage class uses ubuntu 14.04.5.
I think that there may be a case try multiple ubuntu version and 
the latest ubuntu version and use debian.
But I don't know whether we try those cases.

BTW how about having a separate method like the following?

def create_ryu(self, tagname='ryu', image=None, check_exist=False):
...

def create_ryu_osrg(self, tagname='ryu', image='osrg/ryu',
check_exist=False):
...


Thank you,
fumihiko kakuma


> > Thanks,
> > Iwase
> >
> >>
> >>> +        install += ' && python setup.py install'
> >>>          c << install
> >>>
> >>> -        self.cmd.sudo('rm -rf ' + workdir)
> >>> +        self.cmd.sudo('rm -rf %s' % workdir)
> >>>          self.cmd.execute('mkdir -p ' + workdir)
> >>>          self.cmd.execute("echo '%s' > %s/Dockerfile" % (str(c), workdir))
> >>>          self.cmd.execute('cp -r ../ryu %s/' % workdir)
> >>> --
> >>> 2.7.4
> >>>
> >>>
> >>> ------------------------------------------------------------------------------
> >>> Developer Access Program for Intel Xeon Phi Processors
> >>> Access to Intel Xeon Phi processor-based developer platforms.
> >>> With one year of Intel Parallel Studio XE.
> >>> Training and support from Colfax.
> >>> Order your platform today. http://sdm.link/xeonphi
> >>> _______________________________________________
> >>> Ryu-devel mailing list
> >>> [email protected]
> >>> https://lists.sourceforge.net/lists/listinfo/ryu-devel
> >>

-- 
fumihiko kakuma <[email protected]>



------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
Ryu-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ryu-devel

Reply via email to