@@ -19,7 +19,8 @@ public ExtractCommand()
19
19
var resourceGroupName = this . Option ( "--resourceGroup <resourceGroup>" , "Resource Group name" , CommandOptionType . SingleValue ) ;
20
20
var fileFolderName = this . Option ( "--fileFolder <filefolder>" , "ARM Template files folder" , CommandOptionType . SingleValue ) ;
21
21
var apiName = this . Option ( "--apiName <apiName>" , "API name" , CommandOptionType . SingleValue ) ;
22
- var linkedBaseUrlName = this . Option ( "--linkedBaseUrl <apiName>" , "Creates a master template with links" , CommandOptionType . SingleValue ) ;
22
+ var linkedBaseUrlName = this . Option ( "--linkedBaseUrl <linkedBaseUrl>" , "Creates a master template with links" , CommandOptionType . SingleValue ) ;
23
+ var policyXMLBaseUrlName = this . Option ( "--policyXMLBaseUrl <policyXMLBaseUrl>" , "Writes policies to local XML files that require deployment to remote folder" , CommandOptionType . SingleValue ) ;
23
24
24
25
this . HelpOption ( ) ;
25
26
@@ -35,7 +36,8 @@ public ExtractCommand()
35
36
string sourceApim = sourceApimName . Values [ 0 ] . ToString ( ) ;
36
37
string destinationApim = destinationAPIManagementName . Values [ 0 ] . ToString ( ) ;
37
38
string fileFolder = fileFolderName . Values [ 0 ] . ToString ( ) ;
38
- string linkedBaseUrl = linkedBaseUrlName . Values [ 0 ] . ToString ( ) ;
39
+ string linkedBaseUrl = linkedBaseUrlName . HasValue ( ) ? linkedBaseUrlName . Value ( ) . ToString ( ) : null ;
40
+ string policyXMLBaseUrl = policyXMLBaseUrlName . HasValue ( ) ? policyXMLBaseUrlName . Value ( ) . ToString ( ) : null ;
39
41
string singleApiName = null ;
40
42
41
43
if ( apiName . Values . Count > 0 )
@@ -71,18 +73,18 @@ public ExtractCommand()
71
73
MasterTemplateExtractor masterTemplateExtractor = new MasterTemplateExtractor ( ) ;
72
74
73
75
// extract templates from apim service
74
- Template apiTemplate = await apiExtractor . GenerateAPIsARMTemplate ( sourceApim , resourceGroup , fileFolder , singleApiName ) ;
76
+ Template apiTemplate = await apiExtractor . GenerateAPIsARMTemplate ( sourceApim , resourceGroup , fileFolder , singleApiName , policyXMLBaseUrl ) ;
75
77
List < TemplateResource > apiTemplateResources = apiTemplate . resources . ToList ( ) ;
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 ) ;
78
+ Template apiVersionSetTemplate = await apiVersionSetExtractor . GenerateAPIVersionSetsARMTemplate ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , policyXMLBaseUrl ) ;
79
+ Template authorizationServerTemplate = await authorizationServerExtractor . GenerateAuthorizationServersARMTemplate ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , policyXMLBaseUrl ) ;
80
+ Template loggerTemplate = await loggerExtractor . GenerateLoggerTemplate ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , policyXMLBaseUrl ) ;
81
+ Template productTemplate = await productExtractor . GenerateProductsARMTemplate ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , policyXMLBaseUrl ) ;
82
+ Template namedValueTemplate = await propertyExtractor . GenerateNamedValuesTemplate ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , policyXMLBaseUrl ) ;
81
83
List < TemplateResource > namedValueResources = namedValueTemplate . resources . ToList ( ) ;
82
- Template backendTemplate = await backendExtractor . GenerateBackendsARMTemplate ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , namedValueResources ) ;
84
+ Template backendTemplate = await backendExtractor . GenerateBackendsARMTemplate ( sourceApim , resourceGroup , singleApiName , apiTemplateResources , namedValueResources , policyXMLBaseUrl ) ;
83
85
84
86
// create parameters file
85
- Template templateParameters = masterTemplateExtractor . CreateMasterTemplateParameterValues ( destinationApim , linkedBaseUrl ) ;
87
+ Template templateParameters = masterTemplateExtractor . CreateMasterTemplateParameterValues ( destinationApim , linkedBaseUrl , policyXMLBaseUrl ) ;
86
88
87
89
// write templates to output file location
88
90
string apiFileName = fileNameGenerator . GenerateExtractorAPIFileName ( singleApiName , sourceApim ) ;
@@ -97,7 +99,7 @@ public ExtractCommand()
97
99
if ( linkedBaseUrl != null )
98
100
{
99
101
// create a master template that links to all other templates
100
- Template masterTemplate = masterTemplateExtractor . GenerateLinkedMasterTemplate ( apiTemplate , apiVersionSetTemplate , productTemplate , loggerTemplate , backendTemplate , authorizationServerTemplate , namedValueTemplate , fileNames , apiFileName ) ;
102
+ Template masterTemplate = masterTemplateExtractor . GenerateLinkedMasterTemplate ( apiTemplate , apiVersionSetTemplate , productTemplate , loggerTemplate , backendTemplate , authorizationServerTemplate , namedValueTemplate , fileNames , apiFileName , policyXMLBaseUrl ) ;
101
103
fileWriter . WriteJSONToFile ( masterTemplate , String . Concat ( @fileFolder , fileNames . linkedMaster ) ) ;
102
104
}
103
105
0 commit comments