Hi Ignasi,

I think you are right, a little of context could definitely ease the review.

Recently I've been working with SoftLayer and I tried to fix some blocking
issue (PR#200, PR#204) but unfortunately they didn't fix them all.
In particular VirtualGuestToNodeMetadata happens to be slow and buggy and
most of the times I couldn't listNodes particularly when the account
contains nodes created manually (not by jclouds)
Also a couple of threads [1], [2], [3] on jclouds-users convinced me to
look better at the code to simplify the current impl so that maintenance
could be easier.

Looking for a better design of jclouds softlayer, I stumbled upon
soflayer-python [4] which uses a completely (simplified!) set of api calls
[5] to deal with SoftLayer CCI than the ones jclouds uses.
It seems to me, in fact, that when the first version of SoftLayer provider
was written either those simplified api calls where not there or maybe the
intent was to have a very generic softlayer provider to support multiple
product offered by SoftLayer.
The original implementation tries to filter from all the ProductPackage
supported the VIRTUALGUEST_PACKAGE and then to create a VirtualGuest (aka
CCI) composing a ProductOrder and place a productOrder. This is probably a
more generic approach than dealing only with SoftLayer CCI tailored API but
it is demonstrated to be hard to understand, hard improve and, above all,
hard to make it right.

My refactoring has removed the concept of productOrder and deals directly
with VirtualGuest API: these have a number of advantages, like
hardwareProfiles are now effectively built on getCreateObjectOptions [6]
that are the only supported options for the VirtualGuests, as well as
listAvailableLocations, not mentioning createNode of course.

In terms of code, I've modernized it removing the asyncApi and refactoring
expectTests and LiveTests.

Hope this helps, but as it is not easy to explain all at once, feel free to
ask me more info either here on IRC channel.

Thanks!
Andrea

[1]: http://www.mail-archive.com/[email protected]/msg00421.html
[2]: http://www.mail-archive.com/[email protected]/msg00043.html
[3]: http://www.mail-archive.com/[email protected]/msg00085.html
[4]: https://github.com/softlayer/softlayer-python
[5]:
http://sldn.softlayer.com/reference/services/SoftLayer_Virtual_Guest/createObject
[6]:
http://sldn.softlayer.com/reference/services/SoftLayer_Virtual_Guest/getCreateObjectOptions

Il 25/feb/2014 23:36 "Ignasi Barrera" <[email protected]> ha scritto:

> Thanks for the contribution Andrea!
>
> I've started to look at it, but it is quite difficult to figure out what
> is changing from a functional perspective.
>
> Could you please give a summary of the functional changes (how the compute
> integration worked and how it works now), if there are backwards
> incompatible changes (do people having code for the previous version
> experience issues/undesired behaviors when ipgrading?), and the result of
> the live tests?
>
> Having a few lines explaining what changes will help us a lot
> understanding what's going on so we can properly review them.
>
> Thx!
>
> --
> Reply to this email directly or view it on 
> GitHub<https://github.com/jclouds/jclouds/pull/296#issuecomment-36067587>
> .
>

---
Reply to this email directly or view it on GitHub:
https://github.com/jclouds/jclouds/pull/296#issuecomment-36102733

Reply via email to