common

package
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 29, 2021 License: Apache-2.0 Imports: 30 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultTruncateBytes      = 96
	DefaultRateLimitPerSecond = 15
	DefaultHTTPTimeoutSeconds = 60
)

Default settings

View Source
const (
	AzureDatabricksResourceID string = "2ff814a6-3304-4ab8-85cb-cd0e6f879c1d"
)

List of management information

Variables

View Source
var (

	// ResourceName is resource name without databricks_ prefix
	ResourceName contextKey = 1
	// Provider is the current instance of provider
	Provider contextKey = 2
	// Current is the current name of integration test
	Current contextKey = 3
)

Functions

func CleanupEnvironment

func CleanupEnvironment() func()

CleanupEnvironment backs up environment - use as `defer CleanupEnvironment()()` clears it and restores it in the end. It's meant strictly for "unit" tests as last resort, because it slows down parallel execution with mutex.

func ResetCommonEnvironmentClient

func ResetCommonEnvironmentClient()

ResetCommonEnvironmentClient resets test dummy

func Version

func Version() string

Version returns version of provider

Types

type APIError

type APIError struct {
	ErrorCode  string
	Message    string
	Resource   string
	StatusCode int
}

APIError is a generic struct for an api error on databricks

func NotFound added in v0.2.6

func NotFound(message string) APIError

NotFound returns properly formatted Not Found error

func (APIError) DocumentationURL

func (apiError APIError) DocumentationURL() string

DocumentationURL guesses doc link

func (APIError) Error

func (apiError APIError) Error() string

Error returns error message string instead of

func (APIError) IsMissing

func (apiError APIError) IsMissing() bool

IsMissing tells if it is missing resource

func (APIError) IsRetriable

func (apiError APIError) IsRetriable() bool

IsRetriable returns true if error is retriable

func (APIError) IsTooManyRequests

func (apiError APIError) IsTooManyRequests() bool

IsTooManyRequests shows rate exceeded limits

type APIErrorBody

type APIErrorBody struct {
	ErrorCode string `json:"error_code,omitempty"`
	Message   string `json:"message,omitempty"`
	// The following two are for scim api only
	// for RFC 7644 Section 3.7.3 https://tools.ietf.org/html/rfc7644#section-3.7.3
	ScimDetail string `json:"detail,omitempty"`
	ScimStatus string `json:"status,omitempty"`
	API12Error string `json:"error,omitempty"`
}

APIErrorBody maps "proper" databricks rest api errors to a struct

type AzureAuth

type AzureAuth struct {
	WorkspaceName  string
	ResourceGroup  string
	SubscriptionID string

	// azurerm_databricks_workspace.this.id
	ResourceID string

	ClientSecret string
	ClientID     string
	TenantID     string
	Environment  string

	// temporary workaround for SP-based auth
	PATTokenDurationSeconds string
	UsePATForCLI            bool
	// contains filtered or unexported fields
}

AzureAuth contains all the auth information for azure sp authentication

func (*AzureAuth) IsClientSecretSet

func (aa *AzureAuth) IsClientSecretSet() bool

IsClientSecretSet returns true if client id/secret and tenand id are supplied

type CommandExecutor

type CommandExecutor interface {
	Execute(clusterID, language, commandStr string) (string, error)
}

CommandExecutor creates a spark context and executes a command and then closes context

type CommandMock

type CommandMock func(commandStr string) (string, error)

CommandMock mocks the execution of command

type DatabricksClient

type DatabricksClient struct {
	Host               string
	Token              string
	Username           string
	Password           string
	Profile            string
	ConfigFile         string
	AzureAuth          AzureAuth
	InsecureSkipVerify bool
	HTTPTimeoutSeconds int
	DebugTruncateBytes int
	DebugHeaders       bool
	RateLimitPerSecond int

	Provider *schema.Provider
	// contains filtered or unexported fields
}

DatabricksClient is the client struct that contains clients for all the services available on Databricks

func CommonEnvironmentClient

func CommonEnvironmentClient() *DatabricksClient

CommonEnvironmentClient configured once per run of application

func NewClientFromEnvironment

func NewClientFromEnvironment() *DatabricksClient

NewClientFromEnvironment makes very good client for testing purposes

func (*DatabricksClient) Authenticate

func (c *DatabricksClient) Authenticate() error

Authenticate authenticates across providers or returns error

func (*DatabricksClient) CommandExecutor

func (c *DatabricksClient) CommandExecutor(ctx context.Context) CommandExecutor

CommandExecutor service

func (*DatabricksClient) Configure

func (c *DatabricksClient) Configure() error

Configure client to work

func (*DatabricksClient) Delete

func (c *DatabricksClient) Delete(ctx context.Context, path string, request interface{}) error

Delete on path

func (*DatabricksClient) Get

func (c *DatabricksClient) Get(ctx context.Context, path string, request interface{}, response interface{}) error

Get on path

func (*DatabricksClient) IsAzure added in v0.2.5

func (c *DatabricksClient) IsAzure() bool

IsAzure returns true if client is configured for Azure Databricks - either by using AAD auth or with host+token combination

func (*DatabricksClient) OldAPI

func (c *DatabricksClient) OldAPI(ctx context.Context, method, path string, request interface{}, response interface{}) error

OldAPI performs call on context api

func (*DatabricksClient) Patch

func (c *DatabricksClient) Patch(ctx context.Context, path string, request interface{}) error

Patch on path

func (*DatabricksClient) Post

func (c *DatabricksClient) Post(ctx context.Context, path string, request interface{}, response interface{}) error

Post on path

func (*DatabricksClient) Put

func (c *DatabricksClient) Put(ctx context.Context, path string, request interface{}) error

Put on path

func (*DatabricksClient) Scim

func (c *DatabricksClient) Scim(ctx context.Context, method, path string, request interface{}, response interface{}) error

Scim sets SCIM headers

func (*DatabricksClient) WithCommandExecutor

func (c *DatabricksClient) WithCommandExecutor(cef func(context.Context, *DatabricksClient) CommandExecutor)

WithCommandExecutor sets command executor implementation to use

func (*DatabricksClient) WithCommandMock

func (c *DatabricksClient) WithCommandMock(mock CommandMock)

WithCommandMock mocks all command executions for this client

type TokenInfo

type TokenInfo struct {
	TokenID      string `json:"token_id,omitempty"`
	CreationTime int64  `json:"creation_time,omitempty"`
	ExpiryTime   int64  `json:"expiry_time,omitempty"`
	Comment      string `json:"comment,omitempty"`
}

TokenInfo is a struct that contains metadata about a given token

type TokenRequest

type TokenRequest struct {
	LifetimeSeconds int32  `json:"lifetime_seconds,omitempty"`
	Comment         string `json:"comment,omitempty"`
}

type TokenResponse

type TokenResponse struct {
	TokenValue string     `json:"token_value,omitempty"`
	TokenInfo  *TokenInfo `json:"token_info,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL