Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. Jira
    serverONAP Jira
    columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
    columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
    serverId425b2b0a-557c-3c0c-b515-579789cceedb
    keyCPS-2155
  2. Name convention for Managed Objects (3GPP TS 32.300 version 11.2.0 Release 11)

Open Discussion  

#IssueNotesDecision
1MVP (Minimum Viable Product) for DCM
  1. Expected Delivery to EIC  Q3(August) to EIC. (Fossing and Testing)

  2. Write Only Should be prioritized for target delivery (Q3). It should include
    - Batch write
    - NCMP should only check the cmhanlde of the first operation 
    - Should Databag be populated or not kieran mccarthy / Csaba Kocsis ?
  3. NCMP should prioritize CPS-2009 Update remaining existing/legacy NCMP APIs to support alternate Id (FDN) - Developer Wiki - Confluence (onap.org) - over datajob Read. New Epic to be created for DataJob Read sperate this from 1964 - > CPS-2189
  1. EIC Expected Delivery  Q3(August) 
2DataJob Read v Write prioritizationWrite should be prioritized over read

 

3Use of '/ ' causes some issues

kieran mccarthy Csaba Kocsis  to review this impact on querying of FDN

 

4

Prioritize CPS-2009 Update remaining existing/legacy NCMP APIs to support alternate Id (FDN) - Developer Wiki - Confluence (onap.org) - over Read.

New Epic requested for DataJob Read sperate this from 1964.

Expected even earlier than q3

Agreed to move higher on R14 - #17

 

Issues & Decisions


IssueNotes Decision
1dataaccepttype Do we need to consider this parameter in our NCMP internal Java interface?The controller should accept/reject dataaccepttype. From the client application

The Controller will validate and set the Default as necessary kieran mccarthy Sourabh Sourabh Kolawole Adebisi-Adeolokun Toine Siebelink 

2datacontenttype Do we need to consider this parameter in our NCMP internal Java interface?NCMP should maintain the content type as received and not modify datacontenttype.

NCMP should maintain what content type as received and not modify   kieran mccarthy Sourabh Sourabh Kolawole Adebisi-Adeolokun Toine Siebelink 

3

attributes This has plural but all examples contain a single String, why?

kieran mccarthy & Rafael to come back with a 'definition' and 'example

Kolawole Adebisi-Adeolokun to follow up with stakeholders on decision by 19/03/2024

4

The study mentions 'fields and attributes". None of the examples use 'fields'. We can see only 'value' Objects (in the write use cases)

kieran mccarthy & Rafael to come back with a 'definition' and 'example


Read and Write data jobs are 2 deff. objects.  


Kolawole Adebisi-Adeolokun to follow up with stakeholders on decision by 19/03/2024

5

Combine all java api parameters into 1 parameter object?

There is a limit (sonar quality check) of 7 parameter max for a method

Team 
follow common practice and  have a few parameters ie. dataJobId is NOT part of the client request but generated in DCM so it seems logical to keep this separates

6

Confirm that validation is the responsibility of the REST?


Yes, the rest controller will do input validation. via email 26/03/2024 Csaba Kocsis 

7

Is Status likely to change in the future? Considering using string for flexibility.


Java interfaces shall be 'strings'  Csaba Kocsis
Kolawole Adebisi-Adeolokun

8

Is ScopeType likely to change in the future? Don't want to use an enum if change is likely


Java interfaces shall be 'strings Csaba Kocsis Kolawole Adebisi-Adeolokun 

9

Can one request contain both read and write operations?


Writes and reads will not mix. But different writes operations can mix, like update or create. via email 26/03/2024 Csaba Kocsis 

10

Was there a decision made on whether write requests were using kafka or is there any discussion ongoing?


Retrieving the results for the write is done through HTTP synchronously.

Csaba Kocsis 

11

name of privateProperties (CMHandle private properties for the alternateID in the path.)

Can keep this var name as "cmHandleProperties" for consistency?

Agreed to use "cmHandleProperties" Csaba Kocsis Kolawole Adebisi-Adeolokun 

...

Code Block
languageyml
titleopenapi.yaml
linenumberstrue
collapsetrue
openapi: 3.0.3
info:
  description: Adds subjob capabilities for DCM Support datajobs through one or more subjob for each DMI and Data Producer
    Identifier combination
  title: NCMP Data Subjob API
  version: 1.0.0
servers:
  - url: /dmi
tags:
  - description: DMI plugin rest apis
    name: dmi-datajob
paths:
  /v1/dataJob/{requestId}:
    post:
      description: Create a read request
      operationId: createReadRequest
      parameters:
        - $refdescription: '#/components/parameters/requestIdInPath'
      requestBody:Identifier for the overall Datajob
        descriptionexplode: Operation bodyfalse
        contentin: path
          application/3gpp-json-patch+json:name: requestId
        required: true
   schema:
     schema:
          $refexample: '#/components/schemas/SubjobRequest'some-identifier
      tags:
    type: string
 - dmi-datajob
      responsesstyle: simple
        "200"requestBody:
          description: Response for subjobcontent:
          content: application/3gpp-json-patch+json:
            application/jsonschema:
              schema:$ref: '#/components/schemas/SubjobRequest'
        description: Operation body
      typeresponses: object
         "200":
          propertiescontent:
            application/json:
        dataProducerJobId:
      schema:
                type$ref: string'#/components/schemas/createReadRequest_200_response'
          description: Response for subjob
      tags:
   description: The data job ID.- dmi-datajob
