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?


Reply via email to