Amartus / yang2swagger

Yang to swagger generator
Eclipse Public License 1.0
32 stars 21 forks source link

Wrong openapi generated when run inside docker #48

Closed zsoltkrenak closed 2 years ago

zsoltkrenak commented 3 years ago

Wrong output is generated from OpenDayLight's sal-remote and sal-remote-augment yang modules when generator runs inside a docker image: The sal.remote.augment.ScopeEnumeration type and the sal.remote.augment.DatastoreEnumeration type are removed as unused because sal.remote.augment.InputAugmentation1 model is removed from swagger definitions during generation.

This does not happen when generation runs on a normal host.

Source yang file can be found here: https://github.com/opendaylight/netconf/tree/master/restconf/restconf-common-models/src/main/yang

Reproduction:

Create a simple image with openjdk8, base image doesn't matter (already tested with Ubuntu20.04, openjdk:8-jdk-alpine, SLES15). Same issue is present when using Docker as described here in the repo.

For Ubuntu:

FROM ubuntu:20.04

RUN apt update -qq
RUN apt install -yq openjdk-8-jdk

Build image:

docker build -t ubuntu-jdk-8

Launch docker image:

docker run -i -t --user `id -u`:`id -g` --volume ~/yangtoswagger:/workspace/yangtoswagger --workdir /workspace/yangtoswagger ubuntu-jdk-8

Run follwing command in docker image:

java -Dlogback.configurationFile=./logback.xml -jar swagger-generator-cli-1.1.14-executable.jar -use-namespaces -yang-dir sal-remote/ -output openapi.yaml

Output logs will be:

07:35:31.107 [main] INFO  c.mrv.yangtools.common.ContextHelper - adding sal-remote
07:35:31.238 [main] INFO  c.mrv.yangtools.common.SchemaBuilder - Inspecting all defined yangs [sal-remote/sal-remote.yang, sal-remote/sal-remote-augment.yang]
07:35:31.338 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase SOURCE_PRE_LINKAGE
07:35:31.339 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase SOURCE_PRE_LINKAGE
07:35:31.339 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase SOURCE_PRE_LINKAGE started
07:35:31.400 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase SOURCE_PRE_LINKAGE
07:35:31.400 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase SOURCE_PRE_LINKAGE
07:35:31.400 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase SOURCE_PRE_LINKAGE finished
07:35:31.401 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase SOURCE_LINKAGE
07:35:31.401 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase SOURCE_LINKAGE
07:35:31.401 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase SOURCE_LINKAGE started
07:35:31.423 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase SOURCE_LINKAGE
07:35:31.424 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase SOURCE_LINKAGE
07:35:31.424 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase SOURCE_LINKAGE finished
07:35:31.424 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase STATEMENT_DEFINITION
07:35:31.424 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase STATEMENT_DEFINITION
07:35:31.424 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase STATEMENT_DEFINITION started
07:35:31.446 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase STATEMENT_DEFINITION
07:35:31.447 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase STATEMENT_DEFINITION
07:35:31.447 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase STATEMENT_DEFINITION finished
07:35:31.447 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase FULL_DECLARATION
07:35:31.447 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase FULL_DECLARATION
07:35:31.447 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase FULL_DECLARATION started
07:35:31.499 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase FULL_DECLARATION
07:35:31.499 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase FULL_DECLARATION
07:35:31.499 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase FULL_DECLARATION finished
07:35:31.499 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase EFFECTIVE_MODEL
07:35:31.499 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase EFFECTIVE_MODEL
07:35:31.499 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase EFFECTIVE_MODEL started
07:35:31.500 [main] DEBUG o.o.y.y.p.s.r.UsesStatementImpl - Will copy LEAF statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type}
07:35:31.503 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will reuse TYPE statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration}
07:35:31.504 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Reusing substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type}
07:35:31.504 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will copy DEFAULT statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)default}, rawArgument=XML}
07:35:31.504 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Copying substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)default}, rawArgument=XML} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type} as
07:35:31.505 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Copying substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)description}, rawArgument=Input parameter which type of output will be parsed on notification} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type} as
07:35:31.506 [main] DEBUG o.o.y.y.p.s.r.UsesStatementImpl - Will copy LEAF statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type}
07:35:31.506 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will reuse TYPE statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration}
07:35:31.507 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Reusing substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type}
07:35:31.507 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will copy DEFAULT statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)default}, rawArgument=XML}
07:35:31.507 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Copying substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)default}, rawArgument=XML} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type} as
07:35:31.507 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Copying substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)description}, rawArgument=Input parameter which type of output will be parsed on notification} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type} as
07:35:31.510 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will reuse TYPE statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration}
07:35:31.511 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Reusing substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type}
07:35:31.512 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will copy DEFAULT statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)default}, rawArgument=XML}
07:35:31.513 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Copying substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)default}, rawArgument=XML} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type} as
07:35:31.514 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Copying substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)description}, rawArgument=Input parameter which type of output will be parsed on notification} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type} as
07:35:31.515 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will reuse TYPE statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration}
07:35:31.515 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Reusing substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=datastore}
07:35:31.517 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will reuse TYPE statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration}
07:35:31.517 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Reusing substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=scope}
07:35:31.518 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will reuse TYPE statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration}
07:35:31.518 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Reusing substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type}
07:35:31.519 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will copy DEFAULT statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)default}, rawArgument=XML}
07:35:31.519 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Copying substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)default}, rawArgument=XML} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type} as
07:35:31.519 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Copying substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)description}, rawArgument=Input parameter which type of output will be parsed on notification} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type} as
07:35:31.519 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase EFFECTIVE_MODEL
07:35:31.520 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase EFFECTIVE_MODEL
07:35:31.520 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase EFFECTIVE_MODEL finished
07:35:31.597 [main] DEBUG o.o.y.util.RecursiveObjectLeaker - Removed thread state
07:35:31.621 [main] INFO  com.mrv.yangtools.codegen.main.Main - Modules found in the sal-remote/ are sal-remote, sal-remote-augment
07:35:31.647 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 2 elements available
07:35:31.650 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 2 elements available
07:35:31.661 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 0 elements available
07:35:31.668 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 2 elements available
07:35:31.684 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.augment.NotificationOutputTypeGrouping
07:35:31.825 [main] INFO  c.m.y.codegen.SwaggerGenerator - Generating swagger for yang modules: [sal-remote,sal-remote-augment]
07:35:31.827 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - processing data nodes defined in sal-remote
07:35:31.827 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 0 elements available
07:35:31.832 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - processing rpcs defined in sal-remote
07:35:31.834 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.createdatachangeeventsubscription.Input
07:35:31.834 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - skipping augmenting node AbsoluteSchemaPath{path=[(urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)create-data-change-event-subscription, (urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)input, (urn:sal:restconf:event:subscription?revision=2014-07-08)datastore]}
07:35:31.835 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - skipping augmenting node AbsoluteSchemaPath{path=[(urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)create-data-change-event-subscription, (urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)input, (urn:sal:restconf:event:subscription?revision=2014-07-08)scope]}
07:35:31.835 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - skipping augmenting node AbsoluteSchemaPath{path=[(urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)create-data-change-event-subscription, (urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)input, (urn:sal:restconf:event:subscription?revision=2014-07-08)notification-output-type]}
07:35:31.835 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 1 elements available
07:35:31.837 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.CreateDataChangeEventSubscription
07:35:31.837 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 2 elements available
07:35:31.838 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.createdatachangeeventsubscription.Output
07:35:31.839 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.begintransaction.Input
07:35:31.839 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 0 elements available
07:35:31.840 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.BeginTransaction
07:35:31.840 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 2 elements available
07:35:31.841 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.begintransaction.Output
07:35:31.841 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.createnotificationstream.Input
07:35:31.842 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - skipping augmenting node AbsoluteSchemaPath{path=[(urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)create-notification-stream, (urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)input, (urn:sal:restconf:event:subscription?revision=2014-07-08)notification-output-type]}
07:35:31.842 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 1 elements available
07:35:31.842 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.CreateNotificationStream
07:35:31.844 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 2 elements available
07:35:31.846 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.createnotificationstream.Output
07:35:31.847 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - processing augmentations defined in sal-remote
07:35:31.847 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - processing data nodes defined in sal-remote-augment
07:35:31.848 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 2 elements available
07:35:31.848 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - processing rpcs defined in sal-remote-augment
07:35:31.848 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - processing augmentations defined in sal-remote-augment
07:35:31.848 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 3 elements available
07:35:31.848 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 1 elements available
07:35:31.857 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - adding create-data-change-event-subscription to null
07:35:31.870 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for RPC input input
07:35:31.883 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - processing augmentations for input
07:35:31.893 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - found grouping id #/definitions/sal.remote.augment.NotificationOutputTypeGrouping for (urn:sal:restconf:event:subscription?revision=2014-07-08)notification-output-type-grouping
07:35:31.896 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - adding grouping #/definitions/sal.remote.augment.NotificationOutputTypeGrouping to composed model
07:35:31.902 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - adding model #/definitions/sal.remote.augment.NotificationOutputTypeGrouping for grouping
07:35:31.903 [main] WARN  c.m.y.c.i.OptimizingDataObjectBuilder - no child found with name (urn:sal:restconf:event:subscription?revision=2014-07-08)notification-output-type-grouping
07:35:31.903 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for GroupingEffectiveStatementImpl[qname=(urn:sal:restconf:event:subscription?revision=2014-07-08)notification-output-type-grouping]
07:35:31.903 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generating enum model for (urn:sal:restconf:event:subscription?revision=2014-07-08)notification-output-type
07:35:31.909 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generating enum model for (urn:sal:restconf:event:subscription?revision=2014-07-08)datastore-enumeration
07:35:31.909 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generating enum model for (urn:sal:restconf:event:subscription?revision=2014-07-08)scope-enumeration
07:35:31.921 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for com.mrv.yangtools.codegen.impl.RpcContainerSchemaNode@50817221
07:35:31.922 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - reference to #/definitions/sal.remote.createdatachangeeventsubscription.Output
07:35:31.922 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - adding referenced model #/definitions/sal.remote.createdatachangeeventsubscription.Output for node RPC Output output
07:35:31.923 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for RPC Output output
07:35:31.924 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - dropping create-data-change-event-subscription segment
07:35:31.934 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - dropping create-data-change-event-subscription segment
07:35:31.934 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - adding begin-transaction to null
07:35:31.935 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for com.mrv.yangtools.codegen.impl.RpcContainerSchemaNode@2bc44201
07:35:31.935 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - reference to #/definitions/sal.remote.begintransaction.Output
07:35:31.936 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - adding referenced model #/definitions/sal.remote.begintransaction.Output for node RPC Output output
07:35:31.937 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for RPC Output output
07:35:31.937 [main] WARN  c.m.y.c.i.AbstractDataObjectBuilder - generating swagger string property for any schema type for (urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)data-modification-transaction
07:35:31.937 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - dropping begin-transaction segment
07:35:31.938 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - dropping begin-transaction segment
07:35:31.938 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - adding create-notification-stream to null
07:35:31.938 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for RPC input input
07:35:31.940 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - processing augmentations for input
07:35:31.940 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for GroupingEffectiveStatementImpl[qname=(urn:sal:restconf:event:subscription?revision=2014-07-08)notification-output-type-grouping]
07:35:31.940 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - reusing enum model for (urn:sal:restconf:event:subscription?revision=2014-07-08)notification-output-type
07:35:31.941 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for com.mrv.yangtools.codegen.impl.RpcContainerSchemaNode@9b7ad4e1
07:35:31.942 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - reference to #/definitions/sal.remote.createnotificationstream.Output
07:35:31.942 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - adding referenced model #/definitions/sal.remote.createnotificationstream.Output for node RPC Output output
07:35:31.943 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for RPC Output output
07:35:31.943 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - dropping create-notification-stream segment
07:35:31.943 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - dropping create-notification-stream segment
07:35:31.952 [main] DEBUG c.m.y.c.i.p.ReplaceDefinitionsProcessor - 1 replacement found for definitions
07:35:31.962 [main] DEBUG c.m.y.c.i.p.ReplaceDefinitionsProcessor - removing sal.remote.augment.InputAugmentation1 model from swagger definitions
07:35:31.973 [main] DEBUG c.m.y.c.i.p.ReplaceDefinitionsProcessor - 0 replacement found for definitions
07:35:31.986 [main] DEBUG c.m.y.c.i.p.TypesUsageTreeBuilder - Adding new type sal.remote.createdatachangeeventsubscription.Output
07:35:31.987 [main] DEBUG c.m.y.c.i.p.TypesUsageTreeBuilder - Adding new type sal.remote.createnotificationstream.Output
07:35:31.988 [main] DEBUG c.m.y.c.i.p.TypesUsageTreeBuilder - Adding new type sal.remote.augment.NotificationOutputTypeGrouping
07:35:31.989 [main] DEBUG c.m.y.c.i.p.TypesUsageTreeBuilder - Adding new type sal.remote.augment.NotificationOutputType
07:35:31.989 [main] DEBUG c.m.y.c.i.p.TypesUsageTreeBuilder - Adding new type sal.remote.begintransaction.Output
07:35:31.991 [main] DEBUG c.m.y.c.i.p.RemoveUnusedDefinitions - Getting references for path /operations/sal-remote:begin-transaction/
07:35:31.992 [main] DEBUG c.m.y.c.i.p.RemoveUnusedDefinitions - Getting references for path /operations/sal-remote:create-data-change-event-subscription/
07:35:32.000 [main] DEBUG c.m.y.c.i.p.RemoveUnusedDefinitions - Getting references for path /operations/sal-remote:create-notification-stream/
07:35:32.002 [main] DEBUG c.m.y.c.i.p.RemoveUnusedDefinitions - Unused type: sal.remote.augment.ScopeEnumeration
07:35:32.002 [main] DEBUG c.m.y.c.i.p.RemoveUnusedDefinitions - Unused type: sal.remote.augment.DatastoreEnumeration
07:35:32.003 [main] INFO  c.m.y.c.i.p.RemoveUnusedDefinitions - Removing unused type sal.remote.augment.ScopeEnumeration
07:35:32.004 [main] INFO  c.m.y.c.i.p.RemoveUnusedDefinitions - Removing unused type sal.remote.augment.DatastoreEnumeration
07:35:32.004 [main] DEBUG c.m.y.c.i.p.RemoveUnusedDefinitions - Pruned 2 of 12 definitions.

When the same generation runs on the same host but without Docker:

09:53:51.498 [main] INFO  c.mrv.yangtools.common.ContextHelper - adding sal-remote
09:53:51.635 [main] INFO  c.mrv.yangtools.common.SchemaBuilder - Inspecting all defined yangs [sal-remote/sal-remote.yang, sal-remote/sal-remote-augment.yang]
09:53:51.717 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase SOURCE_PRE_LINKAGE
09:53:51.717 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase SOURCE_PRE_LINKAGE
09:53:51.717 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase SOURCE_PRE_LINKAGE started
09:53:51.771 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase SOURCE_PRE_LINKAGE
09:53:51.772 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase SOURCE_PRE_LINKAGE
09:53:51.772 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase SOURCE_PRE_LINKAGE finished
09:53:51.773 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase SOURCE_LINKAGE
09:53:51.775 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase SOURCE_LINKAGE
09:53:51.775 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase SOURCE_LINKAGE started
09:53:51.789 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase SOURCE_LINKAGE
09:53:51.790 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase SOURCE_LINKAGE
09:53:51.790 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase SOURCE_LINKAGE finished
09:53:51.790 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase STATEMENT_DEFINITION
09:53:51.790 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase STATEMENT_DEFINITION
09:53:51.790 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase STATEMENT_DEFINITION started
09:53:51.809 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase STATEMENT_DEFINITION
09:53:51.810 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase STATEMENT_DEFINITION
09:53:51.810 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase STATEMENT_DEFINITION finished
09:53:51.810 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase FULL_DECLARATION
09:53:51.811 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase FULL_DECLARATION
09:53:51.813 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase FULL_DECLARATION started
09:53:51.870 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase FULL_DECLARATION
09:53:51.871 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase FULL_DECLARATION
09:53:51.871 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase FULL_DECLARATION finished
09:53:51.872 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase EFFECTIVE_MODEL
09:53:51.873 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null started phase EFFECTIVE_MODEL
09:53:51.874 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase EFFECTIVE_MODEL started
09:53:51.875 [main] DEBUG o.o.y.y.p.s.r.UsesStatementImpl - Will copy LEAF statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type}
09:53:51.876 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will reuse TYPE statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration}
09:53:51.877 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Reusing substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type}
09:53:51.877 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will copy DEFAULT statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)default}, rawArgument=XML}
09:53:51.878 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Copying substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)default}, rawArgument=XML} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type} as
09:53:51.878 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Copying substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)description}, rawArgument=Input parameter which type of output will be parsed on notification} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type} as
09:53:51.881 [main] DEBUG o.o.y.y.p.s.r.UsesStatementImpl - Will copy LEAF statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type}
09:53:51.882 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will reuse TYPE statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration}
09:53:51.882 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Reusing substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type}
09:53:51.882 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will copy DEFAULT statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)default}, rawArgument=XML}
09:53:51.882 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Copying substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)default}, rawArgument=XML} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type} as
09:53:51.882 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Copying substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)description}, rawArgument=Input parameter which type of output will be parsed on notification} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type} as
09:53:51.884 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will reuse TYPE statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration}
09:53:51.884 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Reusing substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=datastore}
09:53:51.886 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will reuse TYPE statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration}
09:53:51.891 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Reusing substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=scope}
09:53:51.892 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will reuse TYPE statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration}
09:53:51.893 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Reusing substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type}
09:53:51.893 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will copy DEFAULT statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)default}, rawArgument=XML}
09:53:51.893 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Copying substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)default}, rawArgument=XML} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type} as
09:53:51.894 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Copying substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)description}, rawArgument=Input parameter which type of output will be parsed on notification} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type} as
09:53:51.894 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will reuse TYPE statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration}
09:53:51.895 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Reusing substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)type}, rawArgument=enumeration} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type}
09:53:51.895 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Will copy DEFAULT statement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)default}, rawArgument=XML}
09:53:51.896 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Copying substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)default}, rawArgument=XML} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type} as
09:53:51.897 [main] DEBUG o.o.y.y.p.s.r.SubstatementContext - Copying substatement SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)description}, rawArgument=Input parameter which type of output will be parsed on notification} for SubstatementContext{definition=StatementDefinitionContext{statement=(urn:ietf:params:xml:ns:yang:yin:1)leaf}, rawArgument=notification-output-type} as
09:53:51.898 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase EFFECTIVE_MODEL
09:53:51.899 [main] DEBUG o.o.y.y.p.s.r.SourceSpecificContext - Source null finished phase EFFECTIVE_MODEL
09:53:51.899 [main] DEBUG o.o.y.y.p.s.r.BuildGlobalContext - Global phase EFFECTIVE_MODEL finished
09:53:51.992 [main] DEBUG o.o.y.util.RecursiveObjectLeaker - Removed thread state
09:53:52.010 [main] INFO  com.mrv.yangtools.codegen.main.Main - Modules found in the sal-remote/ are sal-remote, sal-remote-augment
09:53:52.038 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 2 elements available
09:53:52.040 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 2 elements available
09:53:52.054 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 0 elements available
09:53:52.056 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 2 elements available
09:53:52.071 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.augment.NotificationOutputTypeGrouping
09:53:52.208 [main] INFO  c.m.y.codegen.SwaggerGenerator - Generating swagger for yang modules: [sal-remote,sal-remote-augment]
09:53:52.210 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - processing data nodes defined in sal-remote
09:53:52.210 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 0 elements available
09:53:52.214 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - processing rpcs defined in sal-remote
09:53:52.215 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.begintransaction.Input
09:53:52.215 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 0 elements available
09:53:52.217 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.BeginTransaction
09:53:52.217 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 2 elements available
09:53:52.218 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.begintransaction.Output
09:53:52.218 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.createnotificationstream.Input
09:53:52.219 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - skipping augmenting node AbsoluteSchemaPath{path=[(urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)create-notification-stream, (urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)input, (urn:sal:restconf:event:subscription?revision=2014-07-08)notification-output-type]}
09:53:52.219 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 1 elements available
09:53:52.219 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.CreateNotificationStream
09:53:52.220 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 2 elements available
09:53:52.220 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.createnotificationstream.Output
09:53:52.221 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.createdatachangeeventsubscription.Input
09:53:52.221 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - skipping augmenting node AbsoluteSchemaPath{path=[(urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)create-data-change-event-subscription, (urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)input, (urn:sal:restconf:event:subscription?revision=2014-07-08)datastore]}
09:53:52.221 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - skipping augmenting node AbsoluteSchemaPath{path=[(urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)create-data-change-event-subscription, (urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)input, (urn:sal:restconf:event:subscription?revision=2014-07-08)scope]}
09:53:52.221 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - skipping augmenting node AbsoluteSchemaPath{path=[(urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)create-data-change-event-subscription, (urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)input, (urn:sal:restconf:event:subscription?revision=2014-07-08)notification-output-type]}
09:53:52.221 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 1 elements available
09:53:52.222 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.CreateDataChangeEventSubscription
09:53:52.222 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 2 elements available
09:53:52.222 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generatedName: sal.remote.createdatachangeeventsubscription.Output
09:53:52.222 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - processing augmentations defined in sal-remote
09:53:52.223 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - processing data nodes defined in sal-remote-augment
09:53:52.224 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 2 elements available
09:53:52.224 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - processing rpcs defined in sal-remote-augment
09:53:52.224 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - processing augmentations defined in sal-remote-augment
09:53:52.224 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 3 elements available
09:53:52.224 [main] DEBUG c.m.y.codegen.impl.DataNodeIterable - 1 elements available
09:53:52.241 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - adding begin-transaction to null
09:53:52.256 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for com.mrv.yangtools.codegen.impl.RpcContainerSchemaNode@56e05201
09:53:52.272 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - reference to #/definitions/sal.remote.begintransaction.Output
09:53:52.273 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - adding referenced model #/definitions/sal.remote.begintransaction.Output for node RPC Output output
09:53:52.274 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for RPC Output output
09:53:52.274 [main] WARN  c.m.y.c.i.AbstractDataObjectBuilder - generating swagger string property for any schema type for (urn:opendaylight:params:xml:ns:yang:controller:md:sal:remote?revision=2014-01-14)data-modification-transaction
09:53:52.280 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - dropping begin-transaction segment
09:53:52.288 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - dropping begin-transaction segment
09:53:52.288 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - adding create-notification-stream to null
09:53:52.290 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for RPC input input
09:53:52.291 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - processing augmentations for input
09:53:52.295 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for GroupingEffectiveStatementImpl[qname=(urn:sal:restconf:event:subscription?revision=2014-07-08)notification-output-type-grouping]
09:53:52.297 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generating enum model for (urn:sal:restconf:event:subscription?revision=2014-07-08)notification-output-type
09:53:52.306 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for com.mrv.yangtools.codegen.impl.RpcContainerSchemaNode@c696e4e1
09:53:52.307 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - reference to #/definitions/sal.remote.createnotificationstream.Output
09:53:52.307 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - adding referenced model #/definitions/sal.remote.createnotificationstream.Output for node RPC Output output
09:53:52.308 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for RPC Output output
09:53:52.308 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - dropping create-notification-stream segment
09:53:52.308 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - dropping create-notification-stream segment
09:53:52.308 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - adding create-data-change-event-subscription to null
09:53:52.309 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for RPC input input
09:53:52.309 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - processing augmentations for input
09:53:52.319 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - found grouping id #/definitions/sal.remote.augment.NotificationOutputTypeGrouping for (urn:sal:restconf:event:subscription?revision=2014-07-08)notification-output-type-grouping
09:53:52.320 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - adding grouping #/definitions/sal.remote.augment.NotificationOutputTypeGrouping to composed model
09:53:52.320 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - adding model #/definitions/sal.remote.augment.NotificationOutputTypeGrouping for grouping
09:53:52.320 [main] WARN  c.m.y.c.i.OptimizingDataObjectBuilder - no child found with name (urn:sal:restconf:event:subscription?revision=2014-07-08)notification-output-type-grouping
09:53:52.320 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for GroupingEffectiveStatementImpl[qname=(urn:sal:restconf:event:subscription?revision=2014-07-08)notification-output-type-grouping]
09:53:52.321 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - reusing enum model for (urn:sal:restconf:event:subscription?revision=2014-07-08)notification-output-type
09:53:52.323 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generating enum model for (urn:sal:restconf:event:subscription?revision=2014-07-08)datastore-enumeration
09:53:52.323 [main] DEBUG c.m.y.c.i.AbstractDataObjectBuilder - generating enum model for (urn:sal:restconf:event:subscription?revision=2014-07-08)scope-enumeration
09:53:52.325 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for com.mrv.yangtools.codegen.impl.RpcContainerSchemaNode@7b9d8221
09:53:52.326 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - reference to #/definitions/sal.remote.createdatachangeeventsubscription.Output
09:53:52.326 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - adding referenced model #/definitions/sal.remote.createdatachangeeventsubscription.Output for node RPC Output output
09:53:52.327 [main] DEBUG c.m.y.c.i.OptimizingDataObjectBuilder - added object type for RPC Output output
09:53:52.328 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - dropping create-data-change-event-subscription segment
09:53:52.328 [main] DEBUG c.mrv.yangtools.codegen.PathSegment - dropping create-data-change-event-subscription segment
09:53:52.335 [main] DEBUG c.m.y.c.i.p.ReplaceDefinitionsProcessor - 0 replacement found for definitions
09:53:52.357 [main] DEBUG c.m.y.c.i.p.ReplaceDefinitionsProcessor - 0 replacement found for definitions
09:53:52.376 [main] DEBUG c.m.y.c.i.p.TypesUsageTreeBuilder - Adding new type sal.remote.createdatachangeeventsubscription.Output
09:53:52.380 [main] DEBUG c.m.y.c.i.p.TypesUsageTreeBuilder - Adding new type sal.remote.createnotificationstream.Output
09:53:52.386 [main] DEBUG c.m.y.c.i.p.TypesUsageTreeBuilder - Adding new type sal.remote.augment.InputAugmentation1
09:53:52.387 [main] DEBUG c.m.y.c.i.p.TypesUsageTreeBuilder - Adding new type sal.remote.augment.NotificationOutputType
09:53:52.387 [main] DEBUG c.m.y.c.i.p.TypesUsageTreeBuilder - Adding new type sal.remote.begintransaction.Output
09:53:52.388 [main] DEBUG c.m.y.c.i.p.RemoveUnusedDefinitions - Getting references for path /operations/sal-remote:begin-transaction/
09:53:52.390 [main] DEBUG c.m.y.c.i.p.RemoveUnusedDefinitions - Getting references for path /operations/sal-remote:create-data-change-event-subscription/
09:53:52.393 [main] DEBUG c.m.y.c.i.p.RemoveUnusedDefinitions - Getting references for path /operations/sal-remote:create-notification-stream/
09:53:52.401 [main] DEBUG c.m.y.c.i.p.RemoveUnusedDefinitions - Pruned 0 of 13 definitions.
bartoszm commented 2 years ago

image It seems that ODL parsing is done differently in both cases - I will try to check whether this is the reason for the difference you observe

bartoszm commented 2 years ago

It is likely problem is resolved in release https://github.com/bartoszm/yang2swagger/releases/tag/2.0. Please reopen in case I am wrong.