...
- "allowChange" flag should be provide by the user in AC definition properties.
The example below shows the new flag in "org.onap.policy.clamp.acm.HttpAutomationCompositionElement" definition
Code Block language yml configurationEntities:
type: map
required: true
allowChange: true
entry_schema:
type: org.onap.datatypes.policy.clamp.acm.httpAutomationCompositionElement.ConfigurationEntity
type_version: 1.0.0
description: The configuration entities the Automation Composition Element is managing and their associated REST requests
- a new message type will be created to send to participants (AC_PROPERTIES_UPDATE) and a new message type to send back (AC_PROPERTIES_UPDATE_ACK)
- participants and intermediary will be update accordingly
- When a client needs to replace an existing Resource entirely, they can use PUT. When they're doing a partial update, they can use HTTP PATCH. (https://www.baeldung.com/http-put-patch-difference-spring)
This patch, will update the original instance saved in db.
The example below shows endpoint and body to change the property configurationEntities of a specific instance:
PATCH /onap/policy/clamp/acm/v2/compositions/{{compositionId}}/instances
# example
Code Block | ||||
---|---|---|---|---|
| ||||
name: DemoInstance0 |
...
version: 1.0.1 |
...
compositionId: {{compositionId}} |
...
instanceId: {{instanceId}} |
...
elements: |
...
709c62b3-8918-41b9-a747-d21eb79c6c24: |
...
id: 709c62b3-8918-41b9-a747-d21eb79c6c24 |
...
definition: |
...
name: onap.policy.clamp.ac.element.Http_StarterAutomationCompositionElement |
...
version: 1.2.3 |
...
properties: |
...
configurationEntities: |
...
- configurationEntityId: |
...
name: onap.policy.clamp.ac.starter |
...
version: 1.0.0 |
...
restSequence: |
...
- restRequestId: |
...
name: request1 |
...
version: 1.0.1 |
...
httpMethod: POST |
...
path: /onap/policy/clamp/acelement/v2/activate |
...
body: '{ "receiverId": { "name": "onap.policy.clamp.ac.startertobridge", "version": "1.0.0" }, "timerMs": 10000, "elementType": "STARTER", "topicParameterGroup": { "server": "message-router:3904", "listenerTopic": "POLICY_UPDATE_MSG", "publisherTopic": "AC_ELEMENT_MSG", "fetchTimeout": 10000, "topicCommInfrastructure": "dmaap" } }' |
...
expectedResponse: 201 |
It needs a new TRANSITIONAL STATE (example UPDATING) to show the current instance element state.
When runtime receive the message back the transitional state will return in the original status.
...