Skip to content
This repository was archived by the owner on Feb 23, 2024. It is now read-only.

Commit 26a37c3

Browse files
authored
parameters-template & master-template refactoring (#677)
* parameters-template separation * prettify master template * get rid of entity-extractor-base (legacy) completely!!! * remove statics in master template extractor * remove static method and move to constructor * create type as an explicit * return static Co-authored-by: Dmitrii Korolev <dmkorolev@microsoft.com>
1 parent acd2886 commit 26a37c3

40 files changed

+819
-754
lines changed

src/ArmTemplates/Commands/Applications/ExtractApplicationCommand.cs

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,6 @@ public async Task ExecuteCommandAsync(ExtractorParameters parameters)
6363
await this.extractorExecutor.ExecuteGenerationBasedOnConfiguration();
6464

6565
this.logger.LogInformation("Templates written to output location");
66-
this.logger.LogInformation("Press any key to exit process:");
67-
#if DEBUG
68-
Console.ReadKey();
69-
#endif
7066
}
7167
catch (Exception ex)
7268
{

src/ArmTemplates/Commands/Executors/ExtractorExecutor.cs

Lines changed: 113 additions & 40 deletions
Large diffs are not rendered by default.

src/ArmTemplates/Common/Constants/GlobalConstants.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public static class GlobalConstants
1818
public const string azAccessToken = "account get-access-token --query \"accessToken\" --output json";
1919
public const string azSubscriptionId = "account show --query id -o json";
2020

21-
public const string BaseManagementAzureUrl = "https://management.azure.com";
21+
public static string BaseManagementAzureUrl = "https://management.azure.com";
2222
}
2323

2424
public static class ParameterNames

src/ArmTemplates/Common/Constants/ResourceTypeConstants.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,7 @@ public static class ResourceTypeConstants
2828
public const string Tag = "Microsoft.ApiManagement/service/tags";
2929
public const string Gateway = "Microsoft.ApiManagement/service/gateways";
3030
public const string GatewayApi = "Microsoft.ApiManagement/service/gateways/apis";
31+
32+
public const string ArmDeployments = "Microsoft.Resources/deployments";
3133
}
3234
}

src/ArmTemplates/Common/FileHandlers/FileNameGenerator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ public static FileNames GenerateFileNames(string baseFileName)
3030
Gateway = $@"{baseFileName}gateways.template.json",
3131
GatewayApi = $@"{baseFileName}gateways-apis.template.json",
3232
TagApi = $@"{baseFileName}apiTags.template.json",
33-
Parameters = $@"\{baseFileName}parameters.json",
34-
LinkedMaster = $@"\{baseFileName}master.template.json",
33+
Parameters = $@"{baseFileName}parameters.json",
34+
LinkedMaster = $@"{baseFileName}master.template.json",
3535
Apis = "/Apis",
3636
SplitAPIs = "/SplitAPIs",
3737
VersionSetMasterFolder = "/VersionSetMasterFolder",

src/ArmTemplates/Common/TemplateModels/MasterTemplateResource.cs

Lines changed: 0 additions & 23 deletions
This file was deleted.

src/ArmTemplates/Common/Templates/Abstractions/TemplateObjectParameterProperties.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
{
33
public class TemplateObjectParameterProperties : TemplateParameterProperties
44
{
5-
public new object value { get; set; }
5+
public new object Value { get; set; }
66
}
77
}

src/ArmTemplates/Common/Templates/Abstractions/TemplateParameterMetadata.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
{
33
public class TemplateParameterMetadata
44
{
5-
public string description { get; set; }
5+
public string Description { get; set; }
66
}
77
}
Lines changed: 21 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,26 @@
1-
namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Abstractions
1+
using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Commands.Applications;
2+
3+
namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Abstractions
24
{
35
public class TemplateParameterProperties
46
{
5-
public string type { get; set; }
6-
public TemplateParameterMetadata metadata { get; set; }
7-
public string[] allowedValues { get; set; }
8-
public string defaultValue { get; set; }
9-
public string value { get; set; }
7+
public string Type { get; set; }
8+
public TemplateParameterMetadata Metadata { get; set; }
9+
public string[] AllowedValues { get; set; }
10+
public string DefaultValue { get; set; }
11+
public string Value { get; set; }
12+
13+
public TemplateParameterProperties()
14+
{
15+
}
16+
17+
public TemplateParameterProperties(string metadataDescription, string type)
18+
{
19+
this.Metadata = new TemplateParameterMetadata()
20+
{
21+
Description = metadataDescription,
22+
};
23+
this.Type = type;
24+
}
1025
}
1126
}

src/ArmTemplates/Common/Templates/Builders/TemplateBuilder.cs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ public TemplateBuilder GenerateTemplateWithApimServiceNameProperty()
4343
this.template.Parameters = new Dictionary<string, TemplateParameterProperties>
4444
{
4545
{
46-
ParameterNames.ApimServiceName, new TemplateParameterProperties() { type = "string" }
46+
ParameterNames.ApimServiceName, new TemplateParameterProperties() { Type = "string" }
4747
}
4848
};
4949

@@ -78,7 +78,7 @@ public TemplateBuilder AddPolicyProperties(ExtractorParameters extractorParamete
7878
{
7979
TemplateParameterProperties policyTemplateSasTokenParameterProperties = new TemplateParameterProperties()
8080
{
81-
type = "string"
81+
Type = "string"
8282
};
8383

8484
this.template.Parameters.Add(ParameterNames.PolicyXMLSasToken, policyTemplateSasTokenParameterProperties);
@@ -88,7 +88,7 @@ public TemplateBuilder AddPolicyProperties(ExtractorParameters extractorParamete
8888
{
8989
TemplateParameterProperties policyTemplateBaseUrlParameterProperties = new TemplateParameterProperties()
9090
{
91-
type = "string"
91+
Type = "string"
9292
};
9393
this.template.Parameters.Add(ParameterNames.PolicyXMLBaseUrl, policyTemplateBaseUrlParameterProperties);
9494
}
@@ -102,7 +102,7 @@ public TemplateBuilder AddParameterizeServiceUrlProperty(ExtractorParameters ext
102102
{
103103
TemplateParameterProperties serviceUrlParamProperty = new TemplateParameterProperties()
104104
{
105-
type = "object"
105+
Type = "object"
106106
};
107107
this.template.Parameters.Add(ParameterNames.ServiceUrl, serviceUrlParamProperty);
108108
}
@@ -116,7 +116,7 @@ public TemplateBuilder AddParameterizeApiLoggerIdProperty(ExtractorParameters ex
116116
{
117117
TemplateParameterProperties apiLoggerProperty = new TemplateParameterProperties()
118118
{
119-
type = "object"
119+
Type = "object"
120120
};
121121
this.template.Parameters.Add(ParameterNames.ApiLoggerId, apiLoggerProperty);
122122
}
@@ -130,7 +130,7 @@ public TemplateBuilder AddParameterizeNamedValueParameters(ExtractorParameters e
130130
{
131131
TemplateParameterProperties namedValueParameterProperties = new TemplateParameterProperties()
132132
{
133-
type = "object"
133+
Type = "object"
134134
};
135135
this.template.Parameters.Add(ParameterNames.NamedValues, namedValueParameterProperties);
136136
}
@@ -144,7 +144,7 @@ public TemplateBuilder AddParameterizeNamedValuesKeyVaultSecretParameters(Extrac
144144
{
145145
TemplateParameterProperties keyVaultNamedValueParameterProperties = new TemplateParameterProperties()
146146
{
147-
type = "object"
147+
Type = "object"
148148
};
149149
this.template.Parameters.Add(ParameterNames.NamedValueKeyVaultSecrets, keyVaultNamedValueParameterProperties);
150150
}
@@ -158,7 +158,7 @@ public TemplateBuilder AddParameterizeLogResourceIdProperty(ExtractorParameters
158158
{
159159
TemplateParameterProperties loggerResourceIdParameterProperties = new TemplateParameterProperties()
160160
{
161-
type = "object"
161+
Type = "object"
162162
};
163163
this.template.Parameters.Add(ParameterNames.LoggerResourceId, loggerResourceIdParameterProperties);
164164
}
@@ -172,7 +172,7 @@ public TemplateBuilder AddParameterizeBackendProperty(ExtractorParameters extrac
172172
{
173173
TemplateParameterProperties extractBackendParametersProperties = new TemplateParameterProperties()
174174
{
175-
type = "object"
175+
Type = "object"
176176
};
177177
this.template.Parameters.Add(ParameterNames.BackendSettings, extractBackendParametersProperties);
178178
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// --------------------------------------------------------------------------
2+
// <copyright file="MasterTemplateLink.cs" company="Microsoft">
3+
// Copyright (c) Microsoft Corporation. All rights reserved.
4+
// </copyright>
5+
// --------------------------------------------------------------------------
6+
7+
using System;
8+
using System.Collections.Generic;
9+
using System.Text;
10+
11+
namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Master
12+
{
13+
public class MasterTemplateLink
14+
{
15+
public string Uri { get; set; }
16+
public string ContentVersion { get; set; }
17+
}
18+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
// --------------------------------------------------------------------------
2+
// <copyright file="MasterTemplateProperties.cs" company="Microsoft">
3+
// Copyright (c) Microsoft Corporation. All rights reserved.
4+
// </copyright>
5+
// --------------------------------------------------------------------------
6+
7+
using System;
8+
using System.Collections.Generic;
9+
using System.Text;
10+
using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Abstractions;
11+
12+
namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Master
13+
{
14+
public class MasterTemplateProperties
15+
{
16+
public string Mode { get; set; }
17+
public MasterTemplateLink TemplateLink { get; set; }
18+
public Dictionary<string, TemplateParameterProperties> Parameters { get; set; }
19+
}
20+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Abstractions;
2+
using System.Collections.Generic;
3+
4+
namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Master
5+
{
6+
public class MasterTemplateResource : TemplateResource
7+
{
8+
public MasterTemplateProperties Properties { get; set; }
9+
}
10+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
// --------------------------------------------------------------------------
2+
// <copyright file="MasterTemplateResources.cs" company="Microsoft">
3+
// Copyright (c) Microsoft Corporation. All rights reserved.
4+
// </copyright>
5+
// --------------------------------------------------------------------------
6+
7+
using System.Collections.Generic;
8+
using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Extensions;
9+
using Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Abstractions;
10+
11+
namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates.Master
12+
{
13+
public class MasterTemplateResources : ITemplateResources
14+
{
15+
public List<MasterTemplateResource> DeploymentResources { get; set; } = new();
16+
17+
public TemplateResource[] BuildTemplateResources()
18+
{
19+
return this.DeploymentResources.ToArray();
20+
}
21+
22+
public bool HasContent()
23+
{
24+
return !this.DeploymentResources.IsNullOrEmpty();
25+
}
26+
}
27+
}

src/ArmTemplates/Common/Templates/NamedValues/NamedValueTemplateResource.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ namespace Microsoft.Azure.Management.ApiManagement.ArmTemplates.Common.Templates
44
{
55
public class NamedValueTemplateResource : TemplateResource
66
{
7+
public string OriginalName { get; set; }
8+
79
public NamedValueProperties Properties { get; set; }
810
}
911
}

src/ArmTemplates/Creator/TemplateCreators/APITemplateCreator.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,12 +84,12 @@ public async Task<Template> CreateAPITemplateAsync(APIConfig api, bool isSplit,
8484
// add parameters
8585
apiTemplate.Parameters = new Dictionary<string, TemplateParameterProperties>
8686
{
87-
{ ParameterNames.ApimServiceName, new TemplateParameterProperties(){ type = "string" } }
87+
{ ParameterNames.ApimServiceName, new TemplateParameterProperties(){ Type = "string" } }
8888
};
8989

9090
if (!string.IsNullOrEmpty(api.serviceUrl))
9191
{
92-
apiTemplate.Parameters.Add(api.name + "-ServiceUrl", new TemplateParameterProperties() { type = "string" });
92+
apiTemplate.Parameters.Add(api.name + "-ServiceUrl", new TemplateParameterProperties() { Type = "string" });
9393
}
9494

9595
List<TemplateResource> resources = new List<TemplateResource>();

src/ArmTemplates/Creator/TemplateCreators/APIVersionSetTemplateCreator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public Template CreateAPIVersionSetTemplate(CreatorConfig creatorConfig)
2424
// add parameters
2525
apiVersionSetTemplate.Parameters = new Dictionary<string, TemplateParameterProperties>
2626
{
27-
{ ParameterNames.ApimServiceName, new TemplateParameterProperties(){ type = "string" } }
27+
{ ParameterNames.ApimServiceName, new TemplateParameterProperties(){ Type = "string" } }
2828
};
2929

3030
List<TemplateResource> resources = new List<TemplateResource>();

src/ArmTemplates/Creator/TemplateCreators/AuthorizationServerTemplateCreator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public Template CreateAuthorizationServerTemplate(CreatorConfig creatorConfig)
2424
// add parameters
2525
authorizationTemplate.Parameters = new Dictionary<string, TemplateParameterProperties>
2626
{
27-
{ ParameterNames.ApimServiceName, new TemplateParameterProperties(){ type = "string" } }
27+
{ ParameterNames.ApimServiceName, new TemplateParameterProperties(){ Type = "string" } }
2828
};
2929

3030
List<TemplateResource> resources = new List<TemplateResource>();

src/ArmTemplates/Creator/TemplateCreators/BackendTemplateCreator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public Template CreateBackendTemplate(CreatorConfig creatorConfig)
2424
// add parameters
2525
backendTemplate.Parameters = new Dictionary<string, TemplateParameterProperties>
2626
{
27-
{ ParameterNames.ApimServiceName, new TemplateParameterProperties(){ type = "string" } }
27+
{ ParameterNames.ApimServiceName, new TemplateParameterProperties(){ Type = "string" } }
2828
};
2929

3030
List<TemplateResource> resources = new List<TemplateResource>();

src/ArmTemplates/Creator/TemplateCreators/LoggerTemplateCreator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public Template CreateLoggerTemplate(CreatorConfig creatorConfig)
2424
// add parameters
2525
loggerTemplate.Parameters = new Dictionary<string, TemplateParameterProperties>
2626
{
27-
{ ParameterNames.ApimServiceName, new TemplateParameterProperties(){ type = "string" } }
27+
{ ParameterNames.ApimServiceName, new TemplateParameterProperties(){ Type = "string" } }
2828
};
2929

3030
List<TemplateResource> resources = new List<TemplateResource>();

0 commit comments

Comments
 (0)