
On Thu, 02 Sep 2010 10:02:32 +0200, Csom Gyula <csom@interface.hu> wrote:
Take the following example:
The user creates a new compute using some networks and disks, ie. define links to some network and disk. The compute is then deployed and soon becomes up and running. Then later the user deletes some network and disk... well, maybe she forgets about that they are used within some running compute. According to the implicit delete behaviour the computes will "loose" its disks and networks which might mean that it becomes unusable.
I would say this is really up to the server implementation. Any kind of server implementation should disallow users from putting part of the system in an unusable state. However, the specification will not enforce this. Different use cases will require different semantics and a server is allowed to refuse requests when needed.
I think deleting source resources with links is a natural behaviour since links are in fact "owned" by the sources. However this might not be the case with target resources, hence alternatives might be examined as well - like:
So if I have a Compute linked by a IPAddressLink to a Network, removing the IPAddressLink would also remove the Compute? That would be sure to upset the users... ;) No, the current model has it very nicely defined I think. And if you need any other (more sophisticated) lifecycle semantics, just subclass the Resourse/Link and implement whatever is needed. regards, Ralf