Replace scim Me terraform call with go sdk (#46)

This PR:
1. Replaces scim.Me call to use the go SDK instead of the terraform
client
2. Removes terraform client from bricks project

Tested manually that the scim.Me call works now and returns the correct
user
go build works
This commit is contained in:
shreyas-goenka 2022-09-08 15:50:00 +02:00 committed by GitHub
parent d829ce36d5
commit 21bc774491
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 15 additions and 28 deletions

View File

@ -1,12 +1,9 @@
package sync package sync
import ( import (
"context"
"fmt" "fmt"
"io"
"log" "log"
"path" "path"
"strings"
"time" "time"
"github.com/databricks/bricks/cmd/root" "github.com/databricks/bricks/cmd/root"
@ -60,14 +57,14 @@ var syncCmd = &cobra.Command{
}, },
} }
func ImportFile(ctx context.Context, path string, content io.Reader) error { // func ImportFile(ctx context.Context, path string, content io.Reader) error {
client := project.Current.Client() // client := project.Current.Client()
apiPath := fmt.Sprintf( // apiPath := fmt.Sprintf(
"/workspace-files/import-file/%s?overwrite=true", // "/workspace-files/import-file/%s?overwrite=true",
strings.TrimLeft(path, "/")) // strings.TrimLeft(path, "/"))
// TODO: change upstream client to support io.Reader as body // // TODO: change upstream client to support io.Reader as body
return client.Post(ctx, apiPath, content, nil) // return client.Post(ctx, apiPath, content, nil)
} // }
// project files polling interval // project files polling interval
var interval *time.Duration var interval *time.Duration

@ -1 +1 @@
Subproject commit 9e9cc8f8115b8d3cb9e778806066c7cffe5b9b76 Subproject commit 521bddb126b490fcf7fac4dcff7774d749871b0f

View File

@ -5,11 +5,11 @@ import (
"fmt" "fmt"
"sync" "sync"
"github.com/databricks/databricks-sdk-go/databricks"
"github.com/databricks/databricks-sdk-go/service/clusters" "github.com/databricks/databricks-sdk-go/service/clusters"
"github.com/databricks/databricks-sdk-go/service/commands" "github.com/databricks/databricks-sdk-go/service/commands"
"github.com/databricks/databricks-sdk-go/service/scim"
"github.com/databricks/databricks-sdk-go/workspaces" "github.com/databricks/databricks-sdk-go/workspaces"
"github.com/databrickslabs/terraform-provider-databricks/common"
"github.com/databrickslabs/terraform-provider-databricks/scim"
) )
// Current CLI application state - fixure out // Current CLI application state - fixure out
@ -21,7 +21,6 @@ type inner struct {
project *Project project *Project
wsc *workspaces.WorkspacesClient wsc *workspaces.WorkspacesClient
client *common.DatabricksClient
me *scim.User me *scim.User
} }
@ -29,15 +28,11 @@ func (i *inner) init() {
i.mu.Lock() i.mu.Lock()
defer i.mu.Unlock() defer i.mu.Unlock()
i.once.Do(func() { i.once.Do(func() {
client := &common.DatabricksClient{}
i.client = client
i.wsc = workspaces.New()
prj, err := loadProjectConf() prj, err := loadProjectConf()
i.wsc = workspaces.New(&databricks.Config{Profile: prj.Profile})
if err != nil { if err != nil {
panic(err) panic(err)
} }
client.Profile = prj.Profile // Databricks CLI profile
err = client.Configure()
if err != nil { if err != nil {
panic(err) panic(err)
} }
@ -45,11 +40,6 @@ func (i *inner) init() {
}) })
} }
func (i *inner) Client() *common.DatabricksClient {
i.init()
return i.client
}
func (i *inner) Project() *Project { func (i *inner) Project() *Project {
i.init() i.init()
return i.project return i.project
@ -68,12 +58,12 @@ func (i *inner) Me() *scim.User {
if i.me != nil { if i.me != nil {
return i.me return i.me
} }
me, err := scim.NewUsersAPI(context.Background(), i.Client()).Me() me, err := i.wsc.CurrentUser.Me(context.Background())
if err != nil { if err != nil {
panic(err) panic(err)
} }
i.me = &me i.me = me
return &me return me
} }
func (i *inner) DeploymentIsolationPrefix() string { func (i *inner) DeploymentIsolationPrefix() string {