Skip to content

Commit

Permalink
injected version into user agent and refactored config to be public a…
Browse files Browse the repository at this point in the history
…nd accessible outside of service package
  • Loading branch information
stikkireddy committed Apr 21, 2020
1 parent 36022ef commit b006aa8
Show file tree
Hide file tree
Showing 7 changed files with 21 additions and 17 deletions.
4 changes: 2 additions & 2 deletions .goreleaser.yml
Expand Up @@ -8,7 +8,7 @@ before:
builds:
- env:
- CGO_ENABLED=0
binary: terraform-provider-databricks_{{ replace .Version "-next" "" }}
binary: terraform-provider-databricks_{{ .Version }}
goos:
- darwin
- linux
Expand All @@ -34,7 +34,7 @@ archives:
checksum:
name_template: 'checksums.txt'
snapshot:
name_template: "{{ .Tag }}-next"
name_template: "{{ .Tag }}-SNAPSHOT-{{ .ShortCommit }}"
changelog:
sort: asc
filters:
Expand Down
3 changes: 1 addition & 2 deletions Makefile
Expand Up @@ -24,8 +24,7 @@ build: fmt

lint:
@echo "==> Linting source code with golint..."
@golint -set_exit_status ./databricks/...
@golint -set_exit_status ./client/...
@golint -set_exit_status ./databricks/... ./client/...

fmt: lint
@echo "==> Formatting source code with gofmt..."
Expand Down
6 changes: 3 additions & 3 deletions client/service/apis.go
Expand Up @@ -6,12 +6,12 @@ var scimHeaders = map[string]string{

// DBApiClient is the client struct that contains clients for all the services available on Databricks
type DBApiClient struct {
config *DBApiClientConfig
Config *DBApiClientConfig
}

// SetConfig initializes the client
func (c *DBApiClient) SetConfig(clientConfig *DBApiClientConfig) DBApiClient {
c.config = clientConfig
c.Config = clientConfig
clientConfig.Setup()
return *c
}
Expand Down Expand Up @@ -87,5 +87,5 @@ func (c DBApiClient) Commands() CommandsAPI {
}

func (c DBApiClient) performQuery(method, path string, apiVersion string, headers map[string]string, data interface{}, secretsMask *SecretsMask) ([]byte, error) {
return PerformQuery(c.config, method, path, apiVersion, headers, true, false, data, secretsMask)
return PerformQuery(c.Config, method, path, apiVersion, headers, true, false, data, secretsMask)
}
2 changes: 1 addition & 1 deletion client/service/main_test.go
Expand Up @@ -51,7 +51,7 @@ func GetIntegrationDBAPIClient() *DBApiClient {
}

func GetCloudInstanceType(c *DBApiClient) string {
if strings.Contains(c.config.Host, "azure") {
if strings.Contains(c.Config.Host, "azure") {
return "Standard_DS3_v2"
}
return "m4.large"
Expand Down
9 changes: 5 additions & 4 deletions databricks/provider.go
@@ -1,6 +1,7 @@
package databricks

import (
"fmt"
"github.com/databrickslabs/databricks-terraform/client/service"
"github.com/hashicorp/terraform-plugin-sdk/helper/schema"
"github.com/hashicorp/terraform-plugin-sdk/terraform"
Expand All @@ -9,7 +10,7 @@ import (
)

// Provider returns the entire terraform provider object
func Provider() terraform.ResourceProvider {
func Provider(version string) terraform.ResourceProvider {
provider := &schema.Provider{
DataSourcesMap: map[string]*schema.Resource{
"databricks_notebook": dataSourceNotebook(),
Expand Down Expand Up @@ -96,13 +97,13 @@ func Provider() terraform.ResourceProvider {
// We can therefore assume that if it's missing it's 0.10 or 0.11
terraformVersion = "0.11+compatible"
}
return providerConfigure(d, terraformVersion)
return providerConfigure(d, version)
}

return provider
}

func providerConfigure(d *schema.ResourceData, s string) (interface{}, error) {
func providerConfigure(d *schema.ResourceData, providerVersion string) (interface{}, error) {
var config service.DBApiClientConfig
if azureAuth, ok := d.GetOk("azure_auth"); !ok {
if host, ok := d.GetOk("host"); ok {
Expand Down Expand Up @@ -166,7 +167,7 @@ func providerConfigure(d *schema.ResourceData, s string) (interface{}, error) {

//TODO: Bake the version of the provider using -ldflags to tell the golang linker to send
//version information from go-releaser
config.UserAgent = "databricks-tf-provider"
config.UserAgent = fmt.Sprintf("databricks-tf-provider-%s", providerVersion)
var dbClient service.DBApiClient
dbClient.SetConfig(&config)
return dbClient, nil
Expand Down
8 changes: 4 additions & 4 deletions databricks/resource_databricks_dbfs_file_sync.go
Expand Up @@ -62,7 +62,7 @@ func resourceDBFSFileSyncCreate(d *schema.ResourceData, m interface{}) error {
}
}

apiClient := parseSchemaToDBAPIClient(d)
apiClient := parseSchemaToDBAPIClient(d, &client)
err := client.DBFS().Copy(srcPath, tgtPath, apiClient, true)
if err != nil {
return err
Expand Down Expand Up @@ -101,7 +101,7 @@ func resourceDBFSFileSyncRead(d *schema.ResourceData, m interface{}) error {
tgtPath := d.Get("tgt_path").(string)

var srcAPIDBFSClient service.DBFSAPI
srcAPICLient := parseSchemaToDBAPIClient(d)
srcAPICLient := parseSchemaToDBAPIClient(d, &client)
if srcAPICLient != nil {
srcAPIDBFSClient = srcAPICLient.DBFS()
} else {
Expand Down Expand Up @@ -132,14 +132,14 @@ func resourceDBFSFileSyncDelete(d *schema.ResourceData, m interface{}) error {
return err
}

func parseSchemaToDBAPIClient(d *schema.ResourceData) *service.DBApiClient {
func parseSchemaToDBAPIClient(d *schema.ResourceData, currentClient *service.DBApiClient) *service.DBApiClient {
host, hostOk := d.GetOk("host")
token, tokenOk := d.GetOk("token")
var config service.DBApiClientConfig
if hostOk && tokenOk {
config.Host = host.(string)
config.Token = token.(string)
config.UserAgent = "databricks-tf-provider"
config.UserAgent = currentClient.Config.UserAgent
var dbClient service.DBApiClient
dbClient.SetConfig(&config)
return &dbClient
Expand Down
6 changes: 5 additions & 1 deletion main.go
Expand Up @@ -6,10 +6,14 @@ import (
"github.com/hashicorp/terraform-plugin-sdk/terraform"
)

var (
version = "dev"
)

func main() {
plugin.Serve(&plugin.ServeOpts{
ProviderFunc: func() terraform.ResourceProvider {
return databricks.Provider()
return databricks.Provider(version)
},
})
}

0 comments on commit b006aa8

Please sign in to comment.