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 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 ¶ added in v0.5.0
func CreateWithConfig(config ExtensionManagerConfig) TransactionController
CreateWithConfig creates a new instance of TransactionController with more configuration options.