components:
  parameters:
    requestIdInPath:
      description: Identifier for the overall Datajob
      explode: requestIdfalse
      in: path
      name: requestId
      required: true
      schema:
        example: requestIdsome-identifier
        type: string
  schemas:
    SubjobRequeststyle: simple
  schemas:
    typeSubjobRequest: object
      requiredproperties:
        -dataAcceptType:
 dataProducerId
        - data
description: Defines the data response accept properties:type
         dataAcceptType: example: application/vnd.3gpp.object-tree-hierarchical+json
          type: string
        dataContentCypedataContentType:
          type: string
description: Defines the data request content type
         dataProducerId: example: application/3gpp-json-patch+json
          type: string
        datadataProducerId:
          oneOfdescription:
 ID of the producer registered by DMI for the alternateIds in
 - $ref: '#/components/schemas/ReadOperation'
          the operations -in $ref: '#/components/schemas/WriteOperation'this request
    ReadOperation:
      typeexample: arraymy-data-producer-identifier
      items:
        type: objectstring
        requireddata:
          - path$ref: '#/components/schemas/SubjobRequest_data'
      required:
      - opdata
      -  properties:dataProducerId
      type: object
    ReadOperation:
      pathexample:
        op: read
   type: string
    operationId: 1
     op:
   path: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=2
        typeattributes: stringuserLabel
          operationIdscope:
            typescopeTyp: stringBASE_ONLY
      items:
    attributes:
    $ref: '#/components/schemas/ReadOperation_inner'
       type: array
    WriteOperation:
        itemsexample:
        op: add
        type: stringpath: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003/GNBCUCPFunction=1/EUtraNetwork=1/EUtranFrequency=12
          fieldsvalue:
            typeid: array12
            itemsattributes:
              typeuserLabel: stringlabel12
      items:
    filter:
    $ref: '#/components/schemas/WriteOperation_inner'
       type: stringarray
    CmHandleProperties:
      scopeTypetype: object
    Resource:
        typeproperties: string
          scopeLevelid:
          description:  type: integerIdentifier of the resource object
          moduleSetTagexample: resource-identifier
            type: string
          cmHandlePropertiesattributes:
          additionalProperties:
  $ref: '#/components/schemas/CmHandleProperties'
    WriteOperation:
     example: type"userLabel: arraylabel11"
      items:
        type: objectstring
        required:
  description: Key value map representing the objects class -attributes pathand
           - opvalues
        properties:
  type: object
      type: object
    pathActionParameters:
      additionalProperties:
        type: string
      description: The input of the action op:
in the form of key value pairs
      type: stringobject
    Object:
      operationIdtype: object
    createReadRequest_200_response:
        typeexample:
 string
       dataProducerJobId: dataProducerJobId
  value:
    properties:
        typedataProducerJobId:
 object
         description: The data job oneOf:ID.
          type: string
   - $ref: '#/components/schemas/Resource'  type: object
    SubjobRequest_data:
      oneOf:
      - $ref: '#/components/schemas/ActionParametersReadOperation'
              - $ref: '#/components/schemas/Object'
WriteOperation'
    ReadOperation_inner:
      properties:
        path:
         CmHandleProperties:
 description: Defines the resource on which operation is executed
          example: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003
          type: string
        op:
          description: Describes the operation to execute
          example: read
          type: string
        operationId:
          description: Unique identifier for the operation within the request
          example: "1"
          type: string
        attributes:
          description: This parameter specifies the attributes of the scoped resources
            that are returned
          items:
            example: cellId
            type: string
          type: array
        fields:
          description: This parameter specifies the attribute fields of the scoped
            resources that are returned
          items:
            type: string
          type: array
        filter:
          description: This parameter is used to filter the scoped Managed Objects.
            Only Managed Objects passing the filter criteria will be fetched
          example: NRCellDU/attributes/administrativeState==LOCKED
          type: string
        scopeType:
          description: ScopeType selects MOs depending on relationships with Base
            Managed Object
          example: BASE_ONLY
          type: string
        scopeLevel:
          description: Only used when the scope type is BASE_NTH_LEVEL to specify
            amount of levels to search
          example: 0
          type: integer
        moduleSetTag:
          description: Module set identifier
          example: my-module-set-tag
          type: string
        cmHandleProperties:
          type: object
      required:
      - op
      - path
      type: object
    WriteOperation_inner_value:
      description: Value dependent on the op specified. Resource for an add. Object
        for a replace. ActionParameters for an action.
      oneOf:
      - $ref: '#/components/schemas/Resource'
      - $ref: '#/components/schemas/ActionParameters'
      - $ref: '#/components/schemas/Object'
      type: object
    WriteOperation_inner:
      properties:
        path:
          description: Defines the resource on which operation is executed
          example: SubNetwork=Europe/SubNetwork=Ireland/MeContext=NR03gNodeBRadio00003/ManagedElement=NR03gNodeBRadio00003
          type: string
        typeop: object
    Resource:
      typedescription: object
Describes the operation to execute
  properties:
        idexample: add
          type: string
        attributesoperationId:
          type: objectdescription: Unique identifier for the operation within the request
          additionalPropertiesexample: "1"
            type: string
        ActionParametersvalue:
      type: object    $ref: '#/components/schemas/WriteOperation_inner_value'
      additionalPropertiesrequired:
      - op
 type: string
    Object:- path
      type: object

          

 




IssueNotesDecision
1


2


3


4


5


Datajob read request

...