in pkg/infrastructure/authorizationCheckers/ARMTemplateWhatIf/armTemplateWhatIfAuthorizationChecker.go [74:128]
func (a *armWhatIfConfig) CreateEmptyDeployment(client *http.Client, deploymentName string, bearerToken string, mpfConfig domain.MPFConfig) error {
var deploymentUri string
if a.armConfig.SubscriptionScoped {
deploymentUri = fmt.Sprintf("https://management.azure.com/subscriptions/%s/providers/Microsoft.Resources/deployments/%s?api-version=2021-04-01", mpfConfig.SubscriptionID, deploymentName)
} else {
deploymentUri = fmt.Sprintf("https://management.azure.com/subscriptions/%s/resourcegroups/%s/providers/Microsoft.Resources/deployments/%s?api-version=2020-10-01", mpfConfig.SubscriptionID, mpfConfig.ResourceGroup.ResourceGroupName, deploymentName)
}
log.Info("Creating empty deployment...")
log.Debug(deploymentUri)
emptyTempl, err := mpfSharedUtils.ReadJson("../samples/templates/empty.json")
if err != nil {
return err
}
emptyTemplStdFmtMap := map[string]interface{}{
"properties": map[string]interface{}{
"mode": "Incremental",
"template": emptyTempl,
"parameters": map[string]interface{}{},
},
}
// convert bodyJSON to string
emptyTemplJSONBytes, err := json.Marshal(emptyTemplStdFmtMap)
if err != nil {
return err
}
emptyDeploymentJSONString := string(emptyTemplJSONBytes)
deploymentReq, err := http.NewRequest("PUT", deploymentUri, bytes.NewBufferString(emptyDeploymentJSONString))
if err != nil {
return err
}
deploymentReq.Header.Set("Content-Type", "application/json")
deploymentReq.Header.Set("Accept", "application/json")
deploymentReq.Header.Set("User-Agent", "Go HTTP Client")
// add bearer token to header
deploymentReq.Header.Add("Authorization", "Bearer "+bearerToken)
log.Debugf("%v", deploymentReq)
// make deploymentReq
deploymentResp, err := client.Do(deploymentReq)
if err != nil {
return err
}
log.Debugf("%v", deploymentResp)
defer deploymentResp.Body.Close()
return nil
}