Hi devs! I've been having a look at the vSphere pull request [1], and wanted to share some challenges it presents, and hopefully come with an integration plan.
The issue with licensing has already been fixed, but there is one think I commented in one of the lasts comments about how the HTTP calls are made to the vSphere hosts: the PR uses the "vijava" library instead of the existing jclouds mechanisms to generate the requests, which we should avoid. jclouds is not just about portability but about consistent patterns to address similar problems. That's why in my last comments I said that in order to get the PR merged, the vijava dependency should be removed. Thinking a bit more about it, I realized that: * The vSphere api is huge and being realistic, even with our help, it is unlikely that we can implement the vSphere API in a way that is useful in a reasonable amount of time. Furthermore, if this is a provider that gets interest from the community we want to make sure it is complete and well implemented or we can expect a considerable amount of issues or feature requests that may never be fixed/developed. * There is a precedent of a provider in labs that does not use the jclouds HTTP features: virtualbox. It is still in labs and out of date, but the fact that it is there prevents us from saying the vSphere one can't be merged just because it uses vijava. I would be OK to merge it in jclouds-labs, but don't promote it to the main repo until the vijava dependency is removed. * The vijava open source api is being deprecated [2]. It's author is working on a commercial version and it is unlikely that the vijava open source library will get improvements or fixes. We can not promote the project or move it out of the labs/sandbox/whatever if it uses this library: if someday an issue that blocks us is found there, then we would be in trouble. So, given this thoughts, even if it uses vijava I'd propose to merge the PR to the jclouds-abs repo (after the corresponding review of the code), but making it clear that the provider won't be promoted unless the dependency is removed. What are your thoughts on this? Thanks, I. [1] https://github.com/jclouds/jclouds-labs/pull/61 [2] http://www.doublecloud.org/2014/01/announcing-vijavang-much-lighter-and-faster-with-commercial-license-and-support/