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
