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
7068func (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