From 5da5b3187a11729ab930498e009133951f63728a Mon Sep 17 00:00:00 2001 From: f-alizada <104755925+f-alizada@users.noreply.github.com> Date: Wed, 31 Aug 2022 16:21:41 +0200 Subject: [PATCH] Introduce OriginalName for templateResources with common data processor (#807) * Introduce OriginalName for templateResources with common data processor * Remove similiar data processors and combine with common Co-authored-by: Farhad Alizada --- .../ApiManagementServiceClient.cs | 10 +++--- .../API/Clients/ApiSchemas/ApiSchemaClient.cs | 10 ++++-- .../ApiVersionSet/ApiVersionSetClient.cs | 10 ++++-- .../AuthorizationServerClient.cs | 10 ++++-- .../API/Clients/Backend/BackendClient.cs | 11 +++++-- .../Clients/Diagnostics/DiagnosticClient.cs | 14 +++++++-- .../API/Clients/Gateway/GatewayClient.cs | 12 +++++-- .../IdentityProviderClient.cs | 8 ++--- .../API/Clients/Loggers/LoggerClient.cs | 11 +++++-- .../Clients/NamedValues/NamedValuesClient.cs | 9 ++++-- .../OpenIdConnectProviderClient.cs | 9 +++--- .../PolicyFragments/PolicyFragmentsClient.cs | 8 ++--- .../API/Clients/Schemas/SchemasClient.cs | 8 ++--- .../Common/API/Clients/Tags/TagClient.cs | 23 +++++++++----- .../Abstractions/TemplateResource.cs | 3 ++ .../ApiManagementServiceResource.cs | 3 -- .../ApiOperationTemplateResource.cs | 4 --- .../Templates/Apis/ApiTemplateResource.cs | 3 -- .../Templates/Groups/GroupTemplateResource.cs | 3 -- .../IdentityProviderResource.cs | 3 -- .../NamedValues/NamedValueTemplateResource.cs | 2 -- .../OpenIdConnectProviderResource.cs | 4 --- .../PolicyFragmentsResource.cs | 4 --- .../ProductApis/ProductApiTemplateResource.cs | 3 -- .../Products/ProductsTemplateResource.cs | 3 -- .../Schemas/SchemaTemplateResource.cs | 4 --- .../EntityExtractors/ApiOperationExtractor.cs | 2 -- .../EntityExtractors/ApiSchemaExtractor.cs | 4 +-- .../AuthorizationServerExtractor.cs | 6 ++-- .../EntityExtractors/BackendExtractor.cs | 8 ++--- .../EntityExtractors/DiagnosticExtractor.cs | 15 ++++----- .../EntityExtractors/GatewayExtractor.cs | 6 ++-- .../EntityExtractors/LoggerExtractor.cs | 6 ++-- .../EntityExtractors/NamedValuesExtractor.cs | 17 +++++----- .../EntityExtractors/TagExtractor.cs | 18 ++++------- .../IApiManagementServiceProcessor.cs | 18 ----------- .../IIdentityProviderProcessor.cs | 16 ---------- .../IOpenIdConnectProviderProcessor.cs | 16 ---------- .../IPolicyFragmentDataProcessor.cs | 16 ---------- ...r.cs => ITemplateResourceDataProcessor.cs} | 8 ++--- .../ApiManagementServiceProcessor.cs | 28 ----------------- .../IdentityProviderProcessor.cs | 31 ------------------- .../OpenIdConnectProviderProcessor.cs | 31 ------------------- .../DataProcessors/SchemaDataProcessor.cs | 29 ----------------- ...or.cs => TemplateResourceDataProcessor.cs} | 23 +++++++++----- src/ArmTemplates/ServiceExtensions.cs | 6 +--- .../MockApiManagementServiceClient.cs | 7 ++--- .../Moqs/ApiClients/MockApiSchemaClient.cs | 3 +- .../Moqs/ApiClients/MockBackendClient.cs | 4 ++- .../Moqs/ApiClients/MockDiagnosticClient.cs | 6 ++++ .../Moqs/ApiClients/MockGatewayClient.cs | 2 ++ .../Moqs/ApiClients/MockLoggerClient.cs | 1 + .../Moqs/ApiClients/MockNamedValuesClient.cs | 1 + .../MockOpenIdConnectProviderClient.cs | 6 ++-- .../ApiClients/MockPolicyFragmentClient.cs | 5 +-- .../Moqs/ApiClients/MockSchemaClient.cs | 3 +- .../Moqs/ApiClients/MockTagClient.cs | 10 ++++++ 57 files changed, 195 insertions(+), 349 deletions(-) delete mode 100644 src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/IApiManagementServiceProcessor.cs delete mode 100644 src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/IIdentityProviderProcessor.cs delete mode 100644 src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/IOpenIdConnectProviderProcessor.cs delete mode 100644 src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/IPolicyFragmentDataProcessor.cs rename src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/{ISchemaDataProcessor.cs => ITemplateResourceDataProcessor.cs} (66%) delete mode 100644 src/ArmTemplates/Extractor/Utilities/DataProcessors/ApiManagementServiceProcessor.cs delete mode 100644 src/ArmTemplates/Extractor/Utilities/DataProcessors/IdentityProviderProcessor.cs delete mode 100644 src/ArmTemplates/Extractor/Utilities/DataProcessors/OpenIdConnectProviderProcessor.cs delete mode 100644 src/ArmTemplates/Extractor/Utilities/DataProcessors/SchemaDataProcessor.cs rename src/ArmTemplates/Extractor/Utilities/DataProcessors/{PolicyFragmentDataProcessor.cs => TemplateResourceDataProcessor.cs} (55%) diff --git a/src/ArmTemplates/Common/API/Clients/ApiManagementService/ApiManagementServiceClient.cs b/src/ArmTemplates/Common/API/Clients/ApiManagementService/ApiManagementServiceClient.cs index 6b2415ba..ee1d6143 100644 --- a/src/ArmTemplates/Common/API/Clients/ApiManagementService/ApiManagementServiceClient.cs +++ b/src/ArmTemplates/Common/API/Clients/ApiManagementService/ApiManagementServiceClient.cs @@ -17,13 +17,13 @@ public class ApiManagementServiceClient: ApiClientBase, IApiManagementServiceCli { const string GetApiManagementServiceByName = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}?api-version={4}"; - readonly IApiManagementServiceProcessor apiManagementServiceProcessor; + readonly ITemplateResourceDataProcessor templateResourceDataProcessor; public ApiManagementServiceClient( - IHttpClientFactory httpClientFactory, - IApiManagementServiceProcessor apiManagementServiceProcessor): base(httpClientFactory) + IHttpClientFactory httpClientFactory, + ITemplateResourceDataProcessor templateResourceDataProcessor) : base(httpClientFactory) { - this.apiManagementServiceProcessor = apiManagementServiceProcessor; + this.templateResourceDataProcessor = templateResourceDataProcessor; } public async Task GetApiManagementServiceAsync(ExtractorParameters extractorParameters) @@ -34,7 +34,7 @@ public async Task GetApiManagementServiceAsync(Ext this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, GlobalConstants.ApiVersion); var apiManagementServiceResource = await this.GetResponseAsync(azToken, requestUrl); - this.apiManagementServiceProcessor.ProcessSingleInstanceData(apiManagementServiceResource, extractorParameters); + this.templateResourceDataProcessor.ProcessSingleData(apiManagementServiceResource); return apiManagementServiceResource; } diff --git a/src/ArmTemplates/Common/API/Clients/ApiSchemas/ApiSchemaClient.cs b/src/ArmTemplates/Common/API/Clients/ApiSchemas/ApiSchemaClient.cs index 390a5134..967abf33 100644 --- a/src/ArmTemplates/Common/API/Clients/ApiSchemas/ApiSchemaClient.cs +++ b/src/ArmTemplates/Common/API/Clients/ApiSchemas/ApiSchemaClient.cs @@ -10,15 +10,19 @@ using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Constants; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.ApiSchemas; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.ApiSchemas { public class ApiSchemaClient : ApiClientBase, IApiSchemaClient { const string GetAllApiSchemasRequest = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/apis/{4}/schemas?api-version={5}"; + + readonly ITemplateResourceDataProcessor templateResourceDataProcessor; - public ApiSchemaClient(IHttpClientFactory httpClientFactory) : base(httpClientFactory) + public ApiSchemaClient(IHttpClientFactory httpClientFactory, ITemplateResourceDataProcessor templateResourceDataProcessor) : base(httpClientFactory) { + this.templateResourceDataProcessor = templateResourceDataProcessor; } public async Task> GetApiSchemasAsync(string apiName, ExtractorParameters extractorParameters) @@ -28,7 +32,9 @@ public async Task> GetApiSchemasAsync(string api var requestUrl = string.Format(GetAllApiSchemasRequest, this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, apiName, GlobalConstants.ApiVersion); - return await this.GetPagedResponseAsync(azToken, requestUrl); + var apiSchemaTemplateResources = await this.GetPagedResponseAsync(azToken, requestUrl); + this.templateResourceDataProcessor.ProcessData(apiSchemaTemplateResources); + return apiSchemaTemplateResources; } } } diff --git a/src/ArmTemplates/Common/API/Clients/ApiVersionSet/ApiVersionSetClient.cs b/src/ArmTemplates/Common/API/Clients/ApiVersionSet/ApiVersionSetClient.cs index 7ff3bbe4..65065e50 100644 --- a/src/ArmTemplates/Common/API/Clients/ApiVersionSet/ApiVersionSetClient.cs +++ b/src/ArmTemplates/Common/API/Clients/ApiVersionSet/ApiVersionSetClient.cs @@ -10,6 +10,7 @@ using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Constants; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.ApiVersionSet; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.ApiVersionSet { @@ -17,8 +18,11 @@ public class ApiVersionSetClient : ApiClientBase, IApiVersionSetClient { const string GetAllVersionSetsRequest = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/apiVersionSets?api-version={4}"; - public ApiVersionSetClient(IHttpClientFactory httpClientFactory) : base(httpClientFactory) + readonly ITemplateResourceDataProcessor templateResourceDataProcessor; + + public ApiVersionSetClient(IHttpClientFactory httpClientFactory, ITemplateResourceDataProcessor templateResourceDataProcessor) : base(httpClientFactory) { + this.templateResourceDataProcessor = templateResourceDataProcessor; } public async Task> GetAllAsync(ExtractorParameters extractorParameters) @@ -28,7 +32,9 @@ public async Task> GetAllAsync(ExtractorPara string requestUrl = string.Format(GetAllVersionSetsRequest, this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, GlobalConstants.ApiVersion); - return await this.GetPagedResponseAsync(azToken, requestUrl); + var apiVersionSetTemplateresources = await this.GetPagedResponseAsync(azToken, requestUrl); + this.templateResourceDataProcessor.ProcessData(apiVersionSetTemplateresources); + return apiVersionSetTemplateresources; } } } diff --git a/src/ArmTemplates/Common/API/Clients/AuthorizationServer/AuthorizationServerClient.cs b/src/ArmTemplates/Common/API/Clients/AuthorizationServer/AuthorizationServerClient.cs index 404a02ed..4733d301 100644 --- a/src/ArmTemplates/Common/API/Clients/AuthorizationServer/AuthorizationServerClient.cs +++ b/src/ArmTemplates/Common/API/Clients/AuthorizationServer/AuthorizationServerClient.cs @@ -10,6 +10,7 @@ using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Constants; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.AuthorizationServer; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.AuthorizationServer { @@ -17,8 +18,11 @@ public class AuthorizationServerClient : ApiClientBase, IAuthorizationServerClie { const string GetAllAuthorizationServersRequest = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/authorizationServers?api-version={4}"; - public AuthorizationServerClient(IHttpClientFactory httpClientFactory) : base(httpClientFactory) + readonly ITemplateResourceDataProcessor templateResourceDataProcessor; + + public AuthorizationServerClient(IHttpClientFactory httpClientFactory, ITemplateResourceDataProcessor templateResourceDataProcessor) : base(httpClientFactory) { + this.templateResourceDataProcessor = templateResourceDataProcessor; } public async Task> GetAllAsync(ExtractorParameters extractorParameters) @@ -28,7 +32,9 @@ public async Task> GetAllAsync(Extract var requestUrl = string.Format(GetAllAuthorizationServersRequest, this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, GlobalConstants.ApiVersion); - return await this.GetPagedResponseAsync(azToken, requestUrl); + var authServerTemplateResources = await this.GetPagedResponseAsync(azToken, requestUrl); + this.templateResourceDataProcessor.ProcessData(authServerTemplateResources); + return authServerTemplateResources; } } } diff --git a/src/ArmTemplates/Common/API/Clients/Backend/BackendClient.cs b/src/ArmTemplates/Common/API/Clients/Backend/BackendClient.cs index c772c50f..6300b389 100644 --- a/src/ArmTemplates/Common/API/Clients/Backend/BackendClient.cs +++ b/src/ArmTemplates/Common/API/Clients/Backend/BackendClient.cs @@ -10,6 +10,7 @@ using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Constants; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Backend; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.Backend { @@ -17,8 +18,11 @@ public class BackendClient : ApiClientBase, IBackendClient { const string GetAllBackendsRequest = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/backends?api-version={4}"; - public BackendClient(IHttpClientFactory httpClientFactory) : base(httpClientFactory) + readonly ITemplateResourceDataProcessor templateResourceDataProcessor; + + public BackendClient(IHttpClientFactory httpClientFactory, ITemplateResourceDataProcessor templateResourceDataProcessor) : base(httpClientFactory) { + this.templateResourceDataProcessor = templateResourceDataProcessor; } public async Task> GetAllAsync(ExtractorParameters extractorParameters) @@ -28,7 +32,10 @@ public async Task> GetAllAsync(ExtractorParameters var requestUrl = string.Format(GetAllBackendsRequest, this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, GlobalConstants.ApiVersion); - return await this.GetPagedResponseAsync(azToken, requestUrl); + var backendTemplateResources = await this.GetPagedResponseAsync(azToken, requestUrl); + this.templateResourceDataProcessor.ProcessData(backendTemplateResources); + + return backendTemplateResources; } } } diff --git a/src/ArmTemplates/Common/API/Clients/Diagnostics/DiagnosticClient.cs b/src/ArmTemplates/Common/API/Clients/Diagnostics/DiagnosticClient.cs index 0b7a789e..2d4bd948 100644 --- a/src/ArmTemplates/Common/API/Clients/Diagnostics/DiagnosticClient.cs +++ b/src/ArmTemplates/Common/API/Clients/Diagnostics/DiagnosticClient.cs @@ -10,6 +10,7 @@ using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Constants; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.TemplateModels; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.Diagnostics { @@ -18,8 +19,11 @@ public class DiagnosticClient : ApiClientBase, IDiagnosticClient const string GetAllDiagnosticsRequest = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/diagnostics?api-version={4}"; const string GetDiagnosticsLinkedToApiRequest = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/apis/{4}/diagnostics?api-version={5}"; - public DiagnosticClient(IHttpClientFactory httpClientFactory) : base(httpClientFactory) + readonly ITemplateResourceDataProcessor templateResourceDataProcessor; + + public DiagnosticClient(IHttpClientFactory httpClientFactory, ITemplateResourceDataProcessor templateResourceDataProcessor) : base(httpClientFactory) { + this.templateResourceDataProcessor = templateResourceDataProcessor; } public async Task> GetApiDiagnosticsAsync(string apiName, ExtractorParameters extractorParameters) @@ -29,7 +33,9 @@ public async Task> GetApiDiagnosticsAsync(strin string requestUrl = string.Format(GetDiagnosticsLinkedToApiRequest, this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, apiName, GlobalConstants.ApiVersion); - return await this.GetPagedResponseAsync(azToken, requestUrl); + var diagnosticTemplateResources = await this.GetPagedResponseAsync(azToken, requestUrl); + this.templateResourceDataProcessor.ProcessData(diagnosticTemplateResources); + return diagnosticTemplateResources; } public async Task> GetAllAsync(ExtractorParameters extractorParameters) @@ -39,7 +45,9 @@ public async Task> GetAllAsync(ExtractorParamet var requestUrl = string.Format(GetAllDiagnosticsRequest, this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, GlobalConstants.ApiVersion); - return await this.GetPagedResponseAsync(azToken, requestUrl); + var diagnosticTemplateResources = await this.GetPagedResponseAsync(azToken, requestUrl); + this.templateResourceDataProcessor.ProcessData(diagnosticTemplateResources); + return diagnosticTemplateResources; } } } diff --git a/src/ArmTemplates/Common/API/Clients/Gateway/GatewayClient.cs b/src/ArmTemplates/Common/API/Clients/Gateway/GatewayClient.cs index 3ab5185f..eb2dafca 100644 --- a/src/ArmTemplates/Common/API/Clients/Gateway/GatewayClient.cs +++ b/src/ArmTemplates/Common/API/Clients/Gateway/GatewayClient.cs @@ -12,6 +12,7 @@ using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Extensions; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Gateway; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; using Microsoft.Extensions.Logging; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.Gateway @@ -22,15 +23,18 @@ public class GatewayClient : ApiClientBase, IGatewayClient readonly ILogger logger; readonly IApisClient apisClient; + readonly ITemplateResourceDataProcessor templateResourceDataProcessor; public GatewayClient( IHttpClientFactory httpClientFactory, ILogger logger, - IApisClient apisClient - ): base(httpClientFactory) + IApisClient apisClient, + ITemplateResourceDataProcessor templateResourceDataProcessor + ) : base(httpClientFactory) { this.logger = logger; this.apisClient = apisClient; + this.templateResourceDataProcessor = templateResourceDataProcessor; } public async Task> GetAllAsync(ExtractorParameters extractorParameters) @@ -40,7 +44,9 @@ public async Task> GetAllAsync(ExtractorParameters string requestUrl = string.Format(GetAllGatewaysRequest, this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, GlobalConstants.ApiVersion); - return await this.GetPagedResponseAsync(azToken, requestUrl); + var gatewatTemplateResources = await this.GetPagedResponseAsync(azToken, requestUrl); + this.templateResourceDataProcessor.ProcessData(gatewatTemplateResources); + return gatewatTemplateResources; } /// diff --git a/src/ArmTemplates/Common/API/Clients/IdentityProviders/IdentityProviderClient.cs b/src/ArmTemplates/Common/API/Clients/IdentityProviders/IdentityProviderClient.cs index d5c83469..a734fb23 100644 --- a/src/ArmTemplates/Common/API/Clients/IdentityProviders/IdentityProviderClient.cs +++ b/src/ArmTemplates/Common/API/Clients/IdentityProviders/IdentityProviderClient.cs @@ -20,13 +20,13 @@ public class IdentityProviderClient : ApiClientBase, IIdentityProviderClient const string GetAllIdentityProvidersRequest = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/identityProviders?api-version={4}"; const string ListIdentyProviderSecret = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/identityProviders/{4}/listSecrets?api-version={5}"; - readonly IIdentityProviderProcessor identityProviderProcessor; + readonly ITemplateResourceDataProcessor templateResourceDataProcessor; public IdentityProviderClient( IHttpClientFactory httpClientFactory, - IIdentityProviderProcessor identityProviderProcessor): base(httpClientFactory) + ITemplateResourceDataProcessor templateResourceDataProcessor) : base(httpClientFactory) { - this.identityProviderProcessor = identityProviderProcessor; + this.templateResourceDataProcessor = templateResourceDataProcessor; } public async Task> GetAllAsync(ExtractorParameters extractorParameters) @@ -37,7 +37,7 @@ public async Task> GetAllAsync(ExtractorParameter this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, GlobalConstants.ApiVersion); var identityProviderTemplates = await this.GetPagedResponseAsync(azToken, requestUrl); - this.identityProviderProcessor.ProcessData(identityProviderTemplates, extractorParameters); + this.templateResourceDataProcessor.ProcessData(identityProviderTemplates); return identityProviderTemplates; } diff --git a/src/ArmTemplates/Common/API/Clients/Loggers/LoggerClient.cs b/src/ArmTemplates/Common/API/Clients/Loggers/LoggerClient.cs index c5d4b462..67c9af09 100644 --- a/src/ArmTemplates/Common/API/Clients/Loggers/LoggerClient.cs +++ b/src/ArmTemplates/Common/API/Clients/Loggers/LoggerClient.cs @@ -10,6 +10,8 @@ using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Constants; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Logger; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.Loggers { @@ -17,8 +19,10 @@ public class LoggerClient : ApiClientBase, ILoggerClient { const string GetAllLoggersRequest = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/loggers?api-version={4}"; - public LoggerClient(IHttpClientFactory httpClientFactory) : base(httpClientFactory) + readonly ITemplateResourceDataProcessor templateResourceDataProcessor; + public LoggerClient(IHttpClientFactory httpClientFactory, ITemplateResourceDataProcessor templateResourceDataProcessor) : base(httpClientFactory) { + this.templateResourceDataProcessor = templateResourceDataProcessor; } public async Task> GetAllAsync(ExtractorParameters extractorParameters) @@ -28,8 +32,9 @@ public async Task> GetAllAsync(ExtractorParameters string requestUrl = string.Format(GetAllLoggersRequest, this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, GlobalConstants.ApiVersion); - return await this.GetPagedResponseAsync(azToken, requestUrl); - + var loggerTemplateResources = await this.GetPagedResponseAsync(azToken, requestUrl); + this.templateResourceDataProcessor.ProcessData(loggerTemplateResources); + return loggerTemplateResources; } } } diff --git a/src/ArmTemplates/Common/API/Clients/NamedValues/NamedValuesClient.cs b/src/ArmTemplates/Common/API/Clients/NamedValues/NamedValuesClient.cs index 93f229f1..c8adfdee 100644 --- a/src/ArmTemplates/Common/API/Clients/NamedValues/NamedValuesClient.cs +++ b/src/ArmTemplates/Common/API/Clients/NamedValues/NamedValuesClient.cs @@ -10,15 +10,18 @@ using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Constants; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.NamedValues; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.NamedValues { public class NamedValuesClient : ApiClientBase, INamedValuesClient { const string GetNamedValuesRequest = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/namedValues?api-version={4}"; + readonly ITemplateResourceDataProcessor templateResourceDataProcessor; - public NamedValuesClient(IHttpClientFactory httpClientFactory) : base(httpClientFactory) + public NamedValuesClient(IHttpClientFactory httpClientFactory, ITemplateResourceDataProcessor templateResourceDataProcessor) : base(httpClientFactory) { + this.templateResourceDataProcessor = templateResourceDataProcessor; } public async Task> GetAllAsync(ExtractorParameters extractorParameters) @@ -28,7 +31,9 @@ public async Task> GetAllAsync(ExtractorParamet var requestUrl = string.Format(GetNamedValuesRequest, this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, GlobalConstants.ApiVersion); - return await this.GetPagedResponseAsync(azToken, requestUrl); + var namedValuesTemplateResources = await this.GetPagedResponseAsync(azToken, requestUrl); + this.templateResourceDataProcessor.ProcessData(namedValuesTemplateResources); + return namedValuesTemplateResources; } } } diff --git a/src/ArmTemplates/Common/API/Clients/OpenIdConnectProviders/OpenIdConnectProviderClient.cs b/src/ArmTemplates/Common/API/Clients/OpenIdConnectProviders/OpenIdConnectProviderClient.cs index ae693b3f..c8b65f83 100644 --- a/src/ArmTemplates/Common/API/Clients/OpenIdConnectProviders/OpenIdConnectProviderClient.cs +++ b/src/ArmTemplates/Common/API/Clients/OpenIdConnectProviders/OpenIdConnectProviderClient.cs @@ -9,6 +9,7 @@ using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.Abstractions; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Models; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Constants; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.IdentityProviders; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.OpenIdConnectProviders; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; @@ -20,13 +21,13 @@ public class OpenIdConnectProviderClient : ApiClientBase, IOpenIdConnectProvider const string GetAllOpenIdConnectProvidersProvidersRequest = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/openidConnectProviders?api-version={4}"; const string ListOpenIdConnectProviderSecret = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/openidConnectProviders/{4}/listSecrets?api-version={5}"; - readonly IOpenIdConnectProviderProcessor openIdConnectProviderProcessor; + readonly ITemplateResourceDataProcessor templateResourceDataProcessor; public OpenIdConnectProviderClient( IHttpClientFactory httpClientFactory, - IOpenIdConnectProviderProcessor openIdConnectProviderProcessor) : base(httpClientFactory) + ITemplateResourceDataProcessor templateResourceDataProcessor) : base(httpClientFactory) { - this.openIdConnectProviderProcessor = openIdConnectProviderProcessor; + this.templateResourceDataProcessor = templateResourceDataProcessor; } public async Task> GetAllAsync(ExtractorParameters extractorParameters) @@ -37,7 +38,7 @@ public async Task> GetAllAsync(ExtractorPara this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, GlobalConstants.ApiVersion); var openIdConnectProviderResources = await this.GetPagedResponseAsync(azToken, requestUrl); - this.openIdConnectProviderProcessor.ProcessData(openIdConnectProviderResources, extractorParameters); + this.templateResourceDataProcessor.ProcessData(openIdConnectProviderResources); return openIdConnectProviderResources; } diff --git a/src/ArmTemplates/Common/API/Clients/PolicyFragments/PolicyFragmentsClient.cs b/src/ArmTemplates/Common/API/Clients/PolicyFragments/PolicyFragmentsClient.cs index 394d6650..40a93463 100644 --- a/src/ArmTemplates/Common/API/Clients/PolicyFragments/PolicyFragmentsClient.cs +++ b/src/ArmTemplates/Common/API/Clients/PolicyFragments/PolicyFragmentsClient.cs @@ -18,13 +18,13 @@ public class PolicyFragmentsClient : ApiClientBase, IPolicyFragmentsClient { const string GetAllRequest = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/policyFragments?api-version={4}&format=rawxml"; - readonly IPolicyFragmentDataProcessor policyFragmentDataProcessor; + readonly ITemplateResourceDataProcessor templateResourceDataProcessor; public PolicyFragmentsClient( IHttpClientFactory httpClientFactory, - IPolicyFragmentDataProcessor policyFragmentDataProcessor): base(httpClientFactory) + ITemplateResourceDataProcessor templateResourceDataProcessor) : base(httpClientFactory) { - this.policyFragmentDataProcessor = policyFragmentDataProcessor; + this.templateResourceDataProcessor = templateResourceDataProcessor; } public async Task> GetAllAsync(ExtractorParameters extractorParameters) @@ -35,7 +35,7 @@ public async Task> GetAllAsync(ExtractorParameters this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, GlobalConstants.ApiVersionPreview); var policyFragments = await this.GetPagedResponseAsync(azToken, requestUrl); - this.policyFragmentDataProcessor.ProcessData(policyFragments, extractorParameters); + this.templateResourceDataProcessor.ProcessData(policyFragments); return policyFragments; } diff --git a/src/ArmTemplates/Common/API/Clients/Schemas/SchemasClient.cs b/src/ArmTemplates/Common/API/Clients/Schemas/SchemasClient.cs index c13244db..2d09c04f 100644 --- a/src/ArmTemplates/Common/API/Clients/Schemas/SchemasClient.cs +++ b/src/ArmTemplates/Common/API/Clients/Schemas/SchemasClient.cs @@ -18,13 +18,13 @@ public class SchemasClient : ApiClientBase, ISchemasClient { const string GetAllRequest = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/schemas?api-version={4}"; - readonly ISchemaDataProcessor schemaProcessor; + readonly ITemplateResourceDataProcessor templateResourceDataProcessor; public SchemasClient( IHttpClientFactory httpClientFactory, - ISchemaDataProcessor schemaDataProcessor): base(httpClientFactory) + ITemplateResourceDataProcessor templateResourceDataProcessor) : base(httpClientFactory) { - this.schemaProcessor = schemaDataProcessor; + this.templateResourceDataProcessor = templateResourceDataProcessor; } public async Task> GetAllAsync(ExtractorParameters extractorParameters) @@ -35,7 +35,7 @@ public async Task> GetAllAsync(ExtractorParameters this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, GlobalConstants.ApiVersion); var schemaTemplates = await this.GetPagedResponseAsync(azToken, requestUrl); - this.schemaProcessor.ProcessData(schemaTemplates, extractorParameters); + this.templateResourceDataProcessor.ProcessData(schemaTemplates); return schemaTemplates; } diff --git a/src/ArmTemplates/Common/API/Clients/Tags/TagClient.cs b/src/ArmTemplates/Common/API/Clients/Tags/TagClient.cs index 600cabd0..f36cccf4 100644 --- a/src/ArmTemplates/Common/API/Clients/Tags/TagClient.cs +++ b/src/ArmTemplates/Common/API/Clients/Tags/TagClient.cs @@ -10,6 +10,7 @@ using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Constants; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Tags; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.Tags { @@ -20,11 +21,11 @@ public class TagClient : ApiClientBase, ITagClient const string GetTagsLinkedToApiOperationRequest = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/apis/{4}/operations/{5}/tags?api-version={6}&format=rawxml"; const string GetAllTagsLinkedToProduct = "{0}/subscriptions/{1}/resourceGroups/{2}/providers/Microsoft.ApiManagement/service/{3}/products/{4}/tags?api-version={5}"; - readonly IApisClient apisClient; + readonly ITemplateResourceDataProcessor templateResourceDataProcessor; - public TagClient(IHttpClientFactory httpClientFactory, IApisClient apisClient): base(httpClientFactory) + public TagClient(IHttpClientFactory httpClientFactory, ITemplateResourceDataProcessor templateResourceDataProcessor) : base(httpClientFactory) { - this.apisClient = apisClient; + this.templateResourceDataProcessor = templateResourceDataProcessor; } public async Task> GetTagsLinkedToApiOperationAsync(string apiName, string operationName, ExtractorParameters extractorParameters) @@ -34,7 +35,9 @@ public async Task> GetTagsLinkedToApiOperationAsync(st string requestUrl = string.Format(GetTagsLinkedToApiOperationRequest, this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, apiName, operationName, GlobalConstants.ApiVersion); - return await this.GetPagedResponseAsync(azToken, requestUrl); + var tagTemplateResources = await this.GetPagedResponseAsync(azToken, requestUrl); + this.templateResourceDataProcessor.ProcessData(tagTemplateResources); + return tagTemplateResources; } public async Task> GetAllAsync(ExtractorParameters extractorParameters, int skipAmountOfRecords = 0) @@ -44,7 +47,9 @@ public async Task> GetAllAsync(ExtractorParameters ext var requestUrl = string.Format(GetAllTagsRequest, this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, skipAmountOfRecords, GlobalConstants.ApiVersion); - return await this.GetPagedResponseAsync(azToken, requestUrl); + var tagTemplateResources = await this.GetPagedResponseAsync(azToken, requestUrl); + this.templateResourceDataProcessor.ProcessData(tagTemplateResources); + return tagTemplateResources; } public async Task> GetAllTagsLinkedToApiAsync(string apiName, ExtractorParameters extractorParameters) @@ -54,7 +59,9 @@ public async Task> GetAllTagsLinkedToApiAsync(string a string requestUrl = string.Format(GetAllTagsLinkedToApiRequest, this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, apiName, GlobalConstants.ApiVersion); - return await this.GetPagedResponseAsync(azToken, requestUrl); + var tagTemplateResources = await this.GetPagedResponseAsync(azToken, requestUrl); + this.templateResourceDataProcessor.ProcessData(tagTemplateResources); + return tagTemplateResources; } public async Task> GetAllTagsLinkedToProductAsync(string productName, ExtractorParameters extractorParameters) @@ -64,7 +71,9 @@ public async Task> GetAllTagsLinkedToProductAsync(stri string requestUrl = string.Format(GetAllTagsLinkedToProduct, this.BaseUrl, azSubId, extractorParameters.ResourceGroup, extractorParameters.SourceApimName, productName, GlobalConstants.ApiVersion); - return await this.GetPagedResponseAsync(azToken, requestUrl); + var tagTemplateResources = await this.GetPagedResponseAsync(azToken, requestUrl); + this.templateResourceDataProcessor.ProcessData(tagTemplateResources); + return tagTemplateResources; } } } diff --git a/src/ArmTemplates/Common/Templates/Abstractions/TemplateResource.cs b/src/ArmTemplates/Common/Templates/Abstractions/TemplateResource.cs index 87129536..b264f25b 100644 --- a/src/ArmTemplates/Common/Templates/Abstractions/TemplateResource.cs +++ b/src/ArmTemplates/Common/Templates/Abstractions/TemplateResource.cs @@ -9,6 +9,9 @@ namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates { public class TemplateResource { + [JsonIgnore] + public string OriginalName { get; set; } + [JsonProperty(Order = -10)] public string ApiVersion { get; set; } diff --git a/src/ArmTemplates/Common/Templates/ApiManagementService/ApiManagementServiceResource.cs b/src/ArmTemplates/Common/Templates/ApiManagementService/ApiManagementServiceResource.cs index 9cb1f366..5970322c 100644 --- a/src/ArmTemplates/Common/Templates/ApiManagementService/ApiManagementServiceResource.cs +++ b/src/ArmTemplates/Common/Templates/ApiManagementService/ApiManagementServiceResource.cs @@ -11,9 +11,6 @@ namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates { public class ApiManagementServiceResource : TemplateResource { - [JsonIgnore] - public string OriginalName { get; set; } - public ApiManagementServiceIdentity Identity { get; set; } public string Location { get; set; } diff --git a/src/ArmTemplates/Common/Templates/ApiOperations/ApiOperationTemplateResource.cs b/src/ArmTemplates/Common/Templates/ApiOperations/ApiOperationTemplateResource.cs index a14df93e..db1b9729 100644 --- a/src/ArmTemplates/Common/Templates/ApiOperations/ApiOperationTemplateResource.cs +++ b/src/ArmTemplates/Common/Templates/ApiOperations/ApiOperationTemplateResource.cs @@ -4,15 +4,11 @@ // -------------------------------------------------------------------------- using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Abstractions; -using Newtonsoft.Json; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.ApiOperations { public class ApiOperationTemplateResource : TemplateResource { - [JsonIgnore] - public string OriginalName { get; set; } - public ApiOperationProperties Properties { get; set; } } } diff --git a/src/ArmTemplates/Common/Templates/Apis/ApiTemplateResource.cs b/src/ArmTemplates/Common/Templates/Apis/ApiTemplateResource.cs index ec714a88..a6bbec65 100644 --- a/src/ArmTemplates/Common/Templates/Apis/ApiTemplateResource.cs +++ b/src/ArmTemplates/Common/Templates/Apis/ApiTemplateResource.cs @@ -10,9 +10,6 @@ namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates { public class ApiTemplateResource : TemplateResource { - [JsonIgnore] - public string OriginalName { get; set; } - [JsonIgnore] public string ApiNameWithRevision { get; set; } diff --git a/src/ArmTemplates/Common/Templates/Groups/GroupTemplateResource.cs b/src/ArmTemplates/Common/Templates/Groups/GroupTemplateResource.cs index 2b649645..8e45aaa0 100644 --- a/src/ArmTemplates/Common/Templates/Groups/GroupTemplateResource.cs +++ b/src/ArmTemplates/Common/Templates/Groups/GroupTemplateResource.cs @@ -10,9 +10,6 @@ namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates { public class GroupTemplateResource : TemplateResource { - [JsonIgnore] - public string OriginalName { get; set; } - [JsonIgnore] public string NewName { get; set; } diff --git a/src/ArmTemplates/Common/Templates/IdentityProviders/IdentityProviderResource.cs b/src/ArmTemplates/Common/Templates/IdentityProviders/IdentityProviderResource.cs index db02273f..60f9a098 100644 --- a/src/ArmTemplates/Common/Templates/IdentityProviders/IdentityProviderResource.cs +++ b/src/ArmTemplates/Common/Templates/IdentityProviders/IdentityProviderResource.cs @@ -10,9 +10,6 @@ namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates { public class IdentityProviderResource : TemplateResource { - [JsonIgnore] - public string OriginalName { get; set; } - public IdentityProviderProperties Properties { get; set; } } } diff --git a/src/ArmTemplates/Common/Templates/NamedValues/NamedValueTemplateResource.cs b/src/ArmTemplates/Common/Templates/NamedValues/NamedValueTemplateResource.cs index 171e996d..bf98ea3e 100644 --- a/src/ArmTemplates/Common/Templates/NamedValues/NamedValueTemplateResource.cs +++ b/src/ArmTemplates/Common/Templates/NamedValues/NamedValueTemplateResource.cs @@ -9,8 +9,6 @@ namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates { public class NamedValueTemplateResource : TemplateResource { - public string OriginalName { get; set; } - public NamedValueProperties Properties { get; set; } } } diff --git a/src/ArmTemplates/Common/Templates/OpenIdConnectProviders/OpenIdConnectProviderResource.cs b/src/ArmTemplates/Common/Templates/OpenIdConnectProviders/OpenIdConnectProviderResource.cs index dd2ab77c..6dc22f4d 100644 --- a/src/ArmTemplates/Common/Templates/OpenIdConnectProviders/OpenIdConnectProviderResource.cs +++ b/src/ArmTemplates/Common/Templates/OpenIdConnectProviders/OpenIdConnectProviderResource.cs @@ -4,15 +4,11 @@ // -------------------------------------------------------------------------- using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Abstractions; -using Newtonsoft.Json; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.OpenIdConnectProviders { public class OpenIdConnectProviderResource : TemplateResource { - [JsonIgnore] - public string OriginalName { get; set; } - public OpenIdConnectProviderProperties Properties { get; set; } } } diff --git a/src/ArmTemplates/Common/Templates/PolicyFragments/PolicyFragmentsResource.cs b/src/ArmTemplates/Common/Templates/PolicyFragments/PolicyFragmentsResource.cs index 2e52d189..0af32907 100644 --- a/src/ArmTemplates/Common/Templates/PolicyFragments/PolicyFragmentsResource.cs +++ b/src/ArmTemplates/Common/Templates/PolicyFragments/PolicyFragmentsResource.cs @@ -3,16 +3,12 @@ // Licensed under the MIT License. // -------------------------------------------------------------------------- -using Newtonsoft.Json; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Abstractions; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.PolicyFragments { public class PolicyFragmentsResource : TemplateResource { - [JsonIgnore] - public string OriginalName { get; set; } - public PolicyFragmentsProperties Properties { get; set; } } } diff --git a/src/ArmTemplates/Common/Templates/ProductApis/ProductApiTemplateResource.cs b/src/ArmTemplates/Common/Templates/ProductApis/ProductApiTemplateResource.cs index ef537d92..6346eae1 100644 --- a/src/ArmTemplates/Common/Templates/ProductApis/ProductApiTemplateResource.cs +++ b/src/ArmTemplates/Common/Templates/ProductApis/ProductApiTemplateResource.cs @@ -10,9 +10,6 @@ namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates { public class ProductApiTemplateResource : TemplateResource { - [JsonIgnore] - public string OriginalName { get; set; } - [JsonIgnore] public string NewName { get; set; } diff --git a/src/ArmTemplates/Common/Templates/Products/ProductsTemplateResource.cs b/src/ArmTemplates/Common/Templates/Products/ProductsTemplateResource.cs index 93b389d6..e944f534 100644 --- a/src/ArmTemplates/Common/Templates/Products/ProductsTemplateResource.cs +++ b/src/ArmTemplates/Common/Templates/Products/ProductsTemplateResource.cs @@ -10,9 +10,6 @@ namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates { public class ProductsTemplateResource : TemplateResource { - [JsonIgnore] - public string OriginalName { get; set; } - [JsonIgnore] public string NewName { get; set; } diff --git a/src/ArmTemplates/Common/Templates/Schemas/SchemaTemplateResource.cs b/src/ArmTemplates/Common/Templates/Schemas/SchemaTemplateResource.cs index 19463d00..658ef272 100644 --- a/src/ArmTemplates/Common/Templates/Schemas/SchemaTemplateResource.cs +++ b/src/ArmTemplates/Common/Templates/Schemas/SchemaTemplateResource.cs @@ -4,15 +4,11 @@ // -------------------------------------------------------------------------- using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Abstractions; -using Newtonsoft.Json; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Schemas { public class SchemaTemplateResource: TemplateResource { - [JsonIgnore] - public string OriginalName { get; set; } - public SchemaProperties Properties { get; set; } } } diff --git a/src/ArmTemplates/Extractor/EntityExtractors/ApiOperationExtractor.cs b/src/ArmTemplates/Extractor/EntityExtractors/ApiOperationExtractor.cs index 277bf6e2..8994c991 100644 --- a/src/ArmTemplates/Extractor/EntityExtractors/ApiOperationExtractor.cs +++ b/src/ArmTemplates/Extractor/EntityExtractors/ApiOperationExtractor.cs @@ -41,8 +41,6 @@ public async Task> GenerateApiOperationsResou foreach (var apiOperation in apiOperations) { - apiOperation.OriginalName = apiOperation.Name; - apiOperation.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{apiName}/{apiOperation.OriginalName}')]"; apiOperation.ApiVersion = GlobalConstants.ApiVersion; apiOperation.Scale = null; diff --git a/src/ArmTemplates/Extractor/EntityExtractors/ApiSchemaExtractor.cs b/src/ArmTemplates/Extractor/EntityExtractors/ApiSchemaExtractor.cs index 14d53d88..9396be8d 100644 --- a/src/ArmTemplates/Extractor/EntityExtractors/ApiSchemaExtractor.cs +++ b/src/ArmTemplates/Extractor/EntityExtractors/ApiSchemaExtractor.cs @@ -34,9 +34,7 @@ public async Task GenerateApiSchemaResourcesAsync(st foreach (var apiSchema in apiSchemas) { - var apiSchemaOriginalName = apiSchema.Name; - - apiSchema.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{apiName}/{apiSchemaOriginalName}')]"; + apiSchema.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{apiName}/{apiSchema.OriginalName}')]"; apiSchema.Type = ResourceTypeConstants.APISchema; apiSchema.ApiVersion = GlobalConstants.ApiVersion; apiSchema.DependsOn = new string[] { NamingHelper.GenerateApisResourceId(apiName) }; diff --git a/src/ArmTemplates/Extractor/EntityExtractors/AuthorizationServerExtractor.cs b/src/ArmTemplates/Extractor/EntityExtractors/AuthorizationServerExtractor.cs index 7f781ef6..bcfb8fa8 100644 --- a/src/ArmTemplates/Extractor/EntityExtractors/AuthorizationServerExtractor.cs +++ b/src/ArmTemplates/Extractor/EntityExtractors/AuthorizationServerExtractor.cs @@ -48,8 +48,6 @@ public async Task> GenerateAuthor var authorizationServers = await this.authorizationServerClient.GetAllAsync(extractorParameters); foreach (var authorizationServer in authorizationServers) { - var originalAuthServerName = authorizationServer.Name; - authorizationServer.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{authorizationServer.Name}')]"; authorizationServer.Type = ResourceTypeConstants.AuthorizationServer; authorizationServer.ApiVersion = GlobalConstants.ApiVersion; @@ -60,12 +58,12 @@ public async Task> GenerateAuthor apiResource.Properties.AuthenticationSettings != null && apiResource.Properties.AuthenticationSettings.OAuth2 != null && apiResource.Properties.AuthenticationSettings.OAuth2.AuthorizationServerId != null && - apiResource.Properties.AuthenticationSettings.OAuth2.AuthorizationServerId.Contains(originalAuthServerName) + apiResource.Properties.AuthenticationSettings.OAuth2.AuthorizationServerId.Contains(authorizationServer.OriginalName) ) is not null; if (string.IsNullOrEmpty(singleApiName) || isReferencedByApi) { - this.logger.LogDebug("'{0}' Authorization server found", originalAuthServerName); + this.logger.LogDebug("'{0}' Authorization server found", authorizationServer.OriginalName); authorizationServerTemplate.TypedResources.AuthorizationServers.Add(authorizationServer); } } diff --git a/src/ArmTemplates/Extractor/EntityExtractors/BackendExtractor.cs b/src/ArmTemplates/Extractor/EntityExtractors/BackendExtractor.cs index 0b5f4384..7f1cc4f7 100644 --- a/src/ArmTemplates/Extractor/EntityExtractors/BackendExtractor.cs +++ b/src/ArmTemplates/Extractor/EntityExtractors/BackendExtractor.cs @@ -66,9 +66,7 @@ public async Task> GenerateBackendsTemplateAs foreach (var backendResource in backends) { - var originalBackendName = backendResource.Name; - - backendResource.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{originalBackendName}')]"; + backendResource.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{backendResource.OriginalName}')]"; backendResource.Type = ResourceTypeConstants.Backend; backendResource.ApiVersion = GlobalConstants.ApiVersion; @@ -89,7 +87,7 @@ public async Task> GenerateBackendsTemplateAs { var policyContent = this.policyExtractor.GetCachedPolicyContent(policyTemplateResource, baseFilesGenerationDirectory); - if (this.DoesPolicyReferenceBackend(policyContent, namedValues, originalBackendName, backendResource)) + if (this.DoesPolicyReferenceBackend(policyContent, namedValues, backendResource.OriginalName, backendResource)) { // backend was used in policy, extract it backendTemplate.TypedResources.Backends.Add(backendResource); @@ -110,7 +108,7 @@ void SaveBackendApiParametersToCache() } var backendApiParameters = new BackendApiParameters(); - var backendValidName = NamingHelper.GenerateValidParameterName(originalBackendName, ParameterPrefix.Backend).ToLower(); + var backendValidName = NamingHelper.GenerateValidParameterName(backendResource.OriginalName, ParameterPrefix.Backend).ToLower(); if (!string.IsNullOrEmpty(backendResource.Properties.ResourceId)) { diff --git a/src/ArmTemplates/Extractor/EntityExtractors/DiagnosticExtractor.cs b/src/ArmTemplates/Extractor/EntityExtractors/DiagnosticExtractor.cs index 40a013c5..0f6fc22f 100644 --- a/src/ArmTemplates/Extractor/EntityExtractors/DiagnosticExtractor.cs +++ b/src/ArmTemplates/Extractor/EntityExtractors/DiagnosticExtractor.cs @@ -42,9 +42,7 @@ public async Task> GetApiDiagnosticsResourcesAs var templateResources = new List(); foreach (var apiDiagnostic in apiDiagnostics) { - var apiDiagnosticOriginalName = apiDiagnostic.Name; - - apiDiagnostic.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{apiName}/{apiDiagnosticOriginalName}')]"; + apiDiagnostic.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{apiName}/{apiDiagnostic.OriginalName}')]"; apiDiagnostic.Type = ResourceTypeConstants.APIDiagnostic; apiDiagnostic.ApiVersion = GlobalConstants.ApiVersion; apiDiagnostic.Scale = null; @@ -52,10 +50,10 @@ public async Task> GetApiDiagnosticsResourcesAs if (extractorParameters.ParameterizeApiLoggerId) { - apiDiagnostic.Properties.LoggerId = $"[parameters('{ParameterNames.ApiLoggerId}').{NamingHelper.GenerateValidParameterName(apiName, ParameterPrefix.Api)}.{NamingHelper.GenerateValidParameterName(apiDiagnosticOriginalName, ParameterPrefix.Diagnostic)}]"; + apiDiagnostic.Properties.LoggerId = $"[parameters('{ParameterNames.ApiLoggerId}').{NamingHelper.GenerateValidParameterName(apiName, ParameterPrefix.Api)}.{NamingHelper.GenerateValidParameterName(apiDiagnostic.OriginalName, ParameterPrefix.Diagnostic)}]"; } - if (!apiDiagnosticOriginalName.Contains("applicationinsights")) + if (!apiDiagnostic.OriginalName.Contains("applicationinsights")) { // enableHttpCorrelationHeaders only works for application insights, causes errors otherwise apiDiagnostic.Properties.EnableHttpCorrelationHeaders = null; @@ -85,9 +83,8 @@ public async Task> GetServiceDiagnosticsTemplat foreach (var serviceDiagnostic in serviceDiagnostics) { this.logger.LogDebug("Found {0} diagnostic setting...", serviceDiagnostic.Name); - var originalDiagnosticName = serviceDiagnostic.Name; - serviceDiagnostic.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{originalDiagnosticName}')]"; + serviceDiagnostic.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{serviceDiagnostic.OriginalName}')]"; serviceDiagnostic.Type = ResourceTypeConstants.APIServiceDiagnostic; serviceDiagnostic.ApiVersion = GlobalConstants.ApiVersion; serviceDiagnostic.Scale = null; @@ -95,10 +92,10 @@ public async Task> GetServiceDiagnosticsTemplat if (extractorParameters.ParameterizeApiLoggerId) { - serviceDiagnostic.Properties.LoggerId = $"[parameters('{ParameterNames.ApiLoggerId}').{NamingHelper.GenerateValidParameterName(originalDiagnosticName, ParameterPrefix.Diagnostic)}]"; + serviceDiagnostic.Properties.LoggerId = $"[parameters('{ParameterNames.ApiLoggerId}').{NamingHelper.GenerateValidParameterName(serviceDiagnostic.OriginalName, ParameterPrefix.Diagnostic)}]"; } - if (!originalDiagnosticName.Contains("applicationinsights")) + if (!serviceDiagnostic.OriginalName.Contains("applicationinsights")) { // enableHttpCorrelationHeaders only works for application insights, causes errors otherwise //TODO: Check this settings still valid? diff --git a/src/ArmTemplates/Extractor/EntityExtractors/GatewayExtractor.cs b/src/ArmTemplates/Extractor/EntityExtractors/GatewayExtractor.cs index 7d3840dc..dc2c4b32 100644 --- a/src/ArmTemplates/Extractor/EntityExtractors/GatewayExtractor.cs +++ b/src/ArmTemplates/Extractor/EntityExtractors/GatewayExtractor.cs @@ -47,10 +47,8 @@ public async Task> GenerateGatewayTemplateAsy foreach (var gateway in gateways) { - var gatewayOriginalName = gateway.Name; - // convert returned backend to template resource class - gateway.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{gatewayOriginalName}')]"; + gateway.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{gateway.OriginalName}')]"; gateway.ApiVersion = GlobalConstants.ApiVersion; gateway.Type = ResourceTypeConstants.Gateway; @@ -61,7 +59,7 @@ public async Task> GenerateGatewayTemplateAsy } else { - var doesApiReferenceGateway = await this.gatewayClient.DoesApiReferenceGatewayAsync(singleApiName, gatewayOriginalName, extractorParameters); + var doesApiReferenceGateway = await this.gatewayClient.DoesApiReferenceGatewayAsync(singleApiName, gateway.OriginalName, extractorParameters); if (doesApiReferenceGateway) { gatewayTemplate.TypedResources.Gateways.Add(gateway); diff --git a/src/ArmTemplates/Extractor/EntityExtractors/LoggerExtractor.cs b/src/ArmTemplates/Extractor/EntityExtractors/LoggerExtractor.cs index ba68fd45..1022a208 100644 --- a/src/ArmTemplates/Extractor/EntityExtractors/LoggerExtractor.cs +++ b/src/ArmTemplates/Extractor/EntityExtractors/LoggerExtractor.cs @@ -59,9 +59,7 @@ public async Task> GenerateLoggerTemplateAsync var loggers = await this.loggerClient.GetAllAsync(extractorParameters); foreach (var logger in loggers) { - var originalLoggerName = logger.Name; - - logger.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{originalLoggerName}')]"; + logger.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{logger.OriginalName}')]"; logger.Type = ResourceTypeConstants.Logger; logger.ApiVersion = GlobalConstants.ApiVersion; logger.Scale = null; @@ -74,7 +72,7 @@ public async Task> GenerateLoggerTemplateAsync else { // if the user is extracting a single api, extract the loggers referenced by its diagnostics and api policies - var isReferencedInPolicy = apiPolicies?.Any(x => x.Properties.PolicyContent.Contains(originalLoggerName)); + var isReferencedInPolicy = apiPolicies?.Any(x => x.Properties.PolicyContent.Contains(logger.OriginalName)); bool isReferencedInDiagnostic = false; var validApiName = NamingHelper.GenerateValidParameterName(apisToExtract.First(), ParameterPrefix.Api); diff --git a/src/ArmTemplates/Extractor/EntityExtractors/NamedValuesExtractor.cs b/src/ArmTemplates/Extractor/EntityExtractors/NamedValuesExtractor.cs index 30058021..9d17f1a6 100644 --- a/src/ArmTemplates/Extractor/EntityExtractors/NamedValuesExtractor.cs +++ b/src/ArmTemplates/Extractor/EntityExtractors/NamedValuesExtractor.cs @@ -71,18 +71,15 @@ public async Task> GenerateNamedValuesTemplateAsy foreach (var namedValueResource in namedValues) { - var originalNamedValueName = namedValueResource.Name; - // convert returned named value to template resource class - namedValueResource.OriginalName = originalNamedValueName; - namedValueResource.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{originalNamedValueName}')]"; + namedValueResource.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{namedValueResource.OriginalName}')]"; namedValueResource.Type = ResourceTypeConstants.NamedValues; namedValueResource.ApiVersion = GlobalConstants.ApiVersion; namedValueResource.Scale = null; if (extractorParameters.ParameterizeNamedValue) { - namedValueResource.Properties.Value = $"[parameters('{ParameterNames.NamedValues}').{NamingHelper.GenerateValidParameterName(originalNamedValueName, ParameterPrefix.Property)}]"; + namedValueResource.Properties.Value = $"[parameters('{ParameterNames.NamedValues}').{NamingHelper.GenerateValidParameterName(namedValueResource.OriginalName, ParameterPrefix.Property)}]"; } //Hide the value field if it is a keyvault named value @@ -93,7 +90,7 @@ public async Task> GenerateNamedValuesTemplateAsy if (namedValueResource.Properties.KeyVault != null && extractorParameters.ParamNamedValuesKeyVaultSecrets) { - namedValueResource.Properties.KeyVault.SecretIdentifier = $"[parameters('{ParameterNames.NamedValueKeyVaultSecrets}').{NamingHelper.GenerateValidParameterName(originalNamedValueName, ParameterPrefix.Property)}]"; + namedValueResource.Properties.KeyVault.SecretIdentifier = $"[parameters('{ParameterNames.NamedValueKeyVaultSecrets}').{NamingHelper.GenerateValidParameterName(namedValueResource.OriginalName, ParameterPrefix.Property)}]"; } if (string.IsNullOrEmpty(singleApiName)) @@ -104,22 +101,22 @@ public async Task> GenerateNamedValuesTemplateAsy { // if the user is executing a single api, extract all the named values used in the template resources var foundInPolicy = this.DoesPolicyReferenceNamedValue( - apiPolicies, - originalNamedValueName, + apiPolicies, + namedValueResource.OriginalName, namedValueResource, baseFilesGenerationDirectory); var foundInBackEnd = await this.backendExtractor.IsNamedValueUsedInBackends( singleApiName, apiPolicies, - originalNamedValueName, + namedValueResource.OriginalName, namedValueResource.Properties.DisplayName, extractorParameters, baseFilesGenerationDirectory); var foundInLogger = this.DoesLoggerReferenceNamedValue( loggerResources, - originalNamedValueName, + namedValueResource.OriginalName, namedValueResource); if (foundInPolicy || foundInBackEnd || foundInLogger) diff --git a/src/ArmTemplates/Extractor/EntityExtractors/TagExtractor.cs b/src/ArmTemplates/Extractor/EntityExtractors/TagExtractor.cs index f3485c51..cddfaf2f 100644 --- a/src/ArmTemplates/Extractor/EntityExtractors/TagExtractor.cs +++ b/src/ArmTemplates/Extractor/EntityExtractors/TagExtractor.cs @@ -49,9 +49,7 @@ public async Task> GenerateTagResourcesLinkedToApiOper var templateResources = new List(); foreach (var apiOperationTag in apiOperationTags) { - var apiOperationTagOriginalName = apiOperationTag.Name; - - apiOperationTag.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{apiName}/{operationName}/{apiOperationTagOriginalName}')]"; + apiOperationTag.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{apiName}/{operationName}/{apiOperationTag.OriginalName}')]"; apiOperationTag.ApiVersion = GlobalConstants.ApiVersion; apiOperationTag.Scale = null; apiOperationTag.DependsOn = new string[] { $"[resourceId('Microsoft.ApiManagement/service/apis/operations', parameters('{ParameterNames.ApimServiceName}'), '{apiName}', '{operationName}')]" }; @@ -75,9 +73,7 @@ public async Task> GenerateTagResourcesLinkedToApiAsyn var templateResources = new List(); foreach (var apiTag in apiTags) { - var apiTagOriginalName = apiTag.Name; - - apiTag.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{apiName}/{apiTagOriginalName}')]"; + apiTag.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{apiName}/{apiTag.OriginalName}')]"; apiTag.ApiVersion = GlobalConstants.ApiVersion; apiTag.Scale = null; apiTag.DependsOn = new string[] { NamingHelper.GenerateApisResourceId(apiName) }; @@ -110,9 +106,7 @@ public async Task> GenerateTagsTemplateAsync( var tags = await this.tagClient.GetAllAsync(extractorParameters); foreach (var tag in tags) { - var tagOriginalName = tag.Name; - - tag.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{tagOriginalName}')]"; + tag.Name = $"[concat(parameters('{ParameterNames.ApimServiceName}'), '/{tag.OriginalName}')]"; tag.Type = ResourceTypeConstants.Tag; tag.ApiVersion = GlobalConstants.ApiVersion; tag.Scale = null; @@ -122,10 +116,10 @@ public async Task> GenerateTagsTemplateAsync( // or if it is found in tags associated with the api // or if it is found in tags associated with the products associated with the api if (string.IsNullOrEmpty(singleApiName) - || apiOperationTagResources.Any(t => t.Name.Contains($"/{tagOriginalName}'")) - || apiTemplateResources.Tags.Any(t => t.Name.Contains($"/{tagOriginalName}'")) + || apiOperationTagResources.Any(t => t.Name.Contains($"/{tag.OriginalName}'")) + || apiTemplateResources.Tags.Any(t => t.Name.Contains($"/{tag.OriginalName}'")) || productAPIResources.Any(t => t.Name.Contains($"/{singleApiName}")) - && productTagResources.Any(t => t.Name.Contains($"/{tagOriginalName}'"))) + && productTagResources.Any(t => t.Name.Contains($"/{tag.OriginalName}'"))) { tagTemplate.TypedResources.Tags.Add(tag); } diff --git a/src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/IApiManagementServiceProcessor.cs b/src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/IApiManagementServiceProcessor.cs deleted file mode 100644 index e16fd63a..00000000 --- a/src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/IApiManagementServiceProcessor.cs +++ /dev/null @@ -1,18 +0,0 @@ -// -------------------------------------------------------------------------- -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// -------------------------------------------------------------------------- - -using System.Collections.Generic; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.ApiManagementService; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; - -namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction -{ - public interface IApiManagementServiceProcessor - { - void ProcessData(List templates, ExtractorParameters extractorParameters); - - void ProcessSingleInstanceData(ApiManagementServiceResource template, ExtractorParameters extractorParameters); - } -} diff --git a/src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/IIdentityProviderProcessor.cs b/src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/IIdentityProviderProcessor.cs deleted file mode 100644 index 76fa4942..00000000 --- a/src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/IIdentityProviderProcessor.cs +++ /dev/null @@ -1,16 +0,0 @@ -// -------------------------------------------------------------------------- -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// -------------------------------------------------------------------------- - -using System.Collections.Generic; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.IdentityProviders; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; - -namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction -{ - public interface IIdentityProviderProcessor - { - void ProcessData(List templates, ExtractorParameters extractorParameters); - } -} diff --git a/src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/IOpenIdConnectProviderProcessor.cs b/src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/IOpenIdConnectProviderProcessor.cs deleted file mode 100644 index 7df0e922..00000000 --- a/src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/IOpenIdConnectProviderProcessor.cs +++ /dev/null @@ -1,16 +0,0 @@ -// -------------------------------------------------------------------------- -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// -------------------------------------------------------------------------- - -using System.Collections.Generic; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.OpenIdConnectProviders; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; - -namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction -{ - public interface IOpenIdConnectProviderProcessor - { - void ProcessData(List templates, ExtractorParameters extractorParameters); - } -} diff --git a/src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/IPolicyFragmentDataProcessor.cs b/src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/IPolicyFragmentDataProcessor.cs deleted file mode 100644 index 047e54c3..00000000 --- a/src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/IPolicyFragmentDataProcessor.cs +++ /dev/null @@ -1,16 +0,0 @@ -// -------------------------------------------------------------------------- -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// -------------------------------------------------------------------------- - -using System.Collections.Generic; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.PolicyFragments; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; - -namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction -{ - public interface IPolicyFragmentDataProcessor - { - void ProcessData(List templates, ExtractorParameters extractorParameters); - } -} diff --git a/src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/ISchemaDataProcessor.cs b/src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/ITemplateResourceDataProcessor.cs similarity index 66% rename from src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/ISchemaDataProcessor.cs rename to src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/ITemplateResourceDataProcessor.cs index e830d063..769e43d3 100644 --- a/src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/ISchemaDataProcessor.cs +++ b/src/ArmTemplates/Extractor/Utilities/DataProcessors/Absctraction/ITemplateResourceDataProcessor.cs @@ -4,13 +4,13 @@ // -------------------------------------------------------------------------- using System.Collections.Generic; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Schemas; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Abstractions; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction { - public interface ISchemaDataProcessor + public interface ITemplateResourceDataProcessor where T : TemplateResource { - void ProcessData(List templates, ExtractorParameters extractorParameters); + void ProcessData(List templateResources); + void ProcessSingleData(T templateResource); } } diff --git a/src/ArmTemplates/Extractor/Utilities/DataProcessors/ApiManagementServiceProcessor.cs b/src/ArmTemplates/Extractor/Utilities/DataProcessors/ApiManagementServiceProcessor.cs deleted file mode 100644 index ca187031..00000000 --- a/src/ArmTemplates/Extractor/Utilities/DataProcessors/ApiManagementServiceProcessor.cs +++ /dev/null @@ -1,28 +0,0 @@ -// -------------------------------------------------------------------------- -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// -------------------------------------------------------------------------- - -using System.Collections.Generic; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.ApiManagementService; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; - -namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors -{ - public class ApiManagementServiceProcessor : IApiManagementServiceProcessor - { - public void ProcessData(List templates, ExtractorParameters extractorParameters) - { - foreach (var template in templates) - { - template.OriginalName = template.Name; - } - } - - public void ProcessSingleInstanceData(ApiManagementServiceResource template, ExtractorParameters extractorParameters) - { - template.OriginalName = template.Name; - } - } -} diff --git a/src/ArmTemplates/Extractor/Utilities/DataProcessors/IdentityProviderProcessor.cs b/src/ArmTemplates/Extractor/Utilities/DataProcessors/IdentityProviderProcessor.cs deleted file mode 100644 index 62d06981..00000000 --- a/src/ArmTemplates/Extractor/Utilities/DataProcessors/IdentityProviderProcessor.cs +++ /dev/null @@ -1,31 +0,0 @@ -// -------------------------------------------------------------------------- -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// -------------------------------------------------------------------------- - -using System.Collections.Generic; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Extensions; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.IdentityProviders; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; - -namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors -{ - public class IdentityProviderProcessor: IIdentityProviderProcessor - { - public IDictionary OverrideRules { get; } - - public void ProcessData(List identityProviderResources, ExtractorParameters extractorParameters) - { - if (identityProviderResources.IsNullOrEmpty()) - { - return; - } - - foreach (var identityProviderTemplate in identityProviderResources) - { - identityProviderTemplate.OriginalName = identityProviderTemplate.Name; - } - } - } -} diff --git a/src/ArmTemplates/Extractor/Utilities/DataProcessors/OpenIdConnectProviderProcessor.cs b/src/ArmTemplates/Extractor/Utilities/DataProcessors/OpenIdConnectProviderProcessor.cs deleted file mode 100644 index b0d93dd0..00000000 --- a/src/ArmTemplates/Extractor/Utilities/DataProcessors/OpenIdConnectProviderProcessor.cs +++ /dev/null @@ -1,31 +0,0 @@ -// -------------------------------------------------------------------------- -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// -------------------------------------------------------------------------- - -using System.Collections.Generic; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Extensions; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.OpenIdConnectProviders; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; - -namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors -{ - public class OpenIdConnectProviderProcessor : IOpenIdConnectProviderProcessor - { - public IDictionary OverrideRules { get; } - - public void ProcessData(List openIdConnectProviderResources, ExtractorParameters extractorParameters) - { - if (openIdConnectProviderResources.IsNullOrEmpty()) - { - return; - } - - foreach (var openIdConnectProviderTemplate in openIdConnectProviderResources) - { - openIdConnectProviderTemplate.OriginalName = openIdConnectProviderTemplate.Name; - } - } - } -} diff --git a/src/ArmTemplates/Extractor/Utilities/DataProcessors/SchemaDataProcessor.cs b/src/ArmTemplates/Extractor/Utilities/DataProcessors/SchemaDataProcessor.cs deleted file mode 100644 index 1f17dbd7..00000000 --- a/src/ArmTemplates/Extractor/Utilities/DataProcessors/SchemaDataProcessor.cs +++ /dev/null @@ -1,29 +0,0 @@ -// -------------------------------------------------------------------------- -// Copyright (c) Microsoft Corporation. All rights reserved. -// Licensed under the MIT License. -// -------------------------------------------------------------------------- - -using System.Collections.Generic; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Extensions; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Schemas; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; - -namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors -{ - public class SchemaDataProcessor: ISchemaDataProcessor - { - public void ProcessData(List schemaTemplateResources, ExtractorParameters extractorParameters) - { - if (schemaTemplateResources.IsNullOrEmpty()) - { - return; - } - - foreach (var schemaTemplate in schemaTemplateResources) - { - schemaTemplate.OriginalName = schemaTemplate.Name; - } - } - } -} diff --git a/src/ArmTemplates/Extractor/Utilities/DataProcessors/PolicyFragmentDataProcessor.cs b/src/ArmTemplates/Extractor/Utilities/DataProcessors/TemplateResourceDataProcessor.cs similarity index 55% rename from src/ArmTemplates/Extractor/Utilities/DataProcessors/PolicyFragmentDataProcessor.cs rename to src/ArmTemplates/Extractor/Utilities/DataProcessors/TemplateResourceDataProcessor.cs index 1ec465df..f82e31a4 100644 --- a/src/ArmTemplates/Extractor/Utilities/DataProcessors/PolicyFragmentDataProcessor.cs +++ b/src/ArmTemplates/Extractor/Utilities/DataProcessors/TemplateResourceDataProcessor.cs @@ -5,25 +5,34 @@ using System.Collections.Generic; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Extensions; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.PolicyFragments; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Abstractions; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors { - public class PolicyFragmentDataProcessor: IPolicyFragmentDataProcessor + public class TemplateResourceDataProcessor: ITemplateResourceDataProcessor where T : TemplateResource { - public void ProcessData(List policyFragmentResources, ExtractorParameters extractorParameters) + public void ProcessData(List templateResources) { - if (policyFragmentResources.IsNullOrEmpty()) + if (templateResources.IsNullOrEmpty()) { return; } - foreach (var policyFragment in policyFragmentResources) + foreach (var templateResource in templateResources) { - policyFragment.OriginalName = policyFragment.Name; + this.ProcessSingleData(templateResource); } } + + public void ProcessSingleData(T templateResource) + { + if (templateResource == null) + { + return; + } + + templateResource.OriginalName = templateResource.Name; + } } } diff --git a/src/ArmTemplates/ServiceExtensions.cs b/src/ArmTemplates/ServiceExtensions.cs index 60659cb6..10b612df 100644 --- a/src/ArmTemplates/ServiceExtensions.cs +++ b/src/ArmTemplates/ServiceExtensions.cs @@ -72,13 +72,9 @@ static void SetupDataProcessors(IServiceCollection services) services.AddScoped(); services.AddScoped(); services.AddScoped(); - services.AddScoped(); - services.AddScoped(); - services.AddScoped(); - services.AddScoped(); - services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(typeof(ITemplateResourceDataProcessor<>), typeof(TemplateResourceDataProcessor<>)); } static void SetupCommands(IServiceCollection services) diff --git a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockApiManagementServiceClient.cs b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockApiManagementServiceClient.cs index d88541dd..5b210e10 100644 --- a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockApiManagementServiceClient.cs +++ b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockApiManagementServiceClient.cs @@ -4,14 +4,13 @@ // -------------------------------------------------------------------------- using System.Collections.Generic; -using System.IO; using System.Threading.Tasks; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.Abstractions; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.ApiManagementService; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.ApiManagementService; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors; using Moq; using Moq.Protected; @@ -43,8 +42,8 @@ public static IApiManagementServiceClient GetMockedApiManagementServiceClientWit public static async Task GetMockedHttpApiManagementServiceClient(string responseFileLocation) { - var mockedProcessor = new Mock(MockBehavior.Loose).Object; - var mockedClient = new Mock(MockBehavior.Strict, await MockClientUtils.GenerateMockedIHttpClientFactoryWithResponse(responseFileLocation), mockedProcessor); + var dataProcessor = new TemplateResourceDataProcessor(); + var mockedClient = new Mock(MockBehavior.Strict, await MockClientUtils.GenerateMockedIHttpClientFactoryWithResponse(responseFileLocation), dataProcessor); mockedClient.Protected() .Setup("Auth").Returns(MockClientUtils.GetMockedAzureClient()); diff --git a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockApiSchemaClient.cs b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockApiSchemaClient.cs index a8828903..1898a9d1 100644 --- a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockApiSchemaClient.cs +++ b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockApiSchemaClient.cs @@ -11,6 +11,7 @@ using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.FileHandlers; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.ApiSchemas; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors; using Moq; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Tests.Moqs.ApiClients @@ -80,7 +81,7 @@ public static IApiSchemaClient GetMockedApiClientWithGraphQLSchemaValues() public static async Task GetMockedHttpApiSchemaClient(string responseFileLocation) { - var mockedClient= new Mock(MockBehavior.Strict, await MockClientUtils.GenerateMockedIHttpClientFactoryWithResponse(responseFileLocation)); + var mockedClient= new Mock(MockBehavior.Strict, await MockClientUtils.GenerateMockedIHttpClientFactoryWithResponse(responseFileLocation), new TemplateResourceDataProcessor()); MockClientUtils.MockAuthOfApiClient(mockedClient); return mockedClient.Object; diff --git a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockBackendClient.cs b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockBackendClient.cs index cb66bf20..7b3214f3 100644 --- a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockBackendClient.cs +++ b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockBackendClient.cs @@ -9,6 +9,7 @@ using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.Backend; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Backend; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors; using Moq; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Tests.Moqs.ApiClients @@ -27,6 +28,7 @@ public static IBackendClient GetMockedApiClientWithDefaultValues() { new BackendTemplateResource { + OriginalName = BackendName, Name = BackendName, Properties = new BackendTemplateProperties { @@ -48,7 +50,7 @@ public static IBackendClient GetMockedApiClientWithDefaultValues() public static async Task GetMockedHttpApiClient(string responseFileLocation) { - var mockedClient = new Mock(MockBehavior.Strict, await MockClientUtils.GenerateMockedIHttpClientFactoryWithResponse(responseFileLocation)); + var mockedClient = new Mock(MockBehavior.Strict, await MockClientUtils.GenerateMockedIHttpClientFactoryWithResponse(responseFileLocation), new TemplateResourceDataProcessor()); MockClientUtils.MockAuthOfApiClient(mockedClient); return mockedClient.Object; diff --git a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockDiagnosticClient.cs b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockDiagnosticClient.cs index 7b2c2be1..1a46cb18 100644 --- a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockDiagnosticClient.cs +++ b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockDiagnosticClient.cs @@ -7,6 +7,8 @@ using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.Abstractions; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.TemplateModels; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; using Moq; namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Tests.Moqs.ApiClients @@ -27,6 +29,7 @@ public static IDiagnosticClient GetMockedClientWithApiDependentValues() { new DiagnosticTemplateResource { + OriginalName = DiagnosticName, Name = DiagnosticName, Properties = new DiagnosticTemplateProperties() { @@ -41,6 +44,7 @@ public static IDiagnosticClient GetMockedClientWithApiDependentValues() { new DiagnosticTemplateResource { + OriginalName= $"{apiName}-{DiagnosticName}", Name = $"{apiName}-{DiagnosticName}", Properties = new DiagnosticTemplateProperties() { @@ -62,6 +66,7 @@ public static IDiagnosticClient GetMockedApiClientWithDefaultValues() { new DiagnosticTemplateResource { + OriginalName = DefaultDiagnosticName, Name = DefaultDiagnosticName, Properties = new DiagnosticTemplateProperties() { @@ -76,6 +81,7 @@ public static IDiagnosticClient GetMockedApiClientWithDefaultValues() { new DiagnosticTemplateResource { + OriginalName = DefaultDiagnosticName, Name = DefaultDiagnosticName, Properties = new DiagnosticTemplateProperties() { diff --git a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockGatewayClient.cs b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockGatewayClient.cs index fa195b0c..c8903c76 100644 --- a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockGatewayClient.cs +++ b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockGatewayClient.cs @@ -27,6 +27,7 @@ public static IGatewayClient GetMockedApiClientWithDefaultValues() { new GatewayTemplateResource { + OriginalName = GatewayName1, Name = GatewayName1, Type = ResourceTypeConstants.Gateway, Properties = new GatewayProperties @@ -44,6 +45,7 @@ public static IGatewayClient GetMockedApiClientWithDefaultValues() new GatewayTemplateResource { + OriginalName=GatewayName2, Name = GatewayName2, Type = ResourceTypeConstants.Gateway, Properties = new GatewayProperties diff --git a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockLoggerClient.cs b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockLoggerClient.cs index 1af1e670..de9f422f 100644 --- a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockLoggerClient.cs +++ b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockLoggerClient.cs @@ -26,6 +26,7 @@ public static ILoggerClient GetMockedClientWithDiagnosticDependentValues() { new LoggerTemplateResource { + OriginalName = LoggerName, Name = LoggerName, Type = ResourceTypeConstants.Logger, Properties = new() diff --git a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockNamedValuesClient.cs b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockNamedValuesClient.cs index f92221c6..ed6c15d4 100644 --- a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockNamedValuesClient.cs +++ b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockNamedValuesClient.cs @@ -26,6 +26,7 @@ public static INamedValuesClient GetMockedApiClientWithDefaultValues() { new NamedValueTemplateResource { + OriginalName = NamedValueName, Name = NamedValueName, Properties = new() { diff --git a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockOpenIdConnectProviderClient.cs b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockOpenIdConnectProviderClient.cs index 7bcb6b32..a710ab46 100644 --- a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockOpenIdConnectProviderClient.cs +++ b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockOpenIdConnectProviderClient.cs @@ -9,7 +9,7 @@ using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.OpenIdConnectProviders; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.OpenIdConnectProviders; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Models; -using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors.Absctraction; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Tests.Moqs.ApiClients; using Moq; @@ -67,8 +67,8 @@ public static IOpenIdConnectProvidersClient GetMockedOpenIdConnectProviderClient public static async Task GetMockedHttpOpenIdConnectProviderClient(string responseFileLocation) { - var mockedProcessor = new Mock(MockBehavior.Loose).Object; - var mockedClient = new Mock(MockBehavior.Strict, await MockClientUtils.GenerateMockedIHttpClientFactoryWithResponse(responseFileLocation), mockedProcessor); + var dataProcessor = new TemplateResourceDataProcessor(); + var mockedClient = new Mock(MockBehavior.Strict, await MockClientUtils.GenerateMockedIHttpClientFactoryWithResponse(responseFileLocation), dataProcessor); MockClientUtils.MockAuthOfApiClient(mockedClient); return mockedClient.Object; diff --git a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockPolicyFragmentClient.cs b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockPolicyFragmentClient.cs index fd5508f9..378050ff 100644 --- a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockPolicyFragmentClient.cs +++ b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockPolicyFragmentClient.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.Abstractions; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.PolicyFragments; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.PolicyFragments; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors; using Moq; @@ -15,8 +16,8 @@ class MockPolicyFragmentClient { public static async Task GetMockedHttpPolicyFragmentClient(string responseFileLocation) { - var mockedProcessor = new PolicyFragmentDataProcessor(); - var mockedClient = new Mock(MockBehavior.Strict, await MockClientUtils.GenerateMockedIHttpClientFactoryWithResponse(responseFileLocation) , mockedProcessor); + var dataProcessor = new TemplateResourceDataProcessor(); + var mockedClient = new Mock(MockBehavior.Strict, await MockClientUtils.GenerateMockedIHttpClientFactoryWithResponse(responseFileLocation) , dataProcessor); MockClientUtils.MockAuthOfApiClient(mockedClient); return mockedClient.Object; diff --git a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockSchemaClient.cs b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockSchemaClient.cs index db378c45..242ddc1c 100644 --- a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockSchemaClient.cs +++ b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockSchemaClient.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.Abstractions; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.API.Clients.Schemas; +using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Schemas; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities; using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Extractor.Utilities.DataProcessors; using Moq; @@ -17,7 +18,7 @@ class MockSchemaClient { public static async Task GetMockedHttpSchemaClient(string responseFileLocation) { - var dataProcessor = new SchemaDataProcessor(); + var dataProcessor = new TemplateResourceDataProcessor(); var mockedClient = new Mock(MockBehavior.Strict, await MockClientUtils.GenerateMockedIHttpClientFactoryWithResponse(responseFileLocation) , dataProcessor); MockClientUtils.MockAuthOfApiClient(mockedClient); diff --git a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockTagClient.cs b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockTagClient.cs index 1f023dd5..c730c92a 100644 --- a/tests/ArmTemplates.Tests/Moqs/ApiClients/MockTagClient.cs +++ b/tests/ArmTemplates.Tests/Moqs/ApiClients/MockTagClient.cs @@ -29,12 +29,14 @@ public static ITagClient GetMockedApiClientWithDefaultValues() { new TagTemplateResource { + OriginalName = TagName1, Name = TagName1, Type = ResourceTypeConstants.APIOperationTag }, new TagTemplateResource { + OriginalName = TagName2, Name = TagName2, Type = ResourceTypeConstants.APIOperationTag } @@ -46,12 +48,14 @@ public static ITagClient GetMockedApiClientWithDefaultValues() { new TagTemplateResource { + OriginalName = TagName1, Name = TagName1, Type = ResourceTypeConstants.APITag }, new TagTemplateResource { + OriginalName = TagName2, Name = TagName2, Type = ResourceTypeConstants.APITag } @@ -63,12 +67,14 @@ public static ITagClient GetMockedApiClientWithDefaultValues() { new TagTemplateResource { + OriginalName = TagName1, Name = TagName1, Type = ResourceTypeConstants.ProductTag }, new TagTemplateResource { + OriginalName = TagName2, Name = TagName2, Type = ResourceTypeConstants.ProductTag } @@ -80,22 +86,26 @@ public static ITagClient GetMockedApiClientWithDefaultValues() { new TagTemplateResource { + OriginalName = TagName1, Name = TagName1, Type = ResourceTypeConstants.APITag }, new TagTemplateResource { + OriginalName = TagName2, Name = TagName2, Type = ResourceTypeConstants.APITag }, new TagTemplateResource { + OriginalName = OperationTagName1, Name = OperationTagName1, Type = ResourceTypeConstants.APITag }, new TagTemplateResource { + OriginalName = OperationTagName2, Name = OperationTagName2, Type = ResourceTypeConstants.APITag }