mirror of
https://github.com/grafana/grafana.git
synced 2024-11-26 02:40:26 -06:00
74 lines
1.5 KiB
Go
74 lines
1.5 KiB
Go
package setting
|
|
|
|
import "strings"
|
|
|
|
const (
|
|
AzurePublic = "AzureCloud"
|
|
AzureChina = "AzureChinaCloud"
|
|
AzureUSGovernment = "AzureUSGovernment"
|
|
AzureGermany = "AzureGermanCloud"
|
|
)
|
|
|
|
type AzureSettings struct {
|
|
Cloud string
|
|
ManagedIdentityEnabled bool
|
|
ManagedIdentityClientId string
|
|
}
|
|
|
|
func (cfg *Cfg) readAzureSettings() {
|
|
azureSection := cfg.Raw.Section("azure")
|
|
|
|
// Cloud
|
|
cloudName := azureSection.Key("cloud").MustString(AzurePublic)
|
|
cfg.Azure.Cloud = normalizeAzureCloud(cloudName)
|
|
|
|
// Managed Identity
|
|
cfg.Azure.ManagedIdentityEnabled = azureSection.Key("managed_identity_enabled").MustBool(false)
|
|
cfg.Azure.ManagedIdentityClientId = azureSection.Key("managed_identity_client_id").String()
|
|
}
|
|
|
|
func normalizeAzureCloud(cloudName string) string {
|
|
switch strings.ToLower(cloudName) {
|
|
// Public
|
|
case "azurecloud":
|
|
fallthrough
|
|
case "azurepublic":
|
|
fallthrough
|
|
case "azurepubliccloud":
|
|
fallthrough
|
|
case "public":
|
|
return AzurePublic
|
|
|
|
// China
|
|
case "azurechina":
|
|
fallthrough
|
|
case "azurechinacloud":
|
|
fallthrough
|
|
case "china":
|
|
return AzureChina
|
|
|
|
// US Government
|
|
case "azureusgovernment":
|
|
fallthrough
|
|
case "azureusgovernmentcloud":
|
|
fallthrough
|
|
case "usgov":
|
|
fallthrough
|
|
case "usgovernment":
|
|
return AzureUSGovernment
|
|
|
|
// Germany
|
|
case "azuregermancloud":
|
|
fallthrough
|
|
case "azuregermany":
|
|
fallthrough
|
|
case "german":
|
|
fallthrough
|
|
case "germany":
|
|
return AzureGermany
|
|
}
|
|
|
|
// Pass the name unchanged if it's not known
|
|
return cloudName
|
|
}
|