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

Commit b511ac6

Browse files
committed
add destination apim name cli argument, write to parameters file
1 parent ab1722a commit b511ac6

File tree

3 files changed

+23
-19
lines changed

3 files changed

+23
-19
lines changed

src/APIM_ARMTemplate/apimtemplate/Commands/Extract.cs

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@ public ExtractCommand()
1414
this.Name = GlobalConstants.ExtractName;
1515
this.Description = GlobalConstants.ExtractDescription;
1616

17-
var apiManagementName = this.Option("--name <apimname>", "API Management name", CommandOptionType.SingleValue);
17+
var sourceApimName = this.Option("--sourceApimName <sourceApimName>", "Source API Management name", CommandOptionType.SingleValue);
18+
var destinationAPIManagementName = this.Option("--destinationApimName <destinationApimName>", "Destination API Management name", CommandOptionType.SingleValue);
1819
var resourceGroupName = this.Option("--resourceGroup <resourceGroup>", "Resource Group name", CommandOptionType.SingleValue);
1920
var fileFolderName = this.Option("--fileFolder <filefolder>", "ARM Template files folder", CommandOptionType.SingleValue);
2021
var apiName = this.Option("--apiName <apiName>", "API name", CommandOptionType.SingleValue);
@@ -24,13 +25,15 @@ public ExtractCommand()
2425

2526
this.OnExecute(async () =>
2627
{
27-
if (!apiManagementName.HasValue()) throw new Exception("Missing parameter <apimname>.");
28+
if (!sourceApimName.HasValue()) throw new Exception("Missing parameter <sourceApimName>.");
29+
if (!destinationAPIManagementName.HasValue()) throw new Exception("Missing parameter <destinationApimName>.");
2830
if (!resourceGroupName.HasValue()) throw new Exception("Missing parameter <resourceGroup>.");
2931
if (!fileFolderName.HasValue()) throw new Exception("Missing parameter <filefolder>.");
3032

3133
// isolate cli parameters
3234
string resourceGroup = resourceGroupName.Values[0].ToString();
33-
string apimname = apiManagementName.Values[0].ToString();
35+
string sourceApim = sourceApimName.Values[0].ToString();
36+
string destinationApim = destinationAPIManagementName.Values[0].ToString();
3437
string fileFolder = fileFolderName.Values[0].ToString();
3538
string linkedBaseUrl = linkedBaseUrlName.Values[0].ToString();
3639
string singleApiName = null;
@@ -42,7 +45,7 @@ public ExtractCommand()
4245

4346
Console.WriteLine("API Management Template");
4447
Console.WriteLine();
45-
Console.WriteLine("Connecting to {0} API Management Service on {1} Resource Group ...", apimname, resourceGroup);
48+
Console.WriteLine("Connecting to {0} API Management Service on {1} Resource Group ...", sourceApim, resourceGroup);
4649
if (singleApiName != null)
4750
{
4851
Console.WriteLine("Executing extraction for {0} API ...", singleApiName);
@@ -55,7 +58,7 @@ public ExtractCommand()
5558
// initialize file helper classes
5659
FileWriter fileWriter = new FileWriter();
5760
FileNameGenerator fileNameGenerator = new FileNameGenerator();
58-
FileNames fileNames = fileNameGenerator.GenerateFileNames(apimname);
61+
FileNames fileNames = fileNameGenerator.GenerateFileNames(sourceApim);
5962

6063
// initialize entity extractor classes
6164
APIExtractor apiExtractor = new APIExtractor();
@@ -68,21 +71,21 @@ public ExtractCommand()
6871
MasterTemplateExtractor masterTemplateExtractor = new MasterTemplateExtractor();
6972

7073
// extract templates from apim service
71-
Template apiTemplate = await apiExtractor.GenerateAPIsARMTemplate(apimname, resourceGroup, fileFolder, singleApiName);
74+
Template apiTemplate = await apiExtractor.GenerateAPIsARMTemplate(sourceApim, resourceGroup, fileFolder, singleApiName);
7275
List<TemplateResource> apiTemplateResources = apiTemplate.resources.ToList();
73-
Template apiVersionSetTemplate = await apiVersionSetExtractor.GenerateAPIVersionSetsARMTemplate(apimname, resourceGroup, singleApiName, apiTemplateResources);
74-
Template authorizationServerTemplate = await authorizationServerExtractor.GenerateAuthorizationServersARMTemplate(apimname, resourceGroup, singleApiName, apiTemplateResources);
75-
Template loggerTemplate = await loggerExtractor.GenerateLoggerTemplate(apimname, resourceGroup, singleApiName, apiTemplateResources);
76-
Template productTemplate = await productExtractor.GenerateProductsARMTemplate(apimname, resourceGroup, singleApiName, apiTemplateResources);
77-
Template namedValueTemplate = await propertyExtractor.GenerateNamedValuesTemplate(apimname, resourceGroup, singleApiName, apiTemplateResources);
76+
Template apiVersionSetTemplate = await apiVersionSetExtractor.GenerateAPIVersionSetsARMTemplate(sourceApim, resourceGroup, singleApiName, apiTemplateResources);
77+
Template authorizationServerTemplate = await authorizationServerExtractor.GenerateAuthorizationServersARMTemplate(sourceApim, resourceGroup, singleApiName, apiTemplateResources);
78+
Template loggerTemplate = await loggerExtractor.GenerateLoggerTemplate(sourceApim, resourceGroup, singleApiName, apiTemplateResources);
79+
Template productTemplate = await productExtractor.GenerateProductsARMTemplate(sourceApim, resourceGroup, singleApiName, apiTemplateResources);
80+
Template namedValueTemplate = await propertyExtractor.GenerateNamedValuesTemplate(sourceApim, resourceGroup, singleApiName, apiTemplateResources);
7881
List<TemplateResource> namedValueResources = namedValueTemplate.resources.ToList();
79-
Template backendTemplate = await backendExtractor.GenerateBackendsARMTemplate(apimname, resourceGroup, singleApiName, apiTemplateResources, namedValueResources);
82+
Template backendTemplate = await backendExtractor.GenerateBackendsARMTemplate(sourceApim, resourceGroup, singleApiName, apiTemplateResources, namedValueResources);
8083

8184
// create parameters file
82-
Template templateParameters = masterTemplateExtractor.CreateMasterTemplateParameterValues(apimname, linkedBaseUrl);
85+
Template templateParameters = masterTemplateExtractor.CreateMasterTemplateParameterValues(destinationApim, linkedBaseUrl);
8386

8487
// write templates to output file location
85-
string apiFileName = fileNameGenerator.GenerateExtractorAPIFileName(singleApiName, apimname);
88+
string apiFileName = fileNameGenerator.GenerateExtractorAPIFileName(singleApiName, sourceApim);
8689
fileWriter.WriteJSONToFile(apiTemplate, String.Concat(@fileFolder, apiFileName));
8790
fileWriter.WriteJSONToFile(apiVersionSetTemplate, String.Concat(@fileFolder, fileNames.apiVersionSets));
8891
fileWriter.WriteJSONToFile(authorizationServerTemplate, String.Concat(@fileFolder, fileNames.authorizationServers));
@@ -94,7 +97,7 @@ public ExtractCommand()
9497
if (linkedBaseUrl != null)
9598
{
9699
// create a master template that links to all other templates
97-
Template masterTemplate = masterTemplateExtractor.GenerateLinkedMasterTemplate(apiTemplate, apiVersionSetTemplate, productTemplate, loggerTemplate, backendTemplate, authorizationServerTemplate, namedValueTemplate, fileNames);
100+
Template masterTemplate = masterTemplateExtractor.GenerateLinkedMasterTemplate(apiTemplate, apiVersionSetTemplate, productTemplate, loggerTemplate, backendTemplate, authorizationServerTemplate, namedValueTemplate, fileNames, apiFileName);
98101
fileWriter.WriteJSONToFile(masterTemplate, String.Concat(@fileFolder, fileNames.linkedMaster));
99102
}
100103

src/APIM_ARMTemplate/apimtemplate/Extractor/EntityExtractors/MasterTemplateExtractor.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,8 @@ public Template GenerateLinkedMasterTemplate(Template apiTemplate,
1515
Template backendsTemplate,
1616
Template authorizationServersTemplate,
1717
Template namedValuesTemplate,
18-
FileNames fileNames)
18+
FileNames fileNames,
19+
string apiFileName)
1920
{
2021
// create empty template
2122
Template masterTemplate = GenerateEmptyTemplate();
@@ -74,8 +75,8 @@ public Template GenerateLinkedMasterTemplate(Template apiTemplate,
7475
// api
7576
if (apiTemplate != null)
7677
{
77-
string authorizationServersUri = $"[concat(parameters('LinkedTemplatesBaseUrl'), '{fileNames.authorizationServers}')]";
78-
resources.Add(this.CreateLinkedMasterTemplateResource("authorizationServersTemplate", authorizationServersUri, GenerateAPIResourceDependencies(apiTemplate, apiVersionSetTemplate, productsTemplate, loggersTemplate, backendsTemplate, authorizationServersTemplate, namedValueDeploymentResourceName)));
78+
string apisUri = $"[concat(parameters('LinkedTemplatesBaseUrl'), '{apiFileName}')]";
79+
resources.Add(this.CreateLinkedMasterTemplateResource("apisTemplate", apisUri, GenerateAPIResourceDependencies(apiTemplate, apiVersionSetTemplate, productsTemplate, loggersTemplate, backendsTemplate, authorizationServersTemplate, namedValueDeploymentResourceName)));
7980
}
8081

8182
masterTemplate.resources = resources.ToArray();

src/APIM_ARMTemplate/apimtemplate/Properties/launchSettings.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"profiles": {
33
"apimtemplate": {
44
"commandName": "Project",
5-
"commandLineArgs": "create --configFile ./Creator/ExampleFiles/YAMLConfigs/validTesting.yml"
5+
"commandLineArgs": "extract --sourceApimName LucasBlankLinked --destinationApimName LucasBlankUnlinked --resourceGroup LucasHuetHudsonInternal --fileFolder C:\\Users\\lucashh\\Desktop\\Projects\\APIM-ARM\\GeneratedTemplates\\Extractor\\Full --linkedBaseUrl https://lucasarmtemplates.blob.core.windows.net/linked-templates "
66
}
77
}
88
}

0 commit comments

Comments
 (0)