[occi-wg] OCCI JSON Rendering Draft
Ralf Nyren
ralf at nyren.net
Tue May 8 15:57:42 EDT 2012
On Tue, 08 May 2012 16:17:57 +0200, Feldhaus, Florian
<florian.feldhaus at gwdg.de> wrote:
> Locations
> - do UUIDs have to be globally unique, unique for all resources within a
> provider, or for all resources of a certain kind?
According to OCCI Core occi.core.id must be unique within the service
providers name-space.
UUIDs should be rather unique in general me thinks, kind of their
purpose...
> -> I would prefer if we don't restrict this too much, thus it would be
> sufficient to restrict in OCCI Core, that UUIDs are unique for all
> resources of a certain kind for one OCCI endpoint. The UUID is created
> by the backend (underlying service provider) or with information from
> it. Thus, if the resource is migrated to a different service provider,
> it gets a different UUID anyway.
I think we should leave it as it is in OCCI Core, that is occi.core.id
MUST be unique within the service provider's name-space. Having a Compute
and a StorageLink with the same UUID must not be possible.
> - I'm not too happy with having the location being part of the
> kind/mixin rendering, as it is specific to the HTTP representation of
> the OCCI objects. I thought we might be able to introduce some guideline
> to derive the location from the term of the kind/mixin and it's related
> kinds/mixins (e.g. term recursively prepended by term of related
> kind/mixin). The only problem is, that mixins can have multiple
> relations. Thus we might have multiple locations for the same mixin. I
> don't see a problem with it, but it might lead to confusion.
Please view the "location" as a pointer to where you can find a
representation of the Collection implied by the Kind/Mixin.
If you want to keep the JSON serialization "clean" simply say location is
a string with the above semantics.
> Link
> - for Target and Source the URI is sufficient, all further information
> can be retrieved by the client. There may also be mechanisms to ask the
> server to directly supply all resources connected via links. But that
> should be taken care of in HTTP rendering then.
> - Source is optional when rendered within resource. Then the link
> definition is the same for top level link renderings and link renderings
> within resources.
Inline rendering of Link attributes must be supported. As with the
text/plain rendering they would be optional but the format should support
them.
Sorry to be so hard on this but I believe it very important to keep as
close as possible to the existing text/plain rendering in terms of the
information transferred. If we start changing too much the JSON rendering
will take forever to get ready.
Additionally I find the title of the target Resource to be quite handy.
Imagine rendering a Resource with click-able links for example.
> Mixins
> - can mixins be related to kinds?
No. This is well-defined in OCCI Core.
> -> I have a resource template as example and was wondering, how one
> would specify occi.compute.core for this template. If the mixin is
> related to compute, the attributes are all derived from the compute kind
> description and can be set to new defaults with the mixin.
There is no restrictions on which attributes a Mixin could define. You
could have a Mixin defining the occi.compute.speed attribute for instance.
To create a template with a default value for occi.compute.speed you
create a Mixin defining attribute occi.compute.speed with property
"default" set to the desired value.
> Action
> - should action really not be derived from category?
The Action class represent an invocable action. The Category instance
describes the type, i.e. a sub-class of Action. I do agree though that the
modelling of the Action is a weak part of OCCI Core.
> -> I don't see any reason for the current solution (action containing a
> category). It would be much more consistent, if the Action would also be
> derived from Category.
Category, Kind and Mixin are type identifiers. Instances of
Category/Kind/Mixin describe other classes such as Resource and Link.
This is the tricky part of the OCCI Core model. You have (in OO language)
_objects_ which describe other _classes_.
> Formatting
> - Currently the JSON examples are a bit hard to read. Maybe we could use
> the LaTeX package "minted" to do automatic highlighting?
I would be a bit careful with colors in the document but give it a go so
we can see :)
Regarding the examples could you replace the example values and instead
put in the JSON type in italics instead?
E.g.:
{
"resources": [
{
"kind": *string*,
"mixins: [ *string*, ... ]
}]
}
Pure examples could then be saved for a separate section at the end of the
document.
regards, Ralf
More information about the occi-wg
mailing list