Search code examples
powershellswaggerautorest

Why Plugin llcsharp-v2 reported failure


I have project in BSVN/IpTables.Api#22

and I want to generate Cli with autorest for my BSN.IpTables.Api

I run below commands

autorest configuration.yaml

and my configuration is like below

branch: master

module-version: 1.2.0
title: BSN.IpTables.Cli
subject-prefix: $(service-name)

inlining-threshold: 100

tag: v1
input-file: ../BSN.IpTables.Api/swagger.json
powershell: true
namespace: BSN.IpTables.V1
verbose: true
resourcegroup-append: true
identity-correction-for-post: true
nested-object-to-string: true

and I see below errors

   BSN.IpTables.Cli   Feature/22-add-cli≡  .\Generate-PowerShellClient.ps1                                     

changed 1 package in 1s
AutoRest code generation utility [cli version: 3.6.3; node: v18.15.0]
(C) 2018 Microsoft Corporation.
https://aka.ms/autorest
info    |    Loading AutoRest core      'C:\Users\sooro\.autorest\@autorestcore@3.9.7\nodemodules\@autorest\core\dist' (3.9.7)
verbose | [0.41 s] No configuration found at 'file:///D:/Source/Repos/Resa/IpTables.Api/Source/BSN.IpTables.Cli/'.
verbose | [0.42 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/default-configuration.md'
verbose | [0.43 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/inspect.md'
verbose | [0.43 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/directives.md'
verbose | [0.44 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/pipeline.md'
verbose | [0.44 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/loader-openapi.md'
verbose | [0.45 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/miscellaneous.md'
verbose | [0.45 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/plugin-powershell.md'
verbose | [0.46 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/plugin-azureresourceschema.md'
verbose | [0.47 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/plugin-csharp.md'
verbose | [0.47 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/plugin-go.md'
verbose | [0.48 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/plugin-java.md'
verbose | [0.49 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/plugin-nodejs.md'
verbose | [0.50 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/plugin-php.md'
verbose | [0.50 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/plugin-python.md'
verbose | [0.51 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/plugin-ruby.md'
verbose | [0.51 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/plugin-typescript.md'
verbose | [0.52 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/plugin-validators.md'
verbose | [0.53 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/plugin-az.md'
verbose | [0.53 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/plugin-terraform.md'
verbose | [0.54 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/plugin-azure-functions.md'
verbose | [0.55 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/plugin-openapi-to-cadl.md'
verbose | [0.56 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/graphs.md'
verbose | [0.57 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestcore@3.9.7/nodemodules/@autorest/core/dist/resources/help-configuration.md'
info    |
The default version of @autorest/powershell has been bumped from 2.1+ to 3.0+.
 > If you still want to use 2.1+ version, please specify it with --use:@autorest/powershell@2.1.{x}, e.g 2.1.401.

info    |    Loading AutoRest extension '@autorest/powershell' (~3.0.0->3.0.505)
verbose | [0.60 s]    Including extension configuration file 'file:///C:/Users/sooro/.autorest/@autorestpowershell@3.0.505/nodemodules/@autorest/powershell/readme.md'
verbose | [0.60 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestpowershell@3.0.505/nodemodules/@autorest/powershell/readme.md'
verbose | [0.61 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestpowershell@3.0.505/nodemodules/@autorest/powershell/autorest-configuration.md'
info    |    Loading AutoRest extension '@autorest/modelerfour' (4.15.414->4.15.414)
verbose | [0.66 s]    Including extension configuration file 'file:///C:/Users/sooro/.autorest/@autorestmodelerfour@4.15.414/nodemodules/@autorest/modelerfour/readme.md'
verbose | [0.66 s]    Including configuration file 'file:///C:/Users/sooro/.autorest/@autorestmodelerfour@4.15.414/nodemodules/@autorest/modelerfour/readme.md'
verbose | [1.16 s] Reading OpenAPI 3.0 file file:///D:/Source/Repos/Resa/IpTables.Api/Source/BSN.IpTables.Api/swagger.json
warning | PreCheck/AllOfWhenYouMeantRef | Schema 'IpTablesChainSetViewModelResponse-statusCode' is using an 'allOf' instead of a $ref. This creates a wasteful anonymous type when generating code.
warning | PreCheck/AllOfWhenYouMeantRef | Schema 'IpTablesChainSetViewModelResponse-data' is using an 'allOf' instead of a $ref. This creates a wasteful anonymous type when generating code.
warning | PreCheck/AllOfWhenYouMeantRef | Schema 'IpTablesChainViewModel-ipVersion' is using an 'allOf' instead of a $ref. This creates a wasteful anonymous type when generating code.
warning | PreCheck/AllOfWhenYouMeantRef | Schema 'Response-statusCode' is using an 'allOf' instead of a $ref. This creates a wasteful anonymous type when generating code.
warning | PreCheck/AllOfWhenYouMeantRef | Schema 'paths·1h07bfn·api-v1-home-insert·put·parameters·0·schema' is using an 'allOf' instead of a $ref. This creates a wasteful anonymous type when generating code.
warning | PreCheck/AllOfWhenYouMeantRef | Schema 'paths·bha41k·api-v1-rules-insert·put·parameters·0·schema' is using an 'allOf' instead of a $ref. This creates a wasteful anonymous type when generating code.
warning | PreCheck/AllOfWhenYouMeantRef | Schema 'paths·1yxlpcs·api-v1-insert·put·parameters·0·schema' is using an 'allOf' instead of a $ref. This creates a wasteful anonymous type when generating code.
warning | PreCheck/SchemaMissingType | The schema 'IpTablesChainSetViewModelResponse-statusCode' with an undefined type and 'allOf'/'anyOf'/'oneOf' is a bit ambigious. This has been auto-corrected to 'type:object'
warning | PreCheck/SchemaMissingType | The schema 'IpTablesChainSetViewModelResponse-data' with an undefined type and 'allOf'/'anyOf'/'oneOf' is a bit ambigious. This has been auto-corrected to 'type:object'
warning | PreCheck/SchemaMissingType | The schema 'IpTablesChainViewModel-ipVersion' with an undefined type and 'allOf'/'anyOf'/'oneOf' is a bit ambigious. This has been auto-corrected to 'type:object'
warning | PreCheck/SchemaMissingType | The schema 'Response-statusCode' with an undefined type and 'allOf'/'anyOf'/'oneOf' is a bit ambigious. This has been auto-corrected to 'type:object'
warning | PreCheck/SchemaMissingType | The schema 'paths·1h07bfn·api-v1-home-insert·put·parameters·0·schema' with an undefined type and 'allOf'/'anyOf'/'oneOf' is a bit ambigious. This has been auto-corrected to 'type:object'
warning | PreCheck/SchemaMissingType | The schema 'paths·bha41k·api-v1-rules-insert·put·parameters·0·schema' with an undefined type and 'allOf'/'anyOf'/'oneOf' is a bit ambigious. This has been auto-corrected to 'type:object'
warning | PreCheck/SchemaMissingType | The schema 'paths·1yxlpcs·api-v1-insert·put·parameters·0·schema' with an undefined type and 'allOf'/'anyOf'/'oneOf' is a bit ambigious. This has been auto-corrected to 'type:object'
warning | PreCheck/CheckDuplicateSchemas | Checking for duplicate schemas, this could take a (long) while.  Run with --verbose for more detail.
verbose | [1.37 s]   ModelerFour/api-version-mode:client
verbose | [1.37 s]   ModelerFour/api-version-parameter:constant
verbose | [1.37 s]   ModelerFour/use-model-namespace:false
warning | Interpretations | Generating 'operationId' for 'get' operation on path '/api/v1/Home/List'
warning | Interpretations | Generating 'operationId' for 'get' operation on path '/api/v1/rules/List'
warning | Interpretations | Generating 'operationId' for 'get' operation on path '/api/v1/List'
warning | Interpretations | Generating 'operationId' for 'put' operation on path '/api/v1/Home/Insert'
warning | Interpretations | Generating 'operationId' for 'put' operation on path '/api/v1/rules/Insert'
warning | Interpretations | Generating 'operationId' for 'put' operation on path '/api/v1/Insert'
warning | Interpretations | Generating 'operationId' for 'post' operation on path '/api/v1/Home/Append'
warning | Interpretations | Generating 'operationId' for 'post' operation on path '/api/v1/rules/Append'
warning | Interpretations | Generating 'operationId' for 'post' operation on path '/api/v1/Append'
warning | Interpretations | Generating 'operationId' for 'delete' operation on path '/api/v1/Home/Delete'
warning | Interpretations | Generating 'operationId' for 'delete' operation on path '/api/v1/rules/Delete'
warning | Interpretations | Generating 'operationId' for 'delete' operation on path '/api/v1/Delete'
warning | Interpretations | Generating 'operationId' for 'delete' operation on path '/api/v1/Home'
warning | Interpretations | Generating 'operationId' for 'delete' operation on path '/api/v1/rules'
warning | Interpretations | Generating 'operationId' for 'delete' operation on path '/api/v1'
C:\Users\sooro\.autorest\@autorest_powershell@3.0.505\node_modules\@autorest\powershell\dist\plugins\llcsharp-v2.js - TypeError: Cannot read properties of undefined (reading 'fullName')
    at ModelClass.handleAllOf (C:\Users\sooro\.autorest\@autorest_powershell@3.0.505\node_modules\@autorest\powershell\llcsharp\model\model-class.ts:413:37)
    at new ModelClass (C:\Users\sooro\.autorest\@autorest_powershell@3.0.505\node_modules\@autorest\powershell\llcsharp\model\model-class.ts:142:15)
    at ModelsNamespace.NewResolveTypeDeclaration (C:\Users\sooro\.autorest\@autorest_powershell@3.0.505\node_modules\@autorest\powershell\llcsharp\model\namespace.ts:104:67)
    at new ModelsNamespace (C:\Users\sooro\.autorest\@autorest_powershell@3.0.505\node_modules\@autorest\powershell\llcsharp\model\namespace.ts:53:14)
    at Project.init (C:\Users\sooro\.autorest\@autorest_powershell@3.0.505\node_modules\@autorest\powershell\llcsharp\project.ts:85:28)
    at llcsharpV2 (C:\Users\sooro\.autorest\@autorest_powershell@3.0.505\node_modules\@autorest\powershell\plugins\llcsharp-v2.ts:18:21)
    at C:\Users\sooro\.autorest\@autorest_powershell@3.0.505\node_modules\@azure-tools\autorest-extension-base\extension-base.ts:68:9/Cannot read properties of undefined (reading 'fullName')
fatal   | TypeError: Cannot read properties of undefined (reading 'fullName')
fatal   | Process() cancelled due to failure
error   |   Error: Plugin llcsharp-v2 reported failure.
error   | Autorest completed with an error. If you think the error message is unclear, or is a bug, please declare an issues at https://github.com/Azure/autorest/issues with the error message you are seeing.

But I expect create PowerShell module for my project, My question is what is my problem? and why autorest can not generate my PowerShell module?


Solution

  • Your problem because of using allOf in swagger description

    as you can see in Combination of allOf and discriminator gives false warnings you must remove allOf in your swagger description.

    For doing this, you have to remove or comment options.UseAllOfToExtendReferenceSchemas();