...
Assumption | Notes | Sign-off | |
---|---|---|---|
1 | Scope:
| This does not affect (bulk/batch) Read |
|
2 | Conflict Management Interface uses FDN | Conflict Management can support ANY format the Alternate ID can support (FDNs and/or URI-FDNs) |
|
3 | Request per second is per the existing numbers on NCMP |
|
Issues & Decisions
Issue | Notes | Decision | |
---|---|---|---|
1 | Uplift Ericsson source code (need permission) | CPS not allowed to lift // proprietary codes, we need to use pseudo code Gergely/team to support CPS with these codes | |
2 | Implement in REST or Service Layer ? | This is currently implemented as an in the Service |
layer in // | |
3 | Publish public |
NCMP shall own and document. | |||||||
4 | Could we make this more generic to suit non-conflict-management use i.e. tbac... | Agreed to make it more generic to suit ALL the use cases | |||||
5 | Private properties are used to get FDN at the moment. | Will // provide us with registered Alternatid? Opensource does not support private property Peter Turcsanyi to revert TBC . // Confirmed they will implement all https://eteamproject.internal.ericsson.com/browse/IDUN-105467 |
| ||||
6 | CPS-1992 - NCMP to Support New 3GPP sync single FDN request to support Conflict mgt | CPS-1992 - When delivered, this should also support conflict management | |||||
7 | Legacy and ongoing bulk/batch interface (dataJobs CPS-1964) are not in scope | Bulk/batch operation
| |||||
8 | Name for more generic interface | Suggestion: External Validation AP Kolawole Adebisi-Adeolokun to inform other stakeholders | New Interface name shall be PolicyExecution as agreed with stakeholders Kolawole Adebisi-Adeolokun kieran mccarthy Gergely Molnar | ||||
9 | External Validation Request format | POST operation, all parameters in body, URL ? AP Toine Siebelink to create a page & collaborate with Gergely/Brian ( on initial proposal) | |||||
10 | Enable/service name discovery | config parameter with service name/address. AP Toine Siebelink to create a page & collaborate with Gergely/Brian ( on initial proposal) | |||||
11 | case sensitivity of parameters (payloadType, decision etc.) | e.g. accept 'allow', 'Allow', 'ALLOW' or only accept only on well defined case sensitive variation and anything else is a error scenario?! To be discussed during proposal; AP Toine Siebelink to create a page & collaborate with Gergely/Brian ( on initial proposal) | |||||
12 | Delivery Artefact | The new OpenAPI Interface definition wil be published on CPS Public Documentation Page. and through ONAP Gerrit. | Brian Folan, Toine Siebelink agreed to use same as DMI ie. just 'deliver' to Doc and Repo | ||||
13 | Specify cmChangeRequest in more detail |
|
|
Consider the following scenario (from Brian Folan).
There is an active policy for time based lock against an attribute on a specific cmHandle.
A change is made to the attribute, triggering the time-based lock for x minutes, but the CM change fails after letting it through to the DMIToine Siebelink I am concerned this wil reduce the flexibility of this interface. Also, NCMP itself is NOT interested in eth actual change details so why enforce them in this interface... Csaba Kocsis 'id' and 'attributes' are a 3GPP conventions only | Zoltán Szabó Toine Siebelink Validation need on IMpl. side but for flexibility this is not required in CPS/NCMP so we agreed to pass it as 'an object' | |
14 | How to feed back result of CM change to Policy Execution/Executor? | Consider the following scenario (from Brian Folan). There is an active policy for time based lock against an attribute on a specific cmHandle. A change is made to the attribute, triggering the time-based lock for x minutes, but the CM change fails after letting it through to the DMI due to any reason and it's not actually rolled out to the network. The policy engine would apply the lock and no subsequent changes are allowed for the duration of the lock, however no changes were made to the network. Should we feed back the result of a CM change to the Policy Engine? |
Brian Folan Toine Siebelink agreed this is out of scope for this epic but can be considered later. Interface propsosal is flexible enough to extend for something like this in the future | ||
15 | Choose URL format | Gergely Molnar prefers |
alternative a (with an 'action'): |
) goes in the body as detailed below | Zoltán Szabó Toine Siebelink agreed on Alt.a. a simple URL, all data in body | ||
16 | Optional CmHandleId and ResourceIdentifier | Brian Folan: Cm Handl e ID wil mean nothing for Ericsson Impl but can be logged. Resource Identifier can be 'convention' but they don't depend on it if the target fdn contains the 'complete' fdn | Brian Folan, Zoltán Lajos Kis Toine Siebelink CM Handle Id and Resource Identifier are optional. CPS/NCMP will add them when provided in the incoming interface |
Requirements
Functional: new generic 'PolicyExecution' REST interface
...
Scenario | Expected Behavior | Notes | Signoff | |
---|---|---|---|---|
1 | External validation service does not respond (in time) Or does not respond with 2xx (Http status code) | configurable default answer | This needs further investigation AP Gergely Molnar Possible proposal:
| |
2 | Unrecognized response from External Validation | (Low prio) No default behavior covered yet in //, If not reachable - default accept/reject with specific message | ||
3 | CM Handle ID without Alternate Id (fdn) |
Characteristics
Parameter | Expectation | Notes | Signoff | |
---|---|---|---|---|
1 | Performance impact? |
|
...
URI: <server-address>/policy-executor/api/v1
Alternative b-2. Payload and decision Type in URL
remaining data in request body, no need for 'payload' object because the body = payload
URI: <server-address>/policy-executor/api/v1/<payload-type>/<decision-type>
e.g. myhost:1234//policy-executor/api/v1/CM_Write/Allow
Alternative b-2. Payload and decision Type in URL with variable names
remaining data in request body, no need for 'payload' object because the body = payload
URI: <server-address>/policy-executor/api/v1/payload/<payload-type>/decision/<decision-type>
e.g. myhost:1234//policy-executor/api/v1/payload/CM_Write/decision/Allow
Input Parameters
Could be in URL, See alt. b above
Name | Parent | Type | Example | Optional/Compulsory | Notes | |
---|---|---|---|---|---|---|
1 | Authorization: Bearer | header | String | Required | required for tracking/ (future) authentication and to identify the source of the request | |
2 | payloadType | body | String | CM_Write | Required | Could be in URL, See alt. b above 'CM_Write' currently, the only support value |
3 | decisionType | body | String | Allow | Required | Could be in URL, See alt. b above 'Allow' currently, the only supported value |
4 | payload | body | Object Array | Required | No needed if payload and decision are in URL | |
5 | cmHandleId | payload | String | F811AF64F5146DFC545EC60B73DE948E | Optional | Can be sent while cmHandle is used instead of alternateId NCMP will populate when available |
6 | resourceIdentifer | payload | String | ericsson-enm-gnbdu:ManagedElement=Kista/GNBDUFunction=1/UECC=1 | RequiredOptional | Remainder of FDN ? NCMP will populate when available |
7 | targetFdn | payload | StringMEContext | =RadioNode-0001,ManagedElement=RadioNode-0001/Subnetwork=22/MeContext=Kista/ManagedElement=Kista/GNBDUFunction=1/UECC=1 | Required | Complete FDN representing the cm handle and the resource identifier ie point to the target of the change to 'CM-Handle' ?! |
8 | cmChangeRequest | payload | Object | Required | CM Change Request |
...
Code Block | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
{ "payloadType": "CM_Write", "decisionType": "Allow", "payload": [ { "cmHandleId": "F811AF64F5146DFC545EC60B73DE948E", "resourceIdentifier": "some-resource-idGNBDUFunction=1/UECC=1", "targetFdn": "MEContext=RadioNode-K6_0001,ManagedElement=RadioNode-K6_0001/Subnetwork=22/MeContext=Kista/ManagedElement=Kista/GNBDUFunction=1/UECC=1", "cmChangeRequest": { "Cell": [ { "id": "Cell-id", "attributes": { "administrativeState": "UNLOCKED" } } ] } } ] } |
...