DimensionDataResearch / go-dd-cloud-compute

Dimension Data CloudControl API for Go
MIT License
4 stars 2 forks source link

Add support for storage controllers #12

Open jeffstoner opened 7 years ago

jeffstoner commented 7 years ago

The Q release added support for multiple storage controllers. The current list of possible controllers is:

tintoy commented 7 years ago

Thanks for the reminder - I'll get onto this in a day or 2.

Do you mind if I ask what you're using the Go client for? Always good to understand consumer use-cases :)

tintoy commented 7 years ago

Hi @jeffstoner, this looks to be a bit trickier than I initially expected it to be. Turns out that the v2.5 APIs are less backward-compatible than versions.

For example:

I could introduce a second set of client methods (and their associated models) to avoid breaking existing consumers but it makes the client messy and harder to consume.

A bigger issue is the knock-on effects for upstream consumers such as the Terraform provider. If we go down that road then the provider will have to start maintaining separate code paths for a variety of resources (which makes the provider's behaviour harder to reason about and test).

CC: @kumarappanc @mingsheng36 @wninobla @johnamurray @alexbacchin

Your input would be appreciated, both regarding this design and the trade-offs it involves.

tintoy commented 7 years ago

CC: @manishkp @BenObermayer