Thanks @cdancy! And thanks for submitting the PR before having the entire 
provider :)

I'd like to suggest, though, that you reduce the scope of the PR. If you have a 
look at other similar pull requests ([Orion 
BlobStore](https://github.com/jclouds/jclouds-labs/pull/45), 
[Profitbricks](https://github.com/jclouds/jclouds-labs/pull/72) or 
[vSphere](https://github.com/jclouds/jclouds-labs/pull/61#issuecomment-60512184)),
 you'll see that they're still open or closed, but they never reached a state 
where they could be merged. That is because it is extremely difficult to 
address design and structural things when you have a patch with thousands of 
lines; it is very hard to cleanup everything if the individual building blocks 
are not ok.

I really want to avoid making the same mistakes and help you focus in what 
matters and what will allow you to write the provider in a way that is more 
likely to be merged soon, so I'd suggest the following "action plan":

* [ ] Drop the entire compute package from this PR.
* [ ] Drop all APIs except one (choose the one you prefer), and the model 
classes that are not directly used by that API.
* [ ] Drop the ProviderMetadata and leave only the ApiMetadata.

This will allow us to:

* Discuss the provider design and address structural things at the beginning so 
you can just build the rest of features on top of that.
* Have all core configuration properly coded and tested (error handlers, 
authentication, custom parsers, etc).
* Have a clean API in a good state to be merged, including mock and live tests.

It could seem that this approach would slow down the development of the 
provider, but again, take a look at the example PRs at the beginning of the 
comment. Having a clean starting point will help you get at speed, and adding 
small features will help you have the provider built sooner. This will also 
allow us to understand better the provider, and be able to help build it in an 
iterative manner.

Does this work for you?

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

Reply via email to