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

Add AWS elastic loadbalancer support to libcloud

    Details

    • Type: New Feature
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.8.0
    • Fix Version/s: 0.12.1
    • Component/s: None
    • Environment:

      N/A

      Description

      Aims to add ELB support for libcloud.

      1. 84.diff
        18 kB
        John Carr

        Activity

        Hide
        vishy1618 Suvish V.T. added a comment -

        I'm working on getting this done.

        Show
        vishy1618 Suvish V.T. added a comment - I'm working on getting this done.
        Hide
        kami Tomaz Muraus added a comment - - edited

        Cool, keep us updated with the progress.

        Show
        kami Tomaz Muraus added a comment - - edited Cool, keep us updated with the progress.
        Hide
        jc2k John Carr added a comment -

        I didn't see this ticket and have also started work on this. My progress (and it is still in progress) is here:

        https://github.com/Jc2k/libcloud/compare/elb

        (I have still to add tests and remove some code duplication with other amazon drivers).

        There are some interface violations I need help with:

        1. balance_attach_member is not supported by aws, only balance_attach_compute_node

        2. A backend cannot be given a particular port. Rather the backend port has to be passed to the LoadBalancer when it is created at the same time as the front end port. To clarify, on other providers you might have a LB on port 80 that directs traffic to 8081 on host a and 9081 on host b. On ELB, you have to pass the 8081 to the load balancer when you create it and you can then only use 8081.

        Show
        jc2k John Carr added a comment - I didn't see this ticket and have also started work on this. My progress (and it is still in progress) is here: https://github.com/Jc2k/libcloud/compare/elb (I have still to add tests and remove some code duplication with other amazon drivers). There are some interface violations I need help with: 1. balance_attach_member is not supported by aws, only balance_attach_compute_node 2. A backend cannot be given a particular port. Rather the backend port has to be passed to the LoadBalancer when it is created at the same time as the front end port. To clarify, on other providers you might have a LB on port 80 that directs traffic to 8081 on host a and 9081 on host b. On ELB, you have to pass the 8081 to the load balancer when you create it and you can then only use 8081.
        Hide
        kami Tomaz Muraus added a comment -

        Cool!

        As far as the questions go:

        1. You can leave "balance_attach_member" unimplemented.

        2. That's fine. If you only supported "balance_attach_compute_node" you don't need to change anything, because it already works as you described it. Still make sure to document this behavior somewhere in the driver docstring though.

        Show
        kami Tomaz Muraus added a comment - Cool! As far as the questions go: 1. You can leave "balance_attach_member" unimplemented. 2. That's fine. If you only supported "balance_attach_compute_node" you don't need to change anything, because it already works as you described it. Still make sure to document this behavior somewhere in the driver docstring though.
        Hide
        jc2k John Carr added a comment -

        Cheers.

        I've updated that branch with tests, still need to add docstrings though.

        Show
        jc2k John Carr added a comment - Cheers. I've updated that branch with tests, still need to add docstrings though.
        Hide
        jc2k John Carr added a comment -

        I've just opened https://github.com/apache/libcloud/pull/84 for any review action.

        Show
        jc2k John Carr added a comment - I've just opened https://github.com/apache/libcloud/pull/84 for any review action.
        Hide
        jc2k John Carr added a comment -

        Attaching patch for final review as instructed in pull request (after running the test )

        Show
        jc2k John Carr added a comment - Attaching patch for final review as instructed in pull request (after running the test )
        Hide
        kami Tomaz Muraus added a comment -

        Thanks.

        I've merged patch with some changes and fixes (e.g. InvalidCredsError wasn't imported, etc.) - https://svn.apache.org/viewvc?view=revision&revision=1429563.

        I will leave this ticket open for now, because it still needs some love (e.g. refactoring and re-using authentication stuff, etc.).

        Show
        kami Tomaz Muraus added a comment - Thanks. I've merged patch with some changes and fixes (e.g. InvalidCredsError wasn't imported, etc.) - https://svn.apache.org/viewvc?view=revision&revision=1429563 . I will leave this ticket open for now, because it still needs some love (e.g. refactoring and re-using authentication stuff, etc.).
        Hide
        kami Tomaz Muraus added a comment -

        I've merged patch which fixes a lot of authentication code duplication into trunk.

        It's still not perfect and we can remove even more duplication, but it's a good start so I'm marking this ticket as "resolved".

        Show
        kami Tomaz Muraus added a comment - I've merged patch which fixes a lot of authentication code duplication into trunk. It's still not perfect and we can remove even more duplication, but it's a good start so I'm marking this ticket as "resolved".

          People

          • Assignee:
            kami Tomaz Muraus
            Reporter:
            vishy1618 Suvish V.T.
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Time Tracking

              Estimated:
              Original Estimate - 336h
              336h
              Remaining:
              Remaining Estimate - 336h
              336h
              Logged:
              Time Spent - Not Specified
              Not Specified

                Development