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
