Explorar o código

Merge pull request #1035 from kubecost/sean/bugfix/govcloud

Sean/bugfix/govcloud
Sean Holcomb %!s(int64=4) %!d(string=hai) anos
pai
achega
7be87ce92c
Modificáronse 1 ficheiros con 18 adicións e 3 borrados
  1. 18 3
      pkg/cloud/azureprovider.go

+ 18 - 3
pkg/cloud/azureprovider.go

@@ -764,8 +764,11 @@ func (az *Azure) DownloadPricingData() error {
 
 
 	var authorizer autorest.Authorizer
 	var authorizer autorest.Authorizer
 
 
+	azureEnv := determineCloudByRegion(config.AzureBillingRegion)
+
+
 	if config.AzureClientID != "" && config.AzureClientSecret != "" && config.AzureTenantID != "" {
 	if config.AzureClientID != "" && config.AzureClientSecret != "" && config.AzureTenantID != "" {
-		credentialsConfig := auth.NewClientCredentialsConfig(config.AzureClientID, config.AzureClientSecret, config.AzureTenantID)
+		credentialsConfig := NewClientCredentialsConfig(config.AzureClientID, config.AzureClientSecret, config.AzureTenantID, azureEnv)
 		a, err := credentialsConfig.Authorizer()
 		a, err := credentialsConfig.Authorizer()
 		if err != nil {
 		if err != nil {
 			az.RateCardPricingError = err
 			az.RateCardPricingError = err
@@ -777,8 +780,8 @@ func (az *Azure) DownloadPricingData() error {
 	if authorizer == nil {
 	if authorizer == nil {
 		a, err := auth.NewAuthorizerFromEnvironment()
 		a, err := auth.NewAuthorizerFromEnvironment()
 		authorizer = a
 		authorizer = a
-		if err != nil { // Failed to create authorizer from environment, try from file
-			a, err := auth.NewAuthorizerFromFile(determineCloudByRegion(config.AzureBillingRegion).ResourceManagerEndpoint)
+		if err != nil {
+			a, err := auth.NewAuthorizerFromFile(azureEnv.ResourceManagerEndpoint)
 			if err != nil {
 			if err != nil {
 				az.RateCardPricingError = err
 				az.RateCardPricingError = err
 				return err
 				return err
@@ -956,6 +959,18 @@ func determineCloudByRegion(region string) azure.Environment {
 	return azure.PublicCloud
 	return azure.PublicCloud
 }
 }
 
 
+// NewClientCredentialsConfig creates an AuthorizerConfig object configured to obtain an Authorizer through Client Credentials.
+func NewClientCredentialsConfig(clientID string, clientSecret string, tenantID string, env azure.Environment) auth.ClientCredentialsConfig {
+	return auth.ClientCredentialsConfig{
+		ClientID:     clientID,
+		ClientSecret: clientSecret,
+		TenantID:     tenantID,
+		Resource:     env.ResourceManagerEndpoint,
+		AADEndpoint:  env.ActiveDirectoryEndpoint,
+	}
+}
+
+
 func (az *Azure) addPricing(features string, azurePricing *AzurePricing) {
 func (az *Azure) addPricing(features string, azurePricing *AzurePricing) {
 	if az.Pricing == nil {
 	if az.Pricing == nil {
 		az.Pricing = map[string]*AzurePricing{}
 		az.Pricing = map[string]*AzurePricing{}