Uploaded image for project: 'Libcloud'
  1. Libcloud
  2. LIBCLOUD-786

GCENodeDriver.ex_get_image needs some love, see description.

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: Compute
    • Labels:
      None

      Description

      Firstly, the parameter 'ex_project_list' is a misnomer. It is being treated as a single project, not list of projects.

      Secondly, it's slow. When not providing a project parameter, ex_get_image lists all images from all projects listed in GCENodeDriver.IMAGE_PROJECTS. This is a separate API call for each project. After getting all the images, any images that have licenses create another API call via ex_get_license.

      Thirdly, if any of the license calls try to pull a license from an image project that the user doesn't have access to, it raises a ResourceNotFoundError.

      My opinion: fix the ex_project_list param, and see about not populating the image license data when fetching images.

        Activity

        Hide
        githubbot ASF GitHub Bot added a comment -

        GitHub user crunk1 opened a pull request:

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

        Implemented LazyObject class, which provides a .lazy class method. Th…

        …e lazy class method returns a Proxy object that subclasses the target object class. Upon accessing the proxy object in any way, the object is initialized.

        Modified Google Compute Engine License objects, GCELicense, to be such a lazy object. This addresses https://issues.apache.org/jira/browse/LIBCLOUD-786.

        Tests/Verification:
        tox -e lint
        python setup.py test
        Added test/common/test_base.py which has LazyObjectTest

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

        $ git pull https://github.com/crunk1/libcloud trunk

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

        https://github.com/apache/libcloud/pull/665.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 #665


        commit 4314737241e048778f492640e5e730c8bc499d6c
        Author: Scott Crunkleton <crunkleton@google.com>
        Date: 2015-12-22T08:21:06Z

        Implemented LazyObject class, which provides a .lazy class method. The lazy class method returns a Proxy object that subclasses the target object class. Upon accessing the proxy object in any way, the object is initialized.

        Modified Google Compute Engine License objects, GCELicense, to be such a lazy object.

        Tests/Verification:
        tox -e lint
        python setup.py test
        Added test/common/test_base.py which has LazyObjectTest


        Show
        githubbot ASF GitHub Bot added a comment - GitHub user crunk1 opened a pull request: https://github.com/apache/libcloud/pull/665 Implemented LazyObject class, which provides a .lazy class method. Th… …e lazy class method returns a Proxy object that subclasses the target object class. Upon accessing the proxy object in any way, the object is initialized. Modified Google Compute Engine License objects, GCELicense, to be such a lazy object. This addresses https://issues.apache.org/jira/browse/LIBCLOUD-786 . Tests/Verification: tox -e lint python setup.py test Added test/common/test_base.py which has LazyObjectTest You can merge this pull request into a Git repository by running: $ git pull https://github.com/crunk1/libcloud trunk Alternatively you can review and apply these changes as the patch at: https://github.com/apache/libcloud/pull/665.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 #665 commit 4314737241e048778f492640e5e730c8bc499d6c Author: Scott Crunkleton <crunkleton@google.com> Date: 2015-12-22T08:21:06Z Implemented LazyObject class, which provides a .lazy class method. The lazy class method returns a Proxy object that subclasses the target object class. Upon accessing the proxy object in any way, the object is initialized. Modified Google Compute Engine License objects, GCELicense, to be such a lazy object. Tests/Verification: tox -e lint python setup.py test Added test/common/test_base.py which has LazyObjectTest
        Hide
        jira-bot ASF subversion and git services added a comment -

        Commit 81a8dbc324f870444e980aee523fea48fc37cbcc in libcloud's branch refs/heads/trunk from Scott Crunkleton
        [ https://git-wip-us.apache.org/repos/asf?p=libcloud.git;h=81a8dbc ]

        Implemented LazyObject class, which provides a .lazy class method. The lazy class method returns a Proxy object that subclasses the target object class. Upon accessing the proxy object in any way, the object is initialized.

        Modified Google Compute Engine License objects, GCELicense, to be such a lazy
        object. This addresses https://issues.apache.org/jira/browse/LIBCLOUD-786.

        Tests/Verification:
        tox -e lint
        python setup.py test
        Added test/common/test_base.py which has LazyObjectTest

        Signed-off-by: Eric Johnson <erjohnso@google.com>

        Show
        jira-bot ASF subversion and git services added a comment - Commit 81a8dbc324f870444e980aee523fea48fc37cbcc in libcloud's branch refs/heads/trunk from Scott Crunkleton [ https://git-wip-us.apache.org/repos/asf?p=libcloud.git;h=81a8dbc ] Implemented LazyObject class, which provides a .lazy class method. The lazy class method returns a Proxy object that subclasses the target object class. Upon accessing the proxy object in any way, the object is initialized. Modified Google Compute Engine License objects, GCELicense, to be such a lazy object. This addresses https://issues.apache.org/jira/browse/LIBCLOUD-786 . Tests/Verification: tox -e lint python setup.py test Added test/common/test_base.py which has LazyObjectTest Signed-off-by: Eric Johnson <erjohnso@google.com>
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user crunk1 closed the pull request at:

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

        Show
        githubbot ASF GitHub Bot added a comment - Github user crunk1 closed the pull request at: https://github.com/apache/libcloud/pull/665

          People

          • Assignee:
            Unassigned
            Reporter:
            crunk1 Scott Crunkleton
          • Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development