Hi, As suggested by Marios, I have attached a patch of the FGCP driver implementation I have so far to its issue [1]. There are a number of TODOs and design choices I made that, where possible, I'd hope to get your feedback about. In particular:
1. The default storage paths for the user and CA certificates and the environment variables to override them with. 2. Instance :username is hardcoded to 'root' in some drivers. In FGCP it depends on the image's OS: 'root' for Linux and 'Administrator' for Windows. There is no API to get the username but I could check the OS from the instance's image and return the right username that way. I couldn't find any other drivers doing this. What would you recommend? Add the call or just not set :username? 3. 'feature :instances, :hardware_profiles', what does it do? 4. hardware_profiles.storage: storage is defined as part of the image in FGCP, not the hwp. Should I just not set this variable, or set it to a particular value (like 'N/A')? 5. Is there an easy way to sort the hardware_profiles before returning them? Especially if hwp setting is optional when creating a new instance I'd like to default to the lowest spec one, but that is currently not the first one returned by hardware_profiles. So I'd like to sort its profiles by memory and cpu before returning them. 6. FGCP's create image from instance API does not return the new image id straight away. In fact, it is not known until the creation process completes. What do you think of my solution to return a dummy id? Shall I add a check for that ID in create_instance to raise an error? 7. Realms is something I'll ask your feedback about once I've added support for storage volumes and other 'vsys' scoped resources. 8. I had browser timeouts with the instances method so I reduced the amount of detail given when no :id is specified. What do you think of the rules I use decide whether to add detail? OK like that or make it more predictable and return more detail only for the case where id is given? 9. Proper error handling and 'safely do' blocks: I don't have it everywhere and where I have it it may not look consistent. That's because I haven't looked at it in enough detail yet to understand how the other drivers do it. I'll improve it in a future patch. 10. Images' hardware profiles: In FGCP images can be used with any hardware profile, so I'm saving a call (to retrieve the hardware profile list) and return an empty array. Should I return the hwps anyway? Storage is defined by the image so I could return the list of profiles with the storage specified too. 11. valid_credentials?: I only noticed about this method when I was looking at some of the other drivers' unit tests. It's not in the online API documentation. How/why would a client use it? https://issues.apache.org/jira/browse/DTACLOUD-176 Cheers, Dies Koper