Skip to content

Commit 751c4a8

Browse files
Update Resources SDK 2024-07-01 (#26507)
* Update Resources SDK to 2024-07 * Add update to changelog * Update SDKGeneratedCodeVerify to 2024-07 * Update whitespace * Add UXMetadataIssues.csv to Az.Resources Exceptions --------- Co-authored-by: Tate Smalligan <[email protected]> Co-authored-by: Vincent Dai <[email protected]>
1 parent 1653719 commit 751c4a8

37 files changed

+999
-277
lines changed

src/Resources/ResourceManager/SdkClient/NewResourceManagerSdkClient.cs

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -472,7 +472,7 @@ private Deployment CreateBasicDeployment(PSDeploymentCmdletParameters parameters
472472
: null;
473473
// NOTE(jcotillo): Adding FromJson<> to parameters as well
474474
deployment.Properties.Parameters = !string.IsNullOrEmpty(parametersContent)
475-
? parametersContent.FromJson<JObject>()
475+
? parametersContent.FromJson<Dictionary<string, DeploymentParameter>>()
476476
: null;
477477
}
478478

@@ -488,17 +488,24 @@ private TemplateValidationInfo GetTemplateValidationResult(PSDeploymentCmdletPar
488488
try
489489
{
490490
var validationResult = this.ValidateDeployment(parameters, deployment);
491-
492-
return new TemplateValidationInfo(validationResult);
491+
switch (validationResult)
492+
{
493+
case DeploymentExtended deploymentExtended:
494+
return new TemplateValidationInfo(deploymentExtended.Properties?.Providers?.ToList() ?? new List<Provider>(), new List<ErrorDetail>());
495+
case DeploymentValidationError deploymentValidationError:
496+
return new TemplateValidationInfo(new List<Provider>(), new List<ErrorDetail>(deploymentValidationError.Error.AsArray()));
497+
default:
498+
throw new InvalidOperationException($"Received unexpected type {validationResult.GetType()}");
499+
}
493500
}
494501
catch (Exception ex)
495502
{
496503
var error = HandleError(ex).FirstOrDefault();
497-
return new TemplateValidationInfo(new DeploymentValidateResult(error));
504+
return new TemplateValidationInfo(new List<Provider>(), error.AsArray().ToList());
498505
}
499506
}
500507

501-
private DeploymentValidateResult ValidateDeployment(PSDeploymentCmdletParameters parameters, Deployment deployment)
508+
private object ValidateDeployment(PSDeploymentCmdletParameters parameters, Deployment deployment)
502509
{
503510
var scopedDeployment = new ScopedDeployment { Properties = deployment.Properties, Location = deployment.Location };
504511

@@ -527,26 +534,26 @@ private DeploymentValidateResult ValidateDeployment(PSDeploymentCmdletParameters
527534
}
528535
}
529536

530-
private List<ErrorResponse> HandleError(Exception ex)
537+
private List<ErrorDetail> HandleError(Exception ex)
531538
{
532539
if (ex == null)
533540
{
534541
return null;
535542
}
536543

537-
ErrorResponse error = null;
544+
ErrorDetail error = null;
538545
var innerException = HandleError(ex.InnerException);
539546
if (ex is CloudException)
540547
{
541548
var cloudEx = ex as CloudException;
542-
error = new ErrorResponse(cloudEx.Body?.Code, cloudEx.Body?.Message, cloudEx.Body?.Target, innerException);
549+
error = new ErrorDetail(cloudEx.Body?.Code, cloudEx.Body?.Message, cloudEx.Body?.Target, innerException);
543550
}
544551
else
545552
{
546-
error = new ErrorResponse(null, ex.Message, null, innerException);
553+
error = new ErrorDetail(null, ex.Message, null, innerException);
547554
}
548555

549-
return new List<ErrorResponse> { error };
556+
return new List<ErrorDetail> { error };
550557

551558
}
552559

@@ -1509,7 +1516,7 @@ private DeploymentExtended ExecuteDeploymentInternal(PSDeploymentCmdletParameter
15091516
return ProvisionDeploymentStatus(parameters, deployment);
15101517
}
15111518

1512-
private void DisplayInnerDetailErrorMessage(ErrorResponse error)
1519+
private void DisplayInnerDetailErrorMessage(ErrorDetail error)
15131520
{
15141521
WriteError(string.Format(ErrorFormat, error.Code, error.Message));
15151522
if (error.Details != null)

src/Resources/ResourceManager/SdkExtensions/NewResourcesExtensions.cs

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,25 @@ public static PSResourceManagerError ToPSResourceManagerError(this ErrorResponse
111111
return rmError;
112112
}
113113

114+
public static PSResourceManagerError ToPSResourceManagerError(this ErrorDetail error)
115+
{
116+
PSResourceManagerError rmError = new PSResourceManagerError
117+
{
118+
Code = error.Code,
119+
Message = error.Message,
120+
Target = string.IsNullOrEmpty(error.Target) ? null : error.Target
121+
};
122+
123+
if (error.Details != null)
124+
{
125+
List<PSResourceManagerError> innerRMError = new List<PSResourceManagerError>();
126+
error.Details.ForEach(detail => innerRMError.Add(detail.ToPSResourceManagerError()));
127+
rmError.Details = innerRMError;
128+
}
129+
130+
return rmError;
131+
}
132+
114133
public static string ToFormattedString(this ErrorResponse error, int level = 0)
115134
{
116135
if (error.Details == null)

src/Resources/ResourceManager/SdkModels/DeploymentStacks/PSDeploymentStack.cs

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -261,22 +261,12 @@ internal static Dictionary<string, PSDeploymentStackParameter> ConvertParameterD
261261
PSDeploymentStackParameter parameter;
262262
if (parameters[key].Reference != null)
263263
{
264-
parameter = new PSDeploymentStackParameter { KeyVaultReference = parameters[key].Reference };
265-
266-
if (parameters[key].Type != null)
267-
{
268-
parameter.Type = parameters[key].Type;
269-
}
270-
else
271-
{
272-
// If type does not exist, secret value is unknown and the type cannot be inferred:
273-
parameter.Type = "unknown";
274-
}
264+
parameter = new PSDeploymentStackParameter { KeyVaultReference = parameters[key].Reference, Type = ExtractDeploymentStackParameterValueType(parameters[key].Value) };
275265
}
276266
else
277267
{
278268
// If the type is not present, attempt to infer:
279-
parameter = new PSDeploymentStackParameter { Value = parameters[key].Value, Type = parameters[key].Type != null ? parameters[key].Type : ExtractDeploymentStackParameterValueType(parameters[key].Value) };
269+
parameter = new PSDeploymentStackParameter { Value = parameters[key].Value, Type = ExtractDeploymentStackParameterValueType(parameters[key].Value) };
280270
if (parameter.Value != null && "Array".Equals(parameter.Type))
281271
{
282272
parameter.Value = JsonConvert.DeserializeObject<object[]>(parameter.Value.ToString());

src/Resources/ResourceManager/SdkModels/Deployments/PSDeploymentWhatIfCmdletParameters.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using System.Linq;
88
using Commands.Common.Authentication.Abstractions;
99
using Management.Resources.Models;
10+
using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Extensions;
1011
using Microsoft.Azure.Commands.ResourceManager.Cmdlets.Json;
1112
using Microsoft.WindowsAzure.Commands.Common;
1213
using Newtonsoft.Json.Linq;
@@ -129,7 +130,7 @@ public DeploymentWhatIf ToDeploymentWhatIf()
129130
? PSJsonSerializer.Serialize(parametersDictionary)
130131
: null;
131132
properties.Parameters = !string.IsNullOrEmpty(parametersContent)
132-
? JObject.Parse(parametersContent)
133+
? parametersContent.FromJson<Dictionary<string, DeploymentParameter>>()
133134
: null;
134135
}
135136

src/Resources/ResourceManager/SdkModels/Deployments/TemplateValidationInfo.cs

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,24 +19,13 @@ namespace Microsoft.Azure.Commands.ResourceManager.Cmdlets.SdkModels
1919
{
2020
internal class TemplateValidationInfo
2121
{
22-
public TemplateValidationInfo(DeploymentValidateResult validationResult)
22+
public TemplateValidationInfo(List<Provider> requiredProviders, List<ErrorDetail> errors)
2323
{
24-
Errors = new List<ErrorResponse>();
25-
RequiredProviders = new List<Provider>();
26-
27-
if (validationResult.Error != null)
28-
{
29-
Errors.Add(validationResult.Error);
30-
}
31-
32-
if (validationResult.Properties != null &&
33-
validationResult.Properties.Providers != null)
34-
{
35-
RequiredProviders.AddRange(validationResult.Properties.Providers);
36-
}
24+
Errors = errors;
25+
RequiredProviders = requiredProviders;
3726
}
3827

39-
public List<ErrorResponse> Errors { get; set; }
28+
public List<ErrorDetail> Errors { get; set; }
4029

4130
public List<Provider> RequiredProviders { get; set; }
4231
}

0 commit comments

Comments
 (0)