in pkg/providers/azure.go [88:127]
func (az *AzClient) CreateAzApp(appName string) (string, error) {
log.Debug("Commencing Azure app creation...")
start := time.Now()
log.Debug(start)
createdAppId := ""
createApp := func() error {
out, err := az.CommandRunner.RunCommand("az", "ad", "app", "create", "--only-show-errors", "--display-name", appName)
if err != nil {
log.Printf("%s\n", out)
return err
}
if az.AzAppExists(appName) {
var azApp map[string]interface{}
if err := json.Unmarshal([]byte(out), &azApp); err != nil {
return err
}
createdAppId = fmt.Sprint(azApp["appId"])
end := time.Since(start)
log.Debugf("App with appId '%s' created successfully!", createdAppId)
log.Debug(end)
return nil
}
return errors.New("app creation time has exceeded max elapsed time for exponential backoff")
}
backoff := bo.NewExponentialBackOff()
backoff.MaxElapsedTime = 5 * time.Second
err := bo.Retry(createApp, backoff)
if err != nil {
log.Debug(err)
return "", err
}
return createdAppId, nil
}