func()

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
}