Amartus / yang2swagger

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

Issue trying to get swagger conversion (IETF L3NM) #63

Open cristianroserocarvajal opened 1 year ago

cristianroserocarvajal commented 1 year ago

After building the docker image following the steps included in the README, I am not able to get the swagger conversion.

I have checked all the imported modules and the namespaces, also I have generated the tree and check ietf format using Pyang. Although, I got the following:

`kod@kod-virtual-machine:~/Documents$ docker run -it -v $(pwd):/test yang2swagger VM settings: Min. Heap Size: 256.00M Max. Heap Size: 256.00M Using VM: OpenJDK 64-Bit Server VM

2023-03-02 17:03:13,257 [main] INFO c.mrv.yangtools.common.ContextHelper - adding 2023-03-02 17:03:14,544 [main] INFO c.mrv.yangtools.common.SchemaBuilder - Inspecting all defined yangs [test/yang2swagger/examples/build-standalone/src/main/resources/TapiConnectivity.yang, test/yang2swagger/examples/build-standalone/src/main/resources/Tapi.yang, test/yang2swagger/examples/build-standalone/src/main/resources/ietf-yang-types.yang, test/yang2swagger/examples/build-standalone/src/main/resources/TapiTopology.yang, test/yang2swagger/examples/build-standalone/src/main/resources/ietf-inet-types.yang, test/yang2swagger/cli/src/test/resources/bug_57/input.yang, test/yang2swagger/swagger-generator/src/test/resources/example/base.yang, test/yang2swagger/swagger-generator/src/test/resources/example/extension-of-base.yang, test/yang2swagger/swagger-generator/src/test/resources/example/extension-of-extension.yang, test/yang2swagger/swagger-generator/src/test/resources/enum-module.yang, test/yang2swagger/swagger-generator/src/test/resources/bug_57/input.yang, test/yang2swagger/swagger-generator/src/test/resources/bug_17/base.yang, test/yang2swagger/swagger-generator/src/test/resources/bug_17/ext1.yang, test/yang2swagger/swagger-generator/src/test/resources/aug-group-ex/base.yang, test/yang2swagger/swagger-generator/src/test/resources/aug-group-ex/base-aug.yang, test/yang2swagger/swagger-generator/src/test/resources/choice.yang, test/yang2swagger/swagger-generator/src/test/resources/duplicated-names.yang, test/yang2swagger/swagger-generator/src/test/resources/simplest.yang, test/yang2swagger/swagger-generator/src/test/resources/inheritence-with-augmentation/base.yang, test/yang2swagger/swagger-generator/src/test/resources/inheritence-with-augmentation/base-aug.yang, test/yang2swagger/swagger-generator/src/test/resources/rpc-basic.yang, test/yang2swagger/swagger-generator/src/test/resources/augmenting-groupings.yang, test/yang2swagger/swagger-generator/src/test/resources/simpleAugmentation.yang, test/yang2swagger/swagger-generator/src/test/resources/with-groupings.yang, test/yang2swagger/swagger-generator/src/test/resources/rpc-augmentations.yang, test/yang2swagger/swagger-generator/src/test/resources/read-only.yang, test/yang2swagger/swagger-generator/src/test/resources/bug_15/base.yang, test/yang2swagger/swagger-generator/src/test/resources/bug_15/ext1-ext.yang, test/yang2swagger/swagger-generator/src/test/resources/bug_15/ext1.yang, test/test/ietf-inet-types@2020-07-06.yang, test/test/ietf-packet-fields@2019-03-04.yang, test/test/ietf-routing-types@2017-12-04.yang, test/test/ietf-l3vpn-ntw@2022-02-14.yang, test/test/ietf-interfaces.yang, test/test/ietf-netconf-acm.yang, test/test/ietf-vpn-common@2022-02-11.yang, test/test/ietf-ethertypes@2019-03-04.yang, test/test/ietf-key-chain@2017-06-15.yang, test/test/ietf-yang-types@2020-07-06.yang] 2023-03-02 17:03:15,078 [main] ERROR com.mrv.yangtools.codegen.main.Main - Error while generating Swagger org.opendaylight.yangtools.yang.parser.spi.meta.SomeModifiersUnresolvedException: Some of SOURCE_LINKAGE modifiers for statements were not resolved. at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.propagateException(BuildGlobalContext.java:259) at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.loadPhaseStatementsFor(BuildGlobalContext.java:325) at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.loadPhaseStatements(BuildGlobalContext.java:315) at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.executePhases(BuildGlobalContext.java:221) at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.buildEffective(BuildGlobalContext.java:233) at org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor$BuildAction.buildEffective(CrossSourceStatementReactor.java:232) at com.mrv.yangtools.common.SchemaBuilder.build(SchemaBuilder.java:84) at com.mrv.yangtools.common.ContextHelper.getCtx(ContextHelper.java:80) at com.mrv.yangtools.common.ContextHelper.getFromDir(ContextHelper.java:48) at com.mrv.yangtools.codegen.main.Main.buildEffectiveModelContext(Main.java:183) at com.mrv.yangtools.codegen.main.Main.generate(Main.java:118) at com.mrv.yangtools.codegen.main.Main.main(Main.java:99) Caused by: org.opendaylight.yangtools.yang.parser.spi.source.SourceException: Module namespace collision: urn:objects. At test/yang2swagger/cli/src/test/resources/bug_57/input.yang:1:0 [at test/yang2swagger/swagger-generator/src/test/resources/bug_57/input.yang:1:0] at org.opendaylight.yangtools.yang.parser.rfc7950.stmt.module.AbstractModuleStatementSupport.onLinkageDeclared(AbstractModuleStatementSupport.java:112) at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementDefinitionContext.onDeclarationFinished(StatementDefinitionContext.java:78) at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextBase.endDeclared(StatementContextBase.java:694) at org.opendaylight.yangtools.yang.parser.stmt.reactor.StatementContextWriter.endStatement(StatementContextWriter.java:76) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.doProcessStatement(StatementContextVisitor.java:125) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processNewStatement(StatementContextVisitor.java:111) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.processStatement(StatementContextVisitor.java:96) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.StatementContextVisitor.visit(StatementContextVisitor.java:46) at org.opendaylight.yangtools.yang.parser.rfc7950.repo.YangStatementStreamSource.writeLinkage(YangStatementStreamSource.java:104) at org.opendaylight.yangtools.yang.parser.stmt.reactor.SourceSpecificContext.loadStatements(SourceSpecificContext.java:351) at org.opendaylight.yangtools.yang.parser.stmt.reactor.BuildGlobalContext.loadPhaseStatementsFor(BuildGlobalContext.java:323) `

To remark, I have a test folder with all the yang modules, and I am running yang2swagger from its parent folder.

I can not find where is the Module namespace collision.

Any suggestions?

Thanks in advance,

bartoszm commented 1 year ago

Hi, could you try to rerun this experiment with the latest code from main branch? I was trying to reproduce your issue using ONF models as well as sources embedded in examples module but it works - so unable to replicate it. What I see in the log is that the source files from examples directory in the project got included into your modules list - this might be the cause of the problem if you included them unintentionally.