Uploaded image for project: 'yangtools'
  1. yangtools
  2. YANGTOOLS-242

Deserialization error in Yang Choice

    XMLWordPrintable

Details

    • Bug
    • Status: Resolved
    • Resolution: Done
    • None
    • None
    • None
    • None
    • Operating System: Mac OS
      Platform: PC

    • 1467

    Description

      Not sure if related to https://bugs.opendaylight.org/show_bug.cgi?id=1466 or one more issue around Choice/Groups

      I have the following model:

      grouping ip-port-locator {
      description
      "Data plane-locator. The Service Function Forwarder uses the IP:port tuple
      to send packets to this Service Function.";
      leaf ip

      { type inet:ip-address; }

      leaf port

      { type inet:port-number; }

      }

      grouping mac-address-locator {
      description
      "Data plane-locator. The Service Function Forwarder uses the mac-address
      to send packets to this Service Function.";
      leaf mac

      { type yang:mac-address; }

      }

      grouping data-plane-locator {
      choice locator-type {
      mandatory true;
      case ip

      { uses ip-port-locator; }

      case mac

      { uses mac-address-locator; }

      }
      }
      }

      In OnDataChanged() when I issue a getCreatedData, I get:

      2014-08-01 09:03:31.618 PDT [pool-15-thread-1] WARN o.o.y.s.b.g.i.RuntimeGeneratedMappingServiceImpl - Failed to deserialize path KeyedInstanceIdentifier

      {targetType=interface org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.service.functions.ServiceFunction, path=[org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.ServiceFunctions, org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.service.functions.ServiceFunction[key=ServiceFunctionKey [_name=fw-ca]]]}

      data Node[ImmutableCompositeNode], qName[service-function], modify[n/a], children.size = 5
      2014-08-01 09:03:31.633 PDT [pool-15-thread-1] WARN o.o.c.m.s.b.i.AbstractForwardedDataBroker - Failed to transform (urn:cisco:params:xml:ns:yang:sfc-sf?revision=2014-07-01)service-functions/(urn:cisco:params:xml:ns:yang:sfc-sf?revision=2014-07-01)service-function/(urn:cisco:params:xml:ns:yang:sfc-sf?revision=2014-07-01)service-function[

      {(urn:cisco:params:xml:ns:yang:sfc-sf?revision=2014-07-01)name=fw-ca}

      ]=ImmutableMapEntryNode{nodeIdentifier=(urn:cisco:params:xml:ns:yang:sfc-sf?revision=2014-07-01)service-function[

      {(urn:cisco:params:xml:ns:yang:sfc-sf?revision=2014-07-01)name=fw-ca}

      ], value=[ImmutableContainerNode{nodeIdentifier=(urn:cisco:params:xml:ns:yang:sfc-sf?revision=2014-07-01)sf-data-plane-locator, value=[ImmutableChoiceNode{nodeIdentifier=(urn:cisco:params:xml:ns:yang:sfc-sf?revision=2014-07-01)locator-type, value=[ImmutableLeafNode{nodeIdentifier=(urn:cisco:params:xml:ns:yang:sfc-sf?revision=2014-07-01)ip, value=172.16.155.100, attributes={}}, ImmutableLeafNode{nodeIdentifier=(urn:cisco:params:xml:ns:yang:sfc-sf?revision=2014-07-01)port, value=5050, attributes={}}]}], attributes={}}, ImmutableLeafNode{nodeIdentifier=(urn:cisco:params:xml:ns:yang:sfc-sf?revision=2014-07-01)ip-mgmt-address, value=2001::2, attributes={}}, ImmutableLeafNode{nodeIdentifier=(urn:cisco:params:xml:ns:yang:sfc-sf?revision=2014-07-01)service-function-forwarder, value=ovs-1, attributes={}}, ImmutableLeafNode{nodeIdentifier=(urn:cisco:params:xml:ns:yang:sfc-sf?revision=2014-07-01)name, value=fw-ca, attributes={}}, ImmutableLeafNode{nodeIdentifier=(urn:cisco:params:xml:ns:yang:sfc-sf?revision=2014-07-01)type, value=firewall, attributes={}}], attributes={}}, omitting it
      org.opendaylight.yangtools.yang.data.impl.codec.DeserializationException: Data deserialization failed
      at org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl.dataObjectFromDataDom(RuntimeGeneratedMappingServiceImpl.java:299) ~[bundlefile:na]
      at org.opendaylight.controller.config.yang.md.sal.binding.impl.RuntimeMappingModule$RuntimeGeneratedMappingServiceProxy.dataObjectFromDataDom(RuntimeMappingModule.java:145) ~[bundlefile:na]
      at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toBinding(BindingToNormalizedNodeCodec.java:259) ~[bundlefile:na]
      at org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec.toBinding(BindingToNormalizedNodeCodec.java:272) ~[bundlefile:na]
      at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker.toBinding(AbstractForwardedDataBroker.java:106) ~[bundlefile:na]
      at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker$TranslatedDataChangeEvent.getCreatedData(AbstractForwardedDataBroker.java:223) [bundlefile:na]
      at org.opendaylight.sfc.provider.SfcProviderSfEntryDataListener.onDataChanged(SfcProviderSfEntryDataListener.java:81) [bundlefile:na]
      at org.opendaylight.controller.md.sal.binding.impl.AbstractForwardedDataBroker$TranslatingDataChangeInvoker.onDataChanged(AbstractForwardedDataBroker.java:198) [bundlefile:na]
      at org.opendaylight.controller.md.sal.dom.store.impl.ChangeListenerNotifyTask.run(ChangeListenerNotifyTask.java:33) [bundlefile:na]
      at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [na:1.7.0_60]
      at java.util.concurrent.FutureTask.run(FutureTask.java:262) [na:1.7.0_60]
      at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_60]
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_60]
      at java.lang.Thread.run(Thread.java:745) [na:1.7.0_60]
      Caused by: org.opendaylight.yangtools.sal.binding.generator.impl.TransformerGeneratorException: Failed to generate for type interface org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sl.rev140701.data.plane.locator.locator.type.Mac
      at org.opendaylight.yangtools.sal.binding.generator.impl.TransformerGeneratorException.wrap(TransformerGeneratorException.java:18) ~[bundlefile:na]
      at org.opendaylight.yangtools.sal.binding.generator.impl.AbstractTransformerGenerator.caseCodecFor(AbstractTransformerGenerator.java:117) ~[bundlefile:na]
      at org.opendaylight.yangtools.sal.binding.generator.impl.LazyGeneratedCodecRegistry.getCaseCodecFor(LazyGeneratedCodecRegistry.java:412) ~[bundlefile:na]
      at org.opendaylight.yangtools.sal.binding.generator.impl.LazyGeneratedCodecRegistry$DispatchChoiceCodecImpl.tryToLoadImplementation(LazyGeneratedCodecRegistry.java:1031) ~[bundlefile:na]
      at org.opendaylight.yangtools.sal.binding.generator.impl.LazyGeneratedCodecRegistry$DispatchChoiceCodecImpl.tryToLoadImplementation(LazyGeneratedCodecRegistry.java:1020) ~[bundlefile:na]
      at org.opendaylight.yangtools.sal.binding.generator.impl.LazyGeneratedCodecRegistry$DispatchChoiceCodecImpl.tryToLoadImplementations(LazyGeneratedCodecRegistry.java:1045) ~[bundlefile:na]
      at org.opendaylight.yangtools.sal.binding.generator.impl.LazyGeneratedCodecRegistry$DispatchChoiceCodecImpl.adaptForPathImpl(LazyGeneratedCodecRegistry.java:1055) ~[bundlefile:na]
      at org.opendaylight.yangtools.sal.binding.generator.impl.LazyGeneratedCodecRegistry$LocationAwareDispatchCodec.adaptForPath(LazyGeneratedCodecRegistry.java:789) ~[bundlefile:na]
      at org.opendaylight.yangtools.sal.binding.generator.impl.LazyGeneratedCodecRegistry$LocationAwareDispatchCodec.deserialize(LazyGeneratedCodecRegistry.java:709) ~[bundlefile:na]
      at org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sl.rev140701.data.plane.locator.LocatorType$Broker$Codec$DOM.fromDomStatic(LocatorType$Broker$Codec$DOM.java) ~[na:na]
      at org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.service.function.entry.SfDataPlaneLocator$Broker$Codec$DOM.fromDomStatic(SfDataPlaneLocator$Broker$Codec$DOM.java) ~[na:na]
      at org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.service.functions.ServiceFunction$Broker$Codec$DOM.fromDomStatic(ServiceFunction$Broker$Codec$DOM.java) ~[na:na]
      at org.opendaylight.yang.gen.v1.urn.cisco.params.xml.ns.yang.sfc.sf.rev140701.service.functions.ServiceFunction$Broker$Codec$DOM.deserialize(ServiceFunction$Broker$Codec$DOM.java) ~[na:na]
      at org.opendaylight.yangtools.sal.binding.generator.impl.LazyGeneratedCodecRegistry$DataContainerCodecImpl.deserialize(LazyGeneratedCodecRegistry.java:641) ~[bundlefile:na]
      at org.opendaylight.yangtools.sal.binding.generator.impl.RuntimeGeneratedMappingServiceImpl.dataObjectFromDataDom(RuntimeGeneratedMappingServiceImpl.java:291) ~[bundlefile:na]
      ... 13 common frames omitted

      Attachments

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

        Activity

          People

            tony.tkacik@gmail.com Tony Tkacik
            repenno Reinaldo Penno
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: