On Thu, 2010-01-14 at 12:56 -0800, Paul Querna wrote: > 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. I realised in thinking about this that cores/memory aren't variable - there are 13 discrete steps (1 core through 13, each core has 2Gb). Only disk is variable. At present you specify disk when creating a VM in the create_node() call (e.g. disk=5120). I'll put together a patch and upload it to Jira. Will you accept a patch without test cases though??? Upayavira
