Thanks for keeping the PR up to date @igreenfield, it is highly appreciated!

There are several things that have to be discussed before merging it. Big pull 
requests like this one require a considerable amount of time to review, so 
please, be patient. I look forward to helping you as long as we go through the 
review process.

There are several structural things to be addressed: you already fixed the 
licensing thing and added some tests. That's great! We still have to add the 
live tests, but there is the vSphere api thing. Regarding this, there is one 
important point that in my opinion has to be changed in order to be able to 
merge the PR: jclouds has its own mechanisms to generate the HTTP requests and 
to talk with the different APIs. Every single provider/api in jclouds uses 
that, but this PR uses the vijava library instead.

The main goal of jclouds is to provide a common way of doing things among the 
different providers, and that does not refer only to have methods with the same 
names. It refers to consistent ways and patterns to implement things, common 
ways to configure the same stuff, etc. If we want to keep this, the vSphere 
provider should get rid of the vijava library and use the jclouds HTTP 
mechanisms to talk to the target API. Otherwise, all built-in benefits that 
jclouds provides out of the box for ALL the existing providers and APIS (http 
retry policies and error handlers, pluggable http/ssh drivers, pagination, etc) 
won't be available  for vShpere. Furthermore, the http layer won't be 
configured in the same way, and this will make it really difficult to maintain 
and evolve as jclouds gets improved.

Before proceeding to a detailed review of the code quality and style, I think 
it is better to have the base building blocks of the provider properly 
implemented, so the following step should be to get rid of the vijava API and 
use the existing jclouds mechanisms implement the methods you need to talk to 
REST/SOAP APIs. As said, this is a big pull request, and it may take some time 
to take it to the point where it needs to be. I'll do my best to help you in 
this process.

I'd suggest you have a look to other provider and api implementations, and join 
the #jclouds IRC channel at Freenode or use our [dev mailing 
list](http://jclouds.apache.org/community). I'll be more than happy to help, 
teach, and discuss everything that can help moving forward. If you have 
questions or need guidance, don't hesitate and talk to us. It might seem 
intimidating but once you get familiar with how things are implemented things 
can be implemented quickly.

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

Reply via email to