From 0f31a7d47988121ebc66b24b88d795ec93d33e08 Mon Sep 17 00:00:00 2001 From: Qu Xuan Date: Mon, 16 Mar 2020 20:08:27 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E8=B0=B7=E6=AD=8C?= =?UTF-8?q?=E4=BA=91=20cloud-provider-clirc=20=E6=98=BE=E7=A4=BA=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkg/multicloud/google/provider/provider.go | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/pkg/multicloud/google/provider/provider.go b/pkg/multicloud/google/provider/provider.go index 84e748b459..8b533d9e77 100644 --- a/pkg/multicloud/google/provider/provider.go +++ b/pkg/multicloud/google/provider/provider.go @@ -125,11 +125,25 @@ func (self *SGoogleProviderFactory) GetProvider(providerId, providerName, url, a }, nil } +func parseAccount(account, secret string) (projectId string, clientEmail string, privateKey string, privateKeyId string) { + accountInfo := strings.Split(account, "/") + if len(accountInfo) == 2 { + projectId, clientEmail = accountInfo[0], accountInfo[1] + } + secretInfo := strings.Split(secret, "/") + if len(secretInfo) >= 2 { + privateKeyId, privateKey = secretInfo[0], strings.Join(secretInfo[1:], "/") + } + return +} + func (self *SGoogleProviderFactory) GetClientRC(url, account, secret string) (map[string]string, error) { + projectId, clientEmail, privateKey, privateKeyId := parseAccount(account, secret) return map[string]string{ - "ALIYUN_ACCESS_KEY": account, - "ALIYUN_SECRET": secret, - "ALIYUN_REGION": google.GOOGLE_DEFAULT_REGION, + "GOOGLE_CLIENT_EMAIL": clientEmail, + "GOOGLE_PROJECT_ID": projectId, + "GOOGLE_PRIVATE_KEY_ID": privateKeyId, + "GOOGLE_PRIVATE_KEY": privateKey, }, nil }