Hi There, In boron release, I'm seeing issue with the mandatory substatement not having an effect in case of rpc, whereas an error has been reported in case of RESTCONF.
container cloud-details { presence true; leaf host-ip { type inet-types:ipv4-address; mandatory true; description "Host IP address"; } leaf cloud-login { type string; mandatory true; default "admin"; description "cloud controller login username"; } leaf cloud-password { type string; mandatory true; default "admin"; description "cloud controller login password"; } } For e.g. I have the sample yang model defined above. If I do not input "host-ip" as part of rpc there was no error reported however the cloud-details gets created with cloud-login and cloud-password default values in the data store, but I was expecting an error should be reported instead which is the case with RESTCONF. Please let me know if I'm missing something to get this working for rpc as well. Transcripts from karaf.log: 2016-12-02 21:21:58,256 | ERROR | ult-dispatcher-3 | LocalThreePhaseCommitCohort | 169 - org.opendaylight.controller.sal-distributed-datastore - 1.4.0.Boron | Failed to prepare transaction member-1-datastore-config-fe-0-txn-9 on backend java.lang.IllegalArgumentException: Node ( http://www.sample.com/ns/cloud-config?revision=2016-10-21)cloud-details is missing mandatory descendant /( http://www.sample.com/ns/cloud-config?revision=2016-10-21)*host-ip* at com.google.common.base.Preconditions.checkArgument(Preconditions.java:145)[41:com.google.guava:18.0.0] at org.opendaylight.yangtools.yang.data.impl.schema.tree.MandatoryLeafEnforcer$Strict.enforceOnTreeNode(MandatoryLeafEnforcer.java:60)[57:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron] at org.opendaylight.yangtools.yang.data.impl.schema.tree.PresenceContainerModificationStrategy.verifyStructure(PresenceContainerModificationStrategy.java:33)[57:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyStructure(AbstractNodeContainerModificationStrategy.java:55)[57:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractNodeContainerModificationStrategy.verifyStructure(AbstractNodeContainerModificationStrategy.java:55)[57:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron] at org.opendaylight.yangtools.yang.data.impl.schema.tree.PresenceContainerModificationStrategy.verifyStructure(PresenceContainerModificationStrategy.java:35)[57:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron] at org.opendaylight.yangtools.yang.data.impl.schema.tree.ModifiedNode.seal(ModifiedNode.java:290)[57:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron] at org.opendaylight.yangtools.yang.data.impl.schema.tree.AbstractReadyIterator.process(AbstractReadyIterator.java:46)[57:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron] at org.opendaylight.yangtools.yang.data.impl.schema.tree.InMemoryDataTreeModification.ready(InMemoryDataTreeModification.java:281)[57:org.opendaylight.yangtools.yang-data-impl:1.0.0.Boron] Thanks, Senthil Jayakumar
_______________________________________________ controller-dev mailing list controller-dev@lists.opendaylight.org https://lists.opendaylight.org/mailman/listinfo/controller-dev