Hi Chris: On 01/06/11 19:18, Chris Lalancette wrote:
All, We are having a bit of an issue with using condor with deltacloud[1]. Essentially the issue boils down to the fact that maximum length of an instance name is a detail leaking through the deltacloud abstraction. If I'm using gogrid as the backend cloud, then I, as a deltacloud client, currently need to know that the maximum length of an instance name is 20 characters. This makes it so that the client application needs to have code like:if (gogrid) name = 20characters elif (rhevm) name = 50characters etc, which breaks the abstraction layer. Ian Main, Richard Su, and myself have been trying to come up with some ideas of how to fix this situation, but we have run into a bit of a wall. The solutions that we have toyed around with are:
I like 4) - we already have 'features' which are driver specific params - for example the ec2 driver exposes different features for the instances collection that the rackspace driver. Adding an attribute to a specific feature in order to express a constraint such as 'string_length' sounds like a good way to go.
4) Export the name length restriction through some sort of deltacloud feature. Then the client can look at the restriction, and generate a name conforming to the restriction. Pros: Requires very little change in deltacloud itself. Pushes the problem out to the client Cons: Pushes the problem out to the client ;). Sort of breaks the cloud abstraction by having to have the client be smarter
well, yes, but no smarter than we already require the client to be. I mean, the client can't make any assumptions about the API - it must request the toplevel 'entry point' (e.g. /api/) and then process the information to determine what it can do with this particular invocation of deltacloud (e.g. does this driver support blob storage? - this is only exposed for ec2, rackspace and azure).
marios
Does anyone have any additional arguments for or against any of these options? Or have another idea of how we can stop the name length from leaking through the abstraction?
