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

Create a compute driver for Microsoft Azure

    Details

    • Type: New Feature
    • Status: Open
    • Priority: Critical
    • Resolution: Unresolved
    • Affects Version/s: 0.14.0-beta3
    • Fix Version/s: None
    • Component/s: Compute, Libcloud REST
    • Environment:

      windows, linux

      Description

      Building out a compute driver for Microsoft Azure. Some complexity in the connection layer in that client certificates should be attached to the request so that mutual SSL authentication can ensue.

        Activity

        Hide
        dacrossland david crossland added a comment -

        Ive been working on this issue and have added support for Azure compute driver. Ive not yet submitted this but to detail work that has been completed to date

        • Added support to establish a connection to azure using subscription id and pem file
        • Added support to create/delete azure cloud services
        • Added support for create/destroy node
        • Added support for reboot node
        • Added support for list images and locations

        Im currently cleaning up the code and ensuring it meets submission requirements

        Show
        dacrossland david crossland added a comment - Ive been working on this issue and have added support for Azure compute driver. Ive not yet submitted this but to detail work that has been completed to date Added support to establish a connection to azure using subscription id and pem file Added support to create/delete azure cloud services Added support for create/destroy node Added support for reboot node Added support for list images and locations Im currently cleaning up the code and ensuring it meets submission requirements
        Hide
        baldwinmathew Matt Baldwin added a comment -

        David, can you submit the PR to my branch when you're ready so I can merge it in, please?

        Show
        baldwinmathew Matt Baldwin added a comment - David, can you submit the PR to my branch when you're ready so I can merge it in, please?
        Hide
        azurecoder Richard Conway added a comment -

        12/6/2014

        Ported Python Azure SDK working with Stackpoint Cloud (Matt Baldwin) to create a new compute driver for Azure. Completed code documentation and tests for all code.

        2/6/2014

        Ready to commit completed async operation blocking call to ensure that Azure reports success through polling operations.

        Show
        azurecoder Richard Conway added a comment - 12/6/2014 Ported Python Azure SDK working with Stackpoint Cloud (Matt Baldwin) to create a new compute driver for Azure. Completed code documentation and tests for all code. 2/6/2014 Ready to commit completed async operation blocking call to ensure that Azure reports success through polling operations.
        Hide
        baldwinmathew Matt Baldwin added a comment -

        Just merged davidcrossland/libcloud into baldwinSPC/libcloud. I think we're ready to submit this as a PR to the project.

        Show
        baldwinmathew Matt Baldwin added a comment - Just merged davidcrossland/libcloud into baldwinSPC/libcloud. I think we're ready to submit this as a PR to the project.
        Hide
        githubbot ASF GitHub Bot added a comment -

        GitHub user baldwinSPC opened a pull request:

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

        [Libcloud-556] Azure Compute Driver Support

        We have completed support for the Azure compute driver. This adds support for the core compute driver functions against Azure. The JIRA ticket can be found here:

        https://issues.apache.org/jira/browse/LIBCLOUD-556?jql=project%20%3D%20LIBCLOUD

        Let me know if there are any issues or if it can be accepted or not.

        Thanks.
        -matt

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

        $ git pull https://github.com/baldwinSPC/libcloud LIBCLOUD-556_azure_compute_driver

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

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


        commit 7930f7f15e049a9c0e2d3e3cedf634a1d23243ed
        Author: Matt Baldwin <baldwinmathew@gmail.com>
        Date: 2014-05-01T05:08:23Z

        Adding compute support for Microsoft Azure. The azure_compute.py
        driver can be used to crete, destroy, and so forth.

        commit b3272dfb4ae0497a4683a85539c557a8405b5e78
        Author: Matt Baldwin <baldwinmathew@gmail.com>
        Date: 2014-05-01T05:18:01Z

        Updated azure_compute.py

        commit 8d3a21c6dde249f8fd62baa596ebdb6dd73b0e6a
        Author: Matt Baldwin <baldwinmathew@gmail.com>
        Date: 2014-05-20T03:51:38Z

        I've re-factored the code with code pulled from the Azure SDK for Python. This is being done to eliminate the requirement for the Azure library to be pre-installed on the system. Users can now simply load up libcloud and be on their merry way with no external requirements.

        commit 7495814cee3bba88a719a97368a6ff8d4532ed95
        Author: Matt Baldwin <baldwinmathew@gmail.com>
        Date: 2014-05-20T19:18:22Z

        Re-factored list_volumes.

        commit 27a9f57f1e455d1ee49e01fd7be0e45396bd6838
        Author: Matt Baldwin <baldwinmathew@gmail.com>
        Date: 2014-05-20T19:52:04Z

        Re-factored destroy_node to not rely on the azure sdk library.

        commit 816f40ac97944c130e0903e278896d149fc75ff0
        Author: Matt Baldwin <baldwinmathew@gmail.com>
        Date: 2014-05-20T22:06:25Z

        Re-factored create_node to not rely on the azure sdk library. All functions are now refactored and the import of that library is not required anymore. Onto testing.

        commit 464a25acd7ad8e9de386fd7dc8d94ad5b72f32d0
        Author: Matt Baldwin <baldwinmathew@gmail.com>
        Date: 2014-05-20T22:07:56Z

        incremented the version

        commit 058dbf59aa4d72e745633733a8259bd8c1aaa0b4
        Author: Matt Baldwin <baldwinmathew@gmail.com>
        Date: 2014-05-21T02:31:44Z

        Added Libcloud HTTP Error responses, node status map, cleaning things up.

        commit fc92832871aaf30af63cd564ce93e0dd873f469c
        Author: Matt Baldwin <baldwinmathew@gmail.com>
        Date: 2014-05-21T20:03:29Z

        general clean-up

        commit a006f0cf5cfa75888bf26aa474294a1b1e756236
        Author: Matt Baldwin <baldwinmathew@gmail.com>
        Date: 2014-05-21T20:17:07Z

        general clean-up

        commit efa9900ac626dfa38f259e37af0288b3dcf7550b
        Author: davidcrossland <david@elastacloud.com>
        Date: 2014-05-23T16:17:12Z

        added connection

        commit f47a2020a921f47812657aeabf4a97180e708a11
        Author: davidcrossland <david@elastacloud.com>
        Date: 2014-05-27T12:34:42Z

        modified how headers are added to the request, ensured create_node works

        commit a3cf1f3dcf1aa6bd7f0295be9ad22e8013b2b15c
        Author: davidcrossland <david@elastacloud.com>
        Date: 2014-05-27T16:02:31Z

        added delete unit tests

        commit dc280277bd57b2a4fb4c4b33217d47304753a823
        Author: davidcrossland <david@elastacloud.com>
        Date: 2014-05-28T14:17:28Z

        added additional unit tests, modified locations to return supported vm role sizes supported

        commit 73a6a13263bafc67a3b05d8d342cfdfa5ea9067f
        Author: davidcrossland <david@elastacloud.com>
        Date: 2014-05-28T14:22:18Z

        modified destroy node logic so exception is thrown if deployment or node do not exist

        commit 52dd73e4442d102d9ac4cc0a13e85515508b673c
        Author: davidcrossland <david@elastacloud.com>
        Date: 2014-05-29T12:53:28Z

        added create/destroy cloud service. added unit tests for create node

        commit c495a947a9b615040a7b05c131338a004d1bf035
        Author: davidcrossland <david@elastacloud.com>
        Date: 2014-05-29T14:01:23Z

        modified asyn call so that an explicit check for status codes can be achieved. Added 307 to the list of possible errors, sometimes these are sent by azure

        commit 50849a91804ada76586dfd2db6a644997929497e
        Author: davidcrossland <david@elastacloud.com>
        Date: 2014-05-30T09:57:39Z

        added dict of standard images, fixed some minor issues

        commit 20140c1676cf4259ee00bc3a03f0da4b742d1cf5
        Author: davidcrossland <david@elastacloud.com>
        Date: 2014-05-30T10:45:00Z

        fixed small issue where unit tests did not run

        commit b9be704dbf430f7a6a60b9745b81cdd2f6cafab2
        Author: davidcrossland <david@elastacloud.com>
        Date: 2014-05-30T14:02:28Z

        cleanup and re-ordering of code to meet submission requirements

        commit 80a7193eeb8113d2a4ee4bcbfe8a32cd9d4dadb4
        Author: davidcrossland <david@elastacloud.com>
        Date: 2014-06-02T08:50:13Z

        modified test subscriptionId and associated files so it no longer uses elastacloud sub-id, ensured tests no longer rely on elastacloud pem file. Empty file in fixtures serves as an adequate replacement

        commit c95da5eaf626511ad25a2b5e6347fc8622a3a372
        Author: Richard Conway <richard@elastacloud.com>
        Date: 2014-06-02T11:15:48Z

        updated python file to include proper async polling

        commit bac58450469fb6154dec1acacc148fec9028af07
        Author: davidcrossland <david@elastacloud.com>
        Date: 2014-06-02T13:11:13Z

        Modified async code to poll for status. Modified unit tests accordingly

        commit 397a15b3507f88d7df347f0c935910c9709c5d75
        Author: davidcrossland <david@elastacloud.com>
        Date: 2014-06-02T14:02:00Z

        reverting example_compute

        commit 89fc8daf415c755b4d30eae172750bcff59f76fa
        Author: Matt Baldwin <baldwin@stackpointcloud.com>
        Date: 2014-06-03T01:35:30Z

        Merge pull request #1 from davidcrossland/trunk

        code merge


        Show
        githubbot ASF GitHub Bot added a comment - GitHub user baldwinSPC opened a pull request: https://github.com/apache/libcloud/pull/305 [Libcloud-556] Azure Compute Driver Support We have completed support for the Azure compute driver. This adds support for the core compute driver functions against Azure. The JIRA ticket can be found here: https://issues.apache.org/jira/browse/LIBCLOUD-556?jql=project%20%3D%20LIBCLOUD Let me know if there are any issues or if it can be accepted or not. Thanks. -matt You can merge this pull request into a Git repository by running: $ git pull https://github.com/baldwinSPC/libcloud LIBCLOUD-556 _azure_compute_driver Alternatively you can review and apply these changes as the patch at: https://github.com/apache/libcloud/pull/305.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 #305 commit 7930f7f15e049a9c0e2d3e3cedf634a1d23243ed Author: Matt Baldwin <baldwinmathew@gmail.com> Date: 2014-05-01T05:08:23Z Adding compute support for Microsoft Azure. The azure_compute.py driver can be used to crete, destroy, and so forth. commit b3272dfb4ae0497a4683a85539c557a8405b5e78 Author: Matt Baldwin <baldwinmathew@gmail.com> Date: 2014-05-01T05:18:01Z Updated azure_compute.py commit 8d3a21c6dde249f8fd62baa596ebdb6dd73b0e6a Author: Matt Baldwin <baldwinmathew@gmail.com> Date: 2014-05-20T03:51:38Z I've re-factored the code with code pulled from the Azure SDK for Python. This is being done to eliminate the requirement for the Azure library to be pre-installed on the system. Users can now simply load up libcloud and be on their merry way with no external requirements. commit 7495814cee3bba88a719a97368a6ff8d4532ed95 Author: Matt Baldwin <baldwinmathew@gmail.com> Date: 2014-05-20T19:18:22Z Re-factored list_volumes. commit 27a9f57f1e455d1ee49e01fd7be0e45396bd6838 Author: Matt Baldwin <baldwinmathew@gmail.com> Date: 2014-05-20T19:52:04Z Re-factored destroy_node to not rely on the azure sdk library. commit 816f40ac97944c130e0903e278896d149fc75ff0 Author: Matt Baldwin <baldwinmathew@gmail.com> Date: 2014-05-20T22:06:25Z Re-factored create_node to not rely on the azure sdk library. All functions are now refactored and the import of that library is not required anymore. Onto testing. commit 464a25acd7ad8e9de386fd7dc8d94ad5b72f32d0 Author: Matt Baldwin <baldwinmathew@gmail.com> Date: 2014-05-20T22:07:56Z incremented the version commit 058dbf59aa4d72e745633733a8259bd8c1aaa0b4 Author: Matt Baldwin <baldwinmathew@gmail.com> Date: 2014-05-21T02:31:44Z Added Libcloud HTTP Error responses, node status map, cleaning things up. commit fc92832871aaf30af63cd564ce93e0dd873f469c Author: Matt Baldwin <baldwinmathew@gmail.com> Date: 2014-05-21T20:03:29Z general clean-up commit a006f0cf5cfa75888bf26aa474294a1b1e756236 Author: Matt Baldwin <baldwinmathew@gmail.com> Date: 2014-05-21T20:17:07Z general clean-up commit efa9900ac626dfa38f259e37af0288b3dcf7550b Author: davidcrossland <david@elastacloud.com> Date: 2014-05-23T16:17:12Z added connection commit f47a2020a921f47812657aeabf4a97180e708a11 Author: davidcrossland <david@elastacloud.com> Date: 2014-05-27T12:34:42Z modified how headers are added to the request, ensured create_node works commit a3cf1f3dcf1aa6bd7f0295be9ad22e8013b2b15c Author: davidcrossland <david@elastacloud.com> Date: 2014-05-27T16:02:31Z added delete unit tests commit dc280277bd57b2a4fb4c4b33217d47304753a823 Author: davidcrossland <david@elastacloud.com> Date: 2014-05-28T14:17:28Z added additional unit tests, modified locations to return supported vm role sizes supported commit 73a6a13263bafc67a3b05d8d342cfdfa5ea9067f Author: davidcrossland <david@elastacloud.com> Date: 2014-05-28T14:22:18Z modified destroy node logic so exception is thrown if deployment or node do not exist commit 52dd73e4442d102d9ac4cc0a13e85515508b673c Author: davidcrossland <david@elastacloud.com> Date: 2014-05-29T12:53:28Z added create/destroy cloud service. added unit tests for create node commit c495a947a9b615040a7b05c131338a004d1bf035 Author: davidcrossland <david@elastacloud.com> Date: 2014-05-29T14:01:23Z modified asyn call so that an explicit check for status codes can be achieved. Added 307 to the list of possible errors, sometimes these are sent by azure commit 50849a91804ada76586dfd2db6a644997929497e Author: davidcrossland <david@elastacloud.com> Date: 2014-05-30T09:57:39Z added dict of standard images, fixed some minor issues commit 20140c1676cf4259ee00bc3a03f0da4b742d1cf5 Author: davidcrossland <david@elastacloud.com> Date: 2014-05-30T10:45:00Z fixed small issue where unit tests did not run commit b9be704dbf430f7a6a60b9745b81cdd2f6cafab2 Author: davidcrossland <david@elastacloud.com> Date: 2014-05-30T14:02:28Z cleanup and re-ordering of code to meet submission requirements commit 80a7193eeb8113d2a4ee4bcbfe8a32cd9d4dadb4 Author: davidcrossland <david@elastacloud.com> Date: 2014-06-02T08:50:13Z modified test subscriptionId and associated files so it no longer uses elastacloud sub-id, ensured tests no longer rely on elastacloud pem file. Empty file in fixtures serves as an adequate replacement commit c95da5eaf626511ad25a2b5e6347fc8622a3a372 Author: Richard Conway <richard@elastacloud.com> Date: 2014-06-02T11:15:48Z updated python file to include proper async polling commit bac58450469fb6154dec1acacc148fec9028af07 Author: davidcrossland <david@elastacloud.com> Date: 2014-06-02T13:11:13Z Modified async code to poll for status. Modified unit tests accordingly commit 397a15b3507f88d7df347f0c935910c9709c5d75 Author: davidcrossland <david@elastacloud.com> Date: 2014-06-02T14:02:00Z reverting example_compute commit 89fc8daf415c755b4d30eae172750bcff59f76fa Author: Matt Baldwin <baldwin@stackpointcloud.com> Date: 2014-06-03T01:35:30Z Merge pull request #1 from davidcrossland/trunk code merge
        Hide
        jdekorte Jeroen de Korte added a comment -

        Guys,

        Any update on this? Really could use the Azure support.

        Regards,
        Jeroen

        Show
        jdekorte Jeroen de Korte added a comment - Guys, Any update on this? Really could use the Azure support. Regards, Jeroen
        Hide
        baldwinmathew Matt Baldwin added a comment -

        At this point I believe we're waiting on review of the existing PR.

        On Wed, Mar 11, 2015 at 5:34 AM, Jeroen de Korte (JIRA) <jira@apache.org>

        Show
        baldwinmathew Matt Baldwin added a comment - At this point I believe we're waiting on review of the existing PR. On Wed, Mar 11, 2015 at 5:34 AM, Jeroen de Korte (JIRA) <jira@apache.org>
        Hide
        githubbot ASF GitHub Bot added a comment -

        Github user asfgit closed the pull request at:

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

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

          People

          • Assignee:
            Unassigned
            Reporter:
            azurecoder Richard Conway
          • Votes:
            1 Vote for this issue
            Watchers:
            6 Start watching this issue

            Dates

            • Created:
              Updated:

              Time Tracking

              Estimated:
              Original Estimate - 1,008h
              1,008h
              Remaining:
              Remaining Estimate - 1,008h
              1,008h
              Logged:
              Time Spent - Not Specified
              Not Specified

                Development