Skip to content

autorest.csharp errors out on "final-state-via: operation-location" #5419

@dubiety

Description

@dubiety

Describe the issue or request
This is a similar issue of issue #2177, I got the same issue again although the stack trace is different using the latest autorest.

The documentation for the "x-ma-long-running-operation-options" autorest extension says that there are four values allowed for the "final-state-via" field: one of azure-async-operation or location or original-uri or operation-location.

But when I try to specify:

"x-ms-long-running-operation-options": {"final-state-via": "operation-location"}

autorest.csharp failed with:

System.ArgumentException: Unknown final-state-via value: operation-location
   at AutoRest.CSharp.Input.Operation.getLongRunningFinalStateVia() in D:\a\work\1\s\autorest.csharp\src\AutoRest.CSharp\Common\Input\CodeModelPartials.cs:line 39
   at AutoRest.CSharp.Common.Input.CodeModelConverter.CreateLongRunning(Operation operation) in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\Common\Input\CodeModelConverter.cs:line 353
   at AutoRest.CSharp.Common.Input.CodeModelConverter.CreateOperation(ServiceRequest serviceRequest, Operation operation, HttpRequest httpRequest) in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\Common\Input\CodeModelConverter.cs:line 139
   at AutoRest.CSharp.Common.Input.CodeModelConverter.<>c_DisplayClass16_1.<CreateOperations>b__0() in D:\a\work\1\s\autorest.csharp\src\AutoRest.CSharp\Common\Input\CodeModelConverter.cs:line 99
   at AutoRest.CSharp.Common.Utilities.DictionaryExtensions.<>c_DisplayClass0_0`2.<CreateAndCacheResult>b__0() in D:\a\work\1\s\autorest.csharp\src\AutoRest.CSharp\Common\Utilities\DictionaryExtensions.cs:line 20
   at AutoRest.CSharp.Common.Input.CodeModelConverter.CreateOperations(ICollection1 operations, Dictionary2 serviceRequestToInputOperation, Dictionary`2 inputOperationToOperation) in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\Common\Input\CodeModelConverter.cs:line 110
   at AutoRest.CSharp.Common.Input.CodeModelConverter.CreateClient(OperationGroup operationGroup, Dictionary2 serviceRequestToInputOperation, Dictionary2 inputOperationToOperation) in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\Common\Input\CodeModelConverter.cs:line 73
   at AutoRest.CSharp.Common.Input.CodeModelConverter.<>c_DisplayClass14_0.<CreateClients>b__0(OperationGroup operationGroup) in D:\a\work\1\s\autorest.csharp\src\AutoRest.CSharp\Common\Input\CodeModelConverter.cs:line 70
   at System.Linq.Enumerable.ListSelectIterator2.Fill(ReadOnlySpan1 source, Span1 destination, Func2 func)
   at System.Linq.Enumerable.ListSelectIterator`2.ToList()
   at AutoRest.CSharp.Common.Input.CodeModelConverter.CreateClients(IEnumerable1 operationGroups, Dictionary2 serviceRequestToInputOperation, Dictionary`2 inputOperationToOperation) in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\Common\Input\CodeModelConverter.cs:line 70
   at AutoRest.CSharp.Common.Input.CodeModelConverter.CreateNamespace(Dictionary2 serviceRequestToInputOperation, Dictionary2 inputOperationToOperation) in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\Common\Input\CodeModelConverter.cs:line 58
   at AutoRest.CSharp.Common.Input.CodeModelConverter.CreateNamespace() in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\Common\Input\CodeModelConverter.cs:line 44
   at AutoRest.CSharp.AutoRest.Plugins.CSharpGen.ExecuteAsync(CodeModel codeModel) in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\Common\AutoRest\Plugins\CSharpGen.cs:line 44
   at AutoRest.CSharp.AutoRest.Plugins.CSharpGen.Execute(IPluginCommunication autoRest) in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\Common\AutoRest\Plugins\CSharpGen.cs:line 143
   at AutoRest.CSharp.AutoRest.Plugins.PluginProcessor.Start(IPluginCommunication autoRest) in D:\a\_work\1\s\autorest.csharp\src\AutoRest.CSharp\Common\AutoRest\Plugins\PluginProcessor.cs:line 39

Describe your ideas for solutions

autorest.csharp should recognize this value and handle it appropriately.

To repro the issue

  1. git clone https://github.com/dubiety/azure-sdk-for-net.git
  2. Checkout branch users/charlie/upgrade-routing
  3. cd sdk\maps\Azure.Maps.Routing
  4. run dotnet build /t:GenerateCode

Metadata

Metadata

Assignees

No one assigned

    Labels

    v3Version 3 of AutoRest C# generator.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions