Uploaded image for project: 'netconf'
  1. netconf
  2. NETCONF-1215

Mandatory attributes in RPC input are not honoured

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Highest Highest
    • 8.0.0
    • None
    • restconf-nb
    • Operating System: All
      Platform: All

    • 8088

      We are using ODL Boron.

      Mandatory attributes inside RPC input are not honoured , therefore RPC’s can be invoked without passing mandatory attributes.

       

      rpc say-hello {
        input {
          leaf name {
            type string;
            mandatory true;
          }
        }
      }
      

       

      Whereas with RESTCONF url’s the mandatory attributes validation is happening

      RESTCONF ERROR:
      There is no Error to the North Bound(In the APIDOCS page), but in the server side, below logs are printed, CDS is not updated with the values as the validation is failed.

       

      Caused by: java.lang.IllegalArgumentException: Node (urn:opendaylight:params:xml:ns:yang:normalizednodedemo?revision=2015-01-05)emp-list[
      {(urn:opendaylight:params:xml:ns:yang:normalizednodedemo?revision=2015-01-05)name=vikram}
      ] is missing mandatory descendant /(urn:opendaylight:params:xml:ns:yang:normalizednodedemo?revision=2015-01-05)age
       at com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)[58:com.google.guava:18.0.0]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.MandatoryLeafEnforcer$Strict.enforceOnTreeNode(MandatoryLeafEnforcer.java:60)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.MandatoryLeafEnforcer$Strict.enforceOnTreeNode(MandatoryLeafEnforcer.java:53)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.ListEntryModificationStrategy.applyWrite(ListEntryModificationStrategy.java:41)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:216)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.mutateChildren(AbstractNodeContainerModificationStrategy.java:139)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.applyTouch(AbstractNodeContainerModificationStrategy.java:252)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.applyMerge(AbstractNodeContainerModificationStrategy.java:170)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.apply(SchemaAwareApplyOperation.java:207)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.MinMaxElementsValidation.checkMinMaxElements(MinMaxElementsValidation.java:76)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.MinMaxElementsValidation.checkMergeApplicable(MinMaxElementsValidation.java:114)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:131)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:305)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkMergeApplicable(AbstractNodeContainerModificationStrategy.java:313)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:131)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.StructuralContainerModificationStrategy.checkApplicable(StructuralContainerModificationStrategy.java:99)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkChildPreconditions(AbstractNodeContainerModificationStrategy.java:305)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.checkTouchApplicable(AbstractNodeContainerModificationStrategy.java:288)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.SchemaAwareApplyOperation.checkApplicable(SchemaAwareApplyOperation.java:125)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.RootModificationApplyOperation.checkApplicable(RootModificationApplyOperation.java:72)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
       at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractDataTreeTip.validate(AbstractDataTreeTip.java:37)[74:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron]
      

       

      RPC ERROR:
      Since there is no validation, it is returning the SUCCESSFUL RPC result to the North Bound

            Unassigned Unassigned
            vdarsi@advaoptical.com Vikram Darsi
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: