Skip to content

Commit 320ce5c

Browse files
committed
Parse and construct Azure resource id with Azure SDK
So this will offload ID format maintainance to SDK
1 parent 1bfa5fe commit 320ce5c

File tree

1 file changed

+16
-11
lines changed

1 file changed

+16
-11
lines changed

common/azure_auth.go

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import (
66
"log"
77
"net/http"
88
"strconv"
9-
"strings"
109
"sync"
1110
"time"
1211

@@ -27,8 +26,7 @@ type AzureAuth struct {
2726
ResourceGroup string
2827
SubscriptionID string
2928

30-
// azurerm_databricks_workspace.this.id ->
31-
// /subscriptions/{subscription}/resourceGroups/{rg}/providers/Microsoft.Databricks/workspaces/{name}
29+
// azurerm_databricks_workspace.this.id
3230
ResourceID string
3331

3432
ClientSecret string
@@ -69,22 +67,29 @@ var authorizerMutex sync.Mutex
6967

7068
func (aa *AzureAuth) resourceID() string {
7169
if aa.ResourceID != "" {
72-
if aa.SubscriptionID == "" || aa.ResourceGroup == "" || aa.WorkspaceName == "" {
73-
split := strings.Split(aa.ResourceID, "/")
74-
if len(split) != 9 {
75-
log.Printf("[WARN] Resource ID doesn't have exactly 9 elements: %s", aa.ResourceID)
70+
if aa.SubscriptionID == "" {
71+
res, err := azure.ParseResourceID(aa.ResourceID)
72+
if err != nil {
73+
log.Printf("[ERROR] %s", err)
7674
return ""
7775
}
78-
aa.SubscriptionID, aa.ResourceGroup, aa.WorkspaceName = split[2], split[4], split[8]
76+
aa.SubscriptionID = res.SubscriptionID
77+
aa.ResourceGroup = res.ResourceGroup
78+
aa.WorkspaceName = res.ResourceName
7979
}
8080
return aa.ResourceID
8181
}
8282
if aa.SubscriptionID == "" || aa.ResourceGroup == "" || aa.WorkspaceName == "" {
8383
return ""
8484
}
85-
aa.ResourceID = fmt.Sprintf(
86-
"/subscriptions/%s/resourceGroups/%s/providers/Microsoft.Databricks/workspaces/%s",
87-
aa.SubscriptionID, aa.ResourceGroup, aa.WorkspaceName)
85+
r := azure.Resource{
86+
SubscriptionID: aa.SubscriptionID,
87+
ResourceGroup: aa.ResourceGroup,
88+
Provider: "Microsoft.Databricks",
89+
ResourceType: "workspaces",
90+
ResourceName: aa.WorkspaceName,
91+
}
92+
aa.ResourceID = r.String()
8893
return aa.ResourceID
8994
}
9095

0 commit comments

Comments
 (0)