extensionController

package
v0.5.10 Latest Latest
Warning

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

Go to latest
Published: Apr 25, 2024 License: MIT Imports: 16 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ExtInstallation

type ExtInstallation struct {
}

ExtInstallation represents the installation of an Extension.

type Extension

type Extension struct {
	Id                  string
	Name                string
	Category            string
	Description         string
	InstallableVersions []extensionAPI.JsExtensionVersion
}

type ExtensionManagerConfig added in v0.5.0

type ExtensionManagerConfig struct {
	// URL of the extension registry index used to find available extensions.
	// This can also be the path of a local directory for local testing.
	/* [impl -> dsn~configure-bucketfs-path~1] */
	ExtensionRegistryURL string
	// BucketFS base path where to search for extension files, e.g. "/buckets/bfsdefault/default/".
	BucketFSBasePath string
	// Schema where extensions are searched for and new extensions are created, e.g. "EXA_EXTENSIONS".
	ExtensionSchema string
}

Configuration options for the extension manager.

type ParameterValue

type ParameterValue struct {
	Name  string
	Value string
}

type TransactionController

type TransactionController interface {
	// GetAllExtensions reports all extension definitions.
	// db is a connection to the Exasol DB
	GetAllExtensions(ctx context.Context, db *sql.DB) ([]*Extension, error)

	// GetInstalledExtensions searches for installations of any extensions.
	// db is a connection to the Exasol DB
	GetInstalledExtensions(ctx context.Context, db *sql.DB) ([]*extensionAPI.JsExtInstallation, error)

	// GetParameterDefinitions returns the parameter definitions required for installing a given extension version.
	GetParameterDefinitions(ctx context.Context, db *sql.DB, extensionId string, extensionVersion string) ([]parameterValidator.ParameterDefinition, error)

	// InstallExtension installs an extension.
	// db is a connection to the Exasol DB
	// extensionId is the ID of the extension to install
	// extensionVersion is the version of the extension to install
	InstallExtension(ctx context.Context, db *sql.DB, extensionId string, extensionVersion string) error

	// UninstallExtension uninstalls an extension.
	// db is a connection to the Exasol DB
	// extensionId is the ID of the extension to uninstall
	// extensionVersion is the version of the extension to uninstall
	UninstallExtension(ctx context.Context, db *sql.DB, extensionId string, extensionVersion string) error

	// UpgradeExtension upgrades an installed extension to the latest version.
	// db is a connection to the Exasol DB
	// extensionId is the ID of the extension to uninstall
	UpgradeExtension(ctx context.Context, db *sql.DB, extensionId string) (*extensionAPI.JsUpgradeResult, error)

	// CreateInstance creates a new instance of an extension, e.g. a virtual schema and returns it's name.
	// db is a connection to the Exasol DB
	CreateInstance(ctx context.Context, db *sql.DB, extensionId string, extensionVersion string, parameterValues []ParameterValue) (*extensionAPI.JsExtInstance, error)

	// FindInstances returns a list of all instances for the given version.
	FindInstances(ctx context.Context, db *sql.DB, extensionId string, extensionVersion string) ([]*extensionAPI.JsExtInstance, error)

	// DeleteInstance deletes instance with the given ID.
	DeleteInstance(ctx context.Context, db *sql.DB, extensionId, extensionVersion, instanceId string) error
}

TransactionController is the core part of the extension-manager that provides the extension handling functionality. All of it's methods expect a context.Context and *sql.DB as arguments. The controller will take care of transaction handling, i.e. it will create a new transaction and commit or rollback if necessary.

func Create deprecated

func Create(extensionRegistryURL string, schema string) TransactionController

Create creates a new instance of TransactionController.

Deprecated: Use function CreateWithConfig which allows specifying additional configuration options.

func CreateWithConfig deprecated added in v0.5.0

func CreateWithConfig(config ExtensionManagerConfig) TransactionController

CreateWithConfig creates a new instance of TransactionController with more configuration options.

Deprecated: Use function CreateWithValidatedConfig which additionally validates the given configuration.

func CreateWithValidatedConfig added in v0.5.2

func CreateWithValidatedConfig(config ExtensionManagerConfig) (TransactionController, error)

CreateWithValidatedConfig validates the configuration and creates a new instance of TransactionController.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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