You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by johnnyWalnut <gi...@git.apache.org> on 2017/04/24 17:07:37 UTC

[GitHub] libcloud pull request #1043: Fix docker's list_containers function

GitHub user johnnyWalnut opened a pull request:

    https://github.com/apache/libcloud/pull/1043

    Fix docker's list_containers function

    add an extra check otherwise list_containers
    breaks with AttributeError
    
    ## Fix function list_containers for docker
    
    ### Description
    I tested locally docker's list_containers(), which was expected to return a list of containers.
    But i ended up with this 
    ```AttributeError                          Traceback (most recent call last)
    <ipython-input-5-34990fe7ad41> in <module>()
    ----> 1 con.list_containers()
    
    /home/johnny/Documents/mylibcloud/env/src/fork_libcloud/libcloud/libcloud/container/drivers/docker.py in list_containers(self, image, all)
        301             raise
        302 
    --> 303         containers = [self._to_container(value) for value in result]
        304         return containers
        305 
    
    /home/johnny/Documents/mylibcloud/env/src/fork_libcloud/libcloud/libcloud/container/drivers/docker.py in _to_container(self, data)
        622                 name = data.get('Names')[0].strip('/')
        623             except:
    --> 624                 name = data.get('Id')
        625         state = data.get('State')
        626         if isinstance(state, dict):
    
    AttributeError: 'list' object has no attribute 'get'
    ```
    I investigated more and i fixed this previous commit 
    https://github.com/apache/libcloud/pull/918/commits/2f9c3a3aa1b6654ede67a2a6e63dd3e59437c6de
    
    I added one more check, ``` 'create?fromImage' in self.request.url```, so to restrict that check which
    refers to install_image. This way everything seems to work fine!
    
    ### done
    
    ### Checklist (tick everything that applies)
    
    - [x] [Code linting](http://libcloud.readthedocs.org/en/latest/development.html#code-style-guide) (required, can be done after the PR checks)
    - [] [Tests](http://libcloud.readthedocs.org/en/latest/testing.html)
    
    function install_image works fine for me, but test_docker.py doesn't pass!
    
    ```PYTHONPATH=. python libcloud/test/container/test_docker.py
    ......E.....
    ======================================================================
    ERROR: test_install_image (__main__.DockerContainerDriverTestCase)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
      File "libcloud/test/container/test_docker.py", line 56, in test_install_image
        image = driver.install_image('ubuntu:12.04')
      File "/home/johnny/Documents/mylibcloud/libcloudfine/fork_libcloud/libcloud/libcloud/container/drivers/docker.py", line 215, in install_image
        method='POST')
      File "/home/johnny/Documents/mylibcloud/libcloudfine/fork_libcloud/libcloud/libcloud/common/base.py", line 641, in request
        response = responseCls(**kwargs)
      File "/home/johnny/Documents/mylibcloud/libcloudfine/fork_libcloud/libcloud/libcloud/common/base.py", line 163, in __init__
        self.object = self.parse_body()
      File "/home/johnny/Documents/mylibcloud/libcloudfine/fork_libcloud/libcloud/libcloud/container/drivers/docker.py", line 72, in parse_body
        'ConnectionError: Failed to parse JSON response')
    Exception: ConnectionError: Failed to parse JSON response
    
    ----------------------------------------------------------------------
    Ran 12 tests in 0.057s
    
    FAILED (errors=1)```


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/johnnyWalnut/libcloud fix_docker_list_containers

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/libcloud/pull/1043.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #1043
    
----
commit 6084fa3da46b0c16214e8dc9ef368e7bc5455dfa
Author: johnnyWalnut <ik...@gmail.com>
Date:   2017-04-24T16:46:32Z

    add an extra check otherwise list_containers
    breaks with AttributeError

----


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---

[GitHub] libcloud pull request #1043: Fix docker's list_containers function

Posted by asfgit <gi...@git.apache.org>.
Github user asfgit closed the pull request at:

    https://github.com/apache/libcloud/pull/1043


---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at infrastructure@apache.org or file a JIRA ticket
with INFRA.
---