Thanks for the contribution @vpetersson !

It would be really nice to have this merged. There are a few generic things, 
though, that need to be addressed, to be aligned with the latest refactors done 
in jclouds 1.7.0-SNAPSHOT, regarding the removal of the asynchronous interfaces:

* We no longer have the asynchronous interface, so the `CloudSigma2AsyncClient` 
should be removed and all the annotations moved to the corresponding methods of 
the `CloudSigma2Client` class.
* The convention is that api classes should be named like: `CloudSigma2Api`, so 
`CloudSigma2Client` should be renamed accordingly.
* The `CloudSigma2ApiMetadata` should extend from 
[BaseHttpApiMetadata](https://github.com/jclouds/jclouds/blob/master/core/src/main/java/org/jclouds/rest/internal/BaseHttpApiMetadata.java),
 and its deprecated fields (the context token) should be removed as it is not 
used in 1.7.
* The `CloudSigma2RestClientModule` should be renamed to 
`CloudSigma2HttpApiModule` and should extend from the 
[HttpApiModule](https://github.com/jclouds/jclouds/blob/master/core/src/main/java/org/jclouds/rest/config/HttpApiModule.java).
 Its annotation should be replaced by `@ConfiguresHttpApi`.


Also, there are no tests in this API, and they should be added. We have two 
types of tests:

* Expect tests: Unit tests that use mocks to verify that the API properly 
generates the requests and properly parses the responses.
* Live tests: Integration tests that perform the real API calls to verify that 
the API works as expected.

Both tests should be added for each method in the API since we rely a lot on 
them to be confident that everything is working. You can take a look at the 
projects (for example) in the 
[jclouds-labs-openstack](https://github.com/jclouds/jclouds-labs-openstack) 
repo (openstack-trove could be a good example).

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

Reply via email to