...
- The order of Operations is important and needs to be maintained hence the use of 'List'
- The output is 'void' for the scope in this user story, it will be defined later
dataaccepttype
anddatacontenttype
might be needed too, see issue #1 and #2. If required we could combine them to reduce the number of parameter in an object likeRestProtocolParameters
Datajob read request
Name | Description | Location | Type | Mandatory |
---|---|---|---|---|
destination | The destination of the results. ( e.g. S3 Bucket) | Query | string | N |
dataaccepttype | Define the data response accept type. Passible values: · application/vnd.3gpp.object-tree-hierarchical+json (default) · application/vnd.3gpp.object-tree-flat+json | request body | enum | N |
datacontenttype | Define the data request content type. Passible values: · application/3gpp-json-patch+json (default) | request body | enum | N |
data | List of operations to be executed. | request body | List of 3gppReadOperation | Y |
3gppReadOperation
Name | Description | Type |
---|---|---|
path | It is a unique identifier of a managed object (MO) on a network element. | String |
op | Describes the operation to execute. The value can be: "read" | String |
operationId | Unique identifier of the operation within the request | Integer |
attributes | This parameter specifies the attributes of the scoped resources that are returned. | List of String |
fields | This parameter specifies the attribute fields of the scoped resources that are returned. This should be used if an attribute is a struct and only a subset of its fields should be returned. | List of String |
filter | The parameter is used to filter the scoped Managed Objects. Only Managed Objects passing the filter criteria will be fetched. | List of String |
scopeType | ScopeType selects MOs depending on relationships with Base Managed Object. | enum[BASE_ONLY, BASE_ALL, BASE_NTH_LEVEL, BASE_SUBTREE] |
scopeLevel | Only used when the scope type is BASE_NTH_LEVEL | Integer |
Datajob write request
Name | Description | Location | Type | Mandatory |
---|---|---|---|---|
destination | The destination of the results. ( e.g. S3 Bucket) | Query | string | N |
dataaccepttype | Define the data response accept type. Passible values: · application/vnd.3gpp.object-tree-hierarchical+json (default) · application/vnd.3gpp.object-tree-flat+json | request body | enum | N |
datacontenttype | Define the data request content type. Passible values: · application/3gpp-json-patch+json (default) | request body | enum | N |
data | List of operations to be executed. | request body | List of 3gppPatchOperation | Y |
3gppPatchOperation
Name | Description | Type |
---|---|---|
path | It is a unique identifier of a managed object (MO) on a network element. | String |
op | Describes the operation to execute. The value can be: "add", | String |
operationId | Unique identifier of the operation within the request | Integer |
value | ||
TO BE UPDATED | Object |
Examples from DCM Study
DataJob Read request (rAPP -> DCM)
...
JSON Viewer | ||||
---|---|---|---|---|
| ||||
{ "dataaccepttype": "application/vnd.3gpp.object-tree-hierarchical+json", "datacontenttype": "application/3gpp-json-patch+json", "data": [ { "op": "add", "path": "SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=1/EUtraNetwork=1/EUtranFrequency=12", "value": { "id": "12", "attributes": { "userLabel": "label12", "arfcnValueEUtranDl": "12" } } }, { "op": "add", "path": "SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=1/EUtraNetwork=1/EUtranFrequency=11", "value": { "id": "11", "attributes": { "userLabel": "label11" } } }, { "op": "replace", "path": "SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=1/EUtraNetwork=1/EUtranFrequency=1#/attributes/userLabel", "value": "label1" }, { "op": "remove", "path": "SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=1/EUtraNetwork=1/EUtranFrequency=13" }, { "op": "action", "path": "SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003", "value": "sync" } ] } |
Proposed JIRAs
Priority | Component | Description | JIRA | Estimates | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Create implementation proposal for NCMP to provide support for Data jobs qualifier during registration |
| ||||||||||||||
2 | NCMP to provide support for data producer identifier during registration |
| ||||||||||||||
3 | Support of Datajobs qualifier during registration |
| ||||||||||||||
4 | Modify the get cmHandle api to return dataProducerIdentifier, moduleSetTag, and alternateId |
| ||||||||||||||
5 | Modify lcm events to include dataProducerIdentifier and moduleSetTag |
| ||||||||||||||
6 | Create implementation proposal for NCMP to provide Java interface that can support Data jobs request |
| ||||||||||||||
7 | Define a java based datastructure for DataJob |
| ||||||||||||||
8 | Handle Datajob request |
| ||||||||||||||
9 | Handle Async Datajob Response |
| ||||||||||||||
10 | Response schema for DMI dataJob response |
| ||||||||||||||
11 | Define DMI REST interface for Datajobs |
| ||||||||||||||
12 | Forward dataJob response from DMI to Client Topic |
| ||||||||||||||
13 | Move DMI Stub from NCMP to DMI-Plugin |
| ||||||||||||||
14 | End to End Demo Story |
|
...