in pkg/providers/azcli.go [63:90]
func (az *AzClient) ValidateAzCliInstalled() error {
log.Debug("Checking that Azure Cli is installed...")
_, err := az.CommandRunner.RunCommand("az")
if err != nil {
return errors.New("az cli not installed. Find installation instructions at this link: https://docs.microsoft.com/en-us/cli/azure/install-azure-cli")
}
azCliVersion, err := az.GetAzCliVersion()
if err != nil {
return fmt.Errorf("getting azcli version: %w", err)
}
currentVersion, err := version.NewVersion(azCliVersion)
if err != nil {
return fmt.Errorf("parsing azcli version: %w", err)
}
constraints, err := version.NewConstraint(">= 2.37")
if err != nil {
return fmt.Errorf("getting azcli version constraint: %w", err)
}
if !constraints.Check(currentVersion) {
if ans := az.GetAzUpgrade(); ans == "no" {
return fmt.Errorf("az cli version must be at least 2.37.0, but current version is %s", azCliVersion)
}
az.UpgradeAzCli()
}
return nil
}