BUG-509: Fix topology not being augmented 53/6153/2
authorRobert Varga <rovarga@cisco.com>
Mon, 14 Apr 2014 10:57:21 +0000 (12:57 +0200)
committerRobert Varga <rovarga@cisco.com>
Mon, 14 Apr 2014 16:11:55 +0000 (18:11 +0200)
The new datastore is picky about augmentations. More precisely it is
thorough in checking that the data destined to a particular adddress is
supposed to be there according to schema.

This is most noticable when a Binding-Aware application uses groupings,
as tthe Binding Specification does not discern between the individual
grouping instantiations -- allowing applications to easily attach
augmentations to a grouping instance and then use it in a context where
that augmentation has not been made.

This patch fixes one such instance, as reported by the following:

Caused by: java.lang.IllegalArgumentException: Supplied QName (urn:opendaylight:params:xml:ns:yang:pcep:crabbe:initiated:00?revision=2014-01-13)initiation is not valid according to schema container stateful
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:119) ~[na:na]
        at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation.fromSchemaAndPathArgument(DataNormalizationOperation.java:497) ~[na:na]
        at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$DataContainerNormalizationOperation.getChild(DataNormalizationOperation.java:226) ~[na:na]
        at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$CompositeNodeNormalizationOpertation.normalize(DataNormalizationOperation.java:165) ~[na:na]
        at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$CompositeNodeNormalizationOpertation.normalize(DataNormalizationOperation.java:144) ~[na:na]
        at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$CompositeNodeNormalizationOpertation.normalize(DataNormalizationOperation.java:185) ~[na:na]
        at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$CompositeNodeNormalizationOpertation.normalize(DataNormalizationOperation.java:144) ~[na:na]
        at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$CompositeNodeNormalizationOpertation.normalize(DataNormalizationOperation.java:185) ~[na:na]
        at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$CompositeNodeNormalizationOpertation.normalize(DataNormalizationOperation.java:144) ~[na:na]
        at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$CompositeNodeNormalizationOpertation.normalize(DataNormalizationOperation.java:185) ~[na:na]
        at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$CompositeNodeNormalizationOpertation.normalize(DataNormalizationOperation.java:144) ~[na:na]
        at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$CompositeNodeNormalizationOpertation.normalize(DataNormalizationOperation.java:182) ~[na:na]
        at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizationOperation$CompositeNodeNormalizationOpertation.normalize(DataNormalizationOperation.java:144) ~[na:na]
        at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer.toNormalized(DataNormalizer.java:88) ~[na:na]
        at org.opendaylight.controller.md.sal.common.impl.util.compat.DataNormalizer.toNormalized(DataNormalizer.java:63) ~[na:na]
        at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toNormalizedNode(BindingToNormalizedNodeCodec.java:57) ~[na:na]
        at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toNormalizedNode(BindingToNormalizedNodeCodec.java:51) ~[na:na]
        at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedTransaction.doPutWithEnsureParents(AbstractForwardedTransaction.java:107) ~[na:na]
        at org.opendaylight.controller.md.sal.binding.impl.ForwardedBackwardsCompatibleDataBroker$ForwardedBackwardsCompatibleTransacion.putOperationalData(ForwardedBackwardsCompatibleDataBroker.java:218) ~[na:na]
        at org.opendaylight.controller.md.sal.binding.impl.ForwardedBackwardsCompatibleDataBroker$ForwardedBackwardsCompatibleTransacion.putOperationalData(ForwardedBackwardsCompatibleDataBroker.java:195) ~[na:na]
        at org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener.onSessionUp(AbstractTopologySessionListener.java:153) ~[na:na]
        at org.opendaylight.bgpcep.pcep.topology.provider.AbstractTopologySessionListener.onSessionUp(AbstractTopologySessionListener.java:58) ~[na:na]
        at org.opendaylight.protocol.pcep.impl.PCEPSessionImpl.sessionUp(PCEPSessionImpl.java:391) ~[na:na]
        at org.opendaylight.protocol.framework.AbstractProtocolSession.handlerAdded(AbstractProtocolSession.java:51) ~[na:na]
        at io.netty.channel.DefaultChannelPipeline.callHandlerAdded0(DefaultChannelPipeline.java:484) [bundlefile:4.0.17.Final]
        ... 24 common frames omitted

Change-Id: Ie9d160a3a66c39ca3b4a86c50127c9b9080f2e6f
Signed-off-by: Robert Varga <rovarga@cisco.com>
pcep/ietf-stateful02/src/main/yang/odl-pcep-crabbe-initiated00.yang
pcep/ietf-stateful07/src/main/yang/odl-pcep-ietf-initiated00.yang

index 802f036d6eddc2e6a982fc70ca345f8405bf8314..24b9e8ff39f082eef34af019afbe6eff0bf652ec 100644 (file)
@@ -5,7 +5,9 @@ module odl-pcep-crabbe-initiated00 {
 
        import pcep-types { prefix pcep; revision-date 2013-10-05; }
        import pcep-message { prefix msg; revision-date 2013-10-07; }
-       import odl-pcep-ietf-stateful02 { prefix stateful02; revision-date 2014-01-10 ;}
+       import network-topology { prefix nt; revision-date 2013-10-21; }
+       import network-topology-pcep { prefix topo; revision-date 2013-10-24; }
+       import odl-pcep-ietf-stateful02 { prefix stateful; revision-date 2014-01-10 ;}
 
        organization "Cisco Systems, Inc.";
        contact "Dana Kutenicsova <dkutenic@cisco.com>";
@@ -59,23 +61,32 @@ module odl-pcep-crabbe-initiated00 {
                        }
                }
        }
-       
-       augment "/msg:open/msg:open-message/msg:open/msg:tlvs" {
-               uses lsp-cleanup-tlv;
-       }
 
-       augment "/msg:open/msg:open-message/msg:open/msg:tlvs/stateful02:stateful" {
+       grouping initiated-capability-tlv {
                leaf initiation {
                        type boolean;
                        default false;
                }
        }
        
+       augment "/msg:open/msg:open-message/msg:open/msg:tlvs" {
+               uses lsp-cleanup-tlv;
+       }
+
+       augment "/msg:open/msg:open-message/msg:open/msg:tlvs/stateful:stateful" {
+               uses initiated-capability-tlv;
+       }
+
        augment "/pcinitiate/pcinitiate-message/requests/lspa/tlvs" {
-               uses stateful02:symbolic-path-name-tlv;
+               uses stateful:symbolic-path-name-tlv;
        }
 
        notification pcinitiate {
                uses pcinitiate-message;
        }
+
+       augment "/nt:network-topology/nt:topology/nt:node/topo:path-computation-client/topo:stateful-tlv/stateful:stateful" {
+               uses initiated-capability-tlv;
+       }
 }
+
index 1ebf7e35e70c7cefee9786371bf917a4daf48afa..a920805ca5db0d34759f0e32ebe91bd9919ed66a 100644 (file)
@@ -5,6 +5,8 @@ module odl-pcep-ietf-initiated00 {
 
        import pcep-types { prefix pcep; revision-date 2013-10-05; }
        import pcep-message { prefix msg; revision-date 2013-10-07; }
+       import network-topology { prefix nt; revision-date 2013-10-21; }
+       import network-topology-pcep { prefix topo; revision-date 2013-10-24; }
        import odl-pcep-ietf-stateful07 { prefix stateful; revision-date 2013-12-22; }
 
        organization "Cisco Systems, Inc.";
@@ -50,6 +52,14 @@ module odl-pcep-ietf-initiated00 {
                }
        }
 
+       grouping initiated-capability-tlv {
+               reference "http://tools.ietf.org/html/draft-ietf-pce-pce-initiated-lsp-00#section-4.1";
+               leaf initiation {
+                       type boolean;
+                       default false;
+               }
+       }
+
        augment "/stateful:pcupd/stateful:pcupd-message/stateful:updates/stateful:srp" {
                reference "http://tools.ietf.org/html/draft-ietf-pce-pce-initiated-lsp-00#section-5.2";
                leaf remove {
@@ -83,14 +93,15 @@ module odl-pcep-ietf-initiated00 {
        }
 
        augment "/msg:open/msg:open-message/msg:open/msg:tlvs/stateful:stateful" {
-               reference "http://tools.ietf.org/html/draft-ietf-pce-pce-initiated-lsp-00#section-4.1";
-               leaf initiation {
-                       type boolean;
-                       default false;
-               }
+               uses initiated-capability-tlv;
        }
 
        notification pcinitiate {
                uses pcinitiate-message;
        }
+
+       augment "/nt:network-topology/nt:topology/nt:node/topo:path-computation-client/topo:stateful-tlv/stateful:stateful" {
+               uses initiated-capability-tlv;
+       }
+
 }