On Mon, Jan 11, 2010 at 5:41 AM, Upayavira <[email protected]> wrote: > I've mostly implemented support for Voxel in libcloud. > > I've done everything but create_node and list_sizes, as I haven't yet > worked out how best to implement them. > > My main question is that libcloud expects discrete "sizes", whereas at > Voxel the memory/CPU are not tied to the disk usage. A 10 core device > could have a 10Gb disk while a 1 core device could have a 1Tb disk.
Yup, several providers allow this kind of variable NodeSize. I think the best thing we can do is in two parts: 1) Add a features["list_sizes"] dict, with: - variable_disk - variable_cores - variable_memory If these features attributes are set, its an indicator to a user of the driver, they are safe to set arbitrary values on the NodeSize object. 2) We should make a sensible set of default NodeSizes, this is what the vcloud driver does for example with regards to memory. I would suggest just making a set of NodeSizes that is roughly the same as what amazon or rackspace offer. This keeps the library easy to use for people who just want a node quickly, but also provides an API defined way for variable NodeSize objects. Thoughts? Thanks, Paul
