OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

camp message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: implementation question - modifying a "live" plan resource


I was curious what members of the TC thought about the following question. Suppose that, one way or another, you have created a plan resource and assembly resource that refers to the plan resource (i.e. there is a running application based on a particular plan). Now you try to modify some attributes of the plan resource using either PUT + select_attr or PATCH. What should the provider do? It seems to me that there are three reasonable choices:

1.) Process the request as per usual.

2.) Fail the request with an HTTP 409 (Conflict).

3.) Clone the plan, process the request on this new plan, and return a reference to the new plan.

(3) is a little far-fetched and, in any case, can be done manually by the user.

The problem with (1) is that it undermines the ability to determine the exact plan that created an application. Even if you don’t remember modifying the plan you can't be certain that nobody else modified the plan (in situations where multiple people are allowed to work on the same resource) or that you didn’t modify the plan then forget that you did that. Basically it becomes a lot more difficult (and, in some pathological situations, impossible) to determine the exact plan that created an application.

The problem with (2) is that it makes creating multiple, differently configured, applications from the same plan resource more cumbersome. You have to manually execute (3) from the user tool.

So what to people think? Is preserving the guarantee of the assembly —> plan relationship worth the burden of requiring users to manually clone plan resources if they want to create multiple applications with slightly different configurations?

~ gp





[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]