Azure Compute Driver #499

Closed
wants to merge 102 commits into
from

Conversation

Projects
None yet
6 participants
@Kami
Member

Kami commented Apr 5, 2015

This is a continuation of #305.

My goal is to fix bugs, style issues, Python version compatibility issues and any other issues which might pop up during the review and testing and get this merged into trunk.

As you can see in the commit log, I have already changed and fixed a bunch of things, but there are still issues I'm tracking down.

For example, creating a new storage service returns 400 status code without any meaningful error message. I'm digging in, but I have no idea why this is happening yet.

baldwinmathew and others added some commits May 1, 2014

Adding compute support for Microsoft Azure. The azure_compute.py
driver can be used to crete, destroy, and so forth.
I've re-factored the code with code pulled from the Azure SDK for Pyt…
…hon. 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.
Re-factored create_node to not rely on the azure sdk library. All fun…
…ctions are now refactored and the import of that library is not required anymore. Onto testing.
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
modified test subscriptionId and associated files so it no longer use…
…s elastacloud sub-id, ensured tests no longer rely on elastacloud pem file. Empty file in fixtures serves as an adequate replacement
modified test of create node response to 202 Accepted rather than 200…
… OK. Removed default VM image name map as its already out of date. Ensure line lengths are no greater the 80 characters where appropriate. Fixed unit tests
Modified create_node to accept a NodeImage object to represent the im…
…age to deploy rather than a string name. Enhanced required kwarg argument checking.
Adding compute support for Microsoft Azure. The azure_compute.py
driver can be used to crete, destroy, and so forth.
I've re-factored the code with code pulled from the Azure SDK for Pyt…
…hon. 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.

bennettaur and others added some commits Oct 9, 2014

list images now lists custom images (added supporting data types and …
…serializations). Creating a node now requires a NodeSize and NodeImage created by calls to list_sizes and list_images (respectively) rather than strings to be more consistent. Creating a node supports creating a vm image if the NodeImage passed in represents a VM image (which is indicated in the extra variable and is filled out when data is deserialized in the list_images call). Updated tests to be compatible with the changes to create_node.

Fixed some styling
Cleaned up and formatted the code for readability and consistency. Up…
…dated tests for the new changes. Refactored some data structures to make things more DRY. Added a new function to list all cloud services. Modified the parsing and creation of Nodes to get the public ip from the deployment data object, since Azure appears to only return it there in some cases. Also modified nodes to include the service name they belong to in the extra dict and modified reboot and destroy node to search for that, rather than requiring it to be passed it
Merge branch 'LIBCLOUD-556_azure_compute_driver' into LIBCLOUD-556_az…
…ure_compute_driver_rebased

Updated sizes based on latest Microsoft documentation. Fixed some styling of the merged changes

Conflicts:
	libcloud/common/azure.py
	libcloud/compute/drivers/azure.py
	libcloud/compute/providers.py
	libcloud/compute/types.py
	libcloud/test/compute/test_azure.py
Fixed an error in listing nodes created from user images. Added suppo…
…rt for handling 307 Temp Redirects, rather than just failing
Refactored to make some things more DRY. Formatted for PEP8 and libcl…
…oud style guides. Updated tests to use libcloud Node objects
Fixed a bug where a cloud service name wasn't converted to a storage …
…account name properly and fixed a bug in checking the cloud storage name uniqueness where an invalid service name would cause a bad request and would return None causing it to look like the storage account already existed, even if it did not
Added methods for adding, and setting the instance endpoints of a VM.…
… Also added existing instance endpoints for a node to the extra dict
Merge pull request #3 from SecurityCompass/LIBCLOUD-556_azure_compute…
…_driver_rebased

Support for Virtual Machine Images and handling of Temp Redirects
Fix a bug with parsing custom types - make sure we "status" attribute…
… is alaways available on the custom response type objects.

@asfgit asfgit closed this in 1bef164 Apr 6, 2015

@Kami

This comment has been minimized.

Show comment
Hide comment
@Kami

Kami Apr 6, 2015

Member

Alright, the pull request has finally been merged into trunk.

I've addressed all the Python version compatibility issues, fixed all the bugs I have found and added some basic docs. Keep in mind I have only tested basic functionality (list sizes, list images, list nodes, create node, destroy node, ...) so there might be more bugs hidden in other places.

@bennettaur @davidcrossland @azurecoder @baldwinSPC @baldwinmathew - thanks to everyone for their contributions.

Member

Kami commented Apr 6, 2015

Alright, the pull request has finally been merged into trunk.

I've addressed all the Python version compatibility issues, fixed all the bugs I have found and added some basic docs. Keep in mind I have only tested basic functionality (list sizes, list images, list nodes, create node, destroy node, ...) so there might be more bugs hidden in other places.

@bennettaur @davidcrossland @azurecoder @baldwinSPC @baldwinmathew - thanks to everyone for their contributions.

@Kami Kami changed the title from [WIP] Azure Compute Driver to Azure Compute Driver Apr 6, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment