modules

package
v0.5.1 Latest Latest
Warning

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

Go to latest
Published: Dec 13, 2021 License: Apache-2.0 Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CheckDependencies

func CheckDependencies(module *app.FybrikModule, moduleMap map[string]*app.FybrikModule) ([]string, []string)

CheckDependencies returns dependent module names

Types

type DataDetails

type DataDetails struct {
	// Name of the asset
	Name string
	// Interface is the protocol and format
	Interface app.InterfaceDetails
	// Geography is the geo-location of the asset
	Geography string
	// Connection is the connection details in raw format as received from the connector
	Connection serde.Arbitrary
	// Metadata
	Metadata *pb.DatasetMetadata
}

DataDetails is the information received from the catalog connector

func CatalogDatasetToDataDetails

func CatalogDatasetToDataDetails(response *pb.CatalogDatasetInfo) (*DataDetails, error)

Transforms a CatalogDatasetInfo into a DataDetails struct TODO Think about getting rid of one or the other and reuse

type DataInfo

type DataInfo struct {
	// Source connection details
	DataDetails *DataDetails
	// The path to Vault secret which holds the dataset credentials
	VaultSecretPath string
	// Pointer to the relevant data context in the Fybrik application spec
	Context *app.DataContext
}

DataInfo defines all the information about the given data set that comes from the fybrikapplication spec and from the connectors.

type ModuleInstanceSpec

type ModuleInstanceSpec struct {
	Chart       *app.ChartSpec
	Args        *app.ModuleArguments
	AssetIDs    []string
	ClusterName string
	ModuleName  string
	Scope       app.CapabilityScope
}

ModuleInstanceSpec consists of the module spec and arguments

type Selector

type Selector struct {
	Module           *app.FybrikModule
	Dependencies     []*app.FybrikModule
	Message          string
	Capability       app.CapabilityType
	ModuleCapability *app.ModuleCapability
	Source           *app.InterfaceDetails
	Destination      *app.InterfaceDetails
	// Actions that the module will perform
	Actions []*taxonomymodels.PolicyManagerResultItem
	// Geography where the module will be orchestrated
	Geo string
}

Selector is responsible for finding an appropriate module

func (*Selector) GetDependencies

func (m *Selector) GetDependencies() []*app.FybrikModule

GetDependencies returns dependencies of a selected module

func (*Selector) GetError

func (m *Selector) GetError() string

GetError returns an error message

func (*Selector) GetModule

func (m *Selector) GetModule() *app.FybrikModule

GetModule returns the selected module

func (*Selector) SelectCluster

func (m *Selector) SelectCluster(item DataInfo, clusters []multicluster.Cluster) (string, error)

SelectCluster chooses where the module runs Current logic: Read is done at target (processing geography) Copy is done at source when transformations are required, and at target - otherwise Write is done at target

func (*Selector) SelectModule

func (m *Selector) SelectModule(moduleMap map[string]*app.FybrikModule) bool

SelectModule finds the module that fits the requirements

func (*Selector) SupportsDependencies

func (m *Selector) SupportsDependencies(module *app.FybrikModule, moduleMap map[string]*app.FybrikModule) bool

SupportsDependencies checks whether the module supports the dependency requirements

func (*Selector) SupportsGovernanceAction

func (m *Selector) SupportsGovernanceAction(module *app.FybrikModule, action *taxonomymodels.PolicyManagerResultItem) bool

SupportsGovernanceAction checks whether the module supports the required governance action

func (*Selector) SupportsGovernanceActions

func (m *Selector) SupportsGovernanceActions(module *app.FybrikModule, actions []*taxonomymodels.PolicyManagerResultItem) bool

SupportsGovernanceActions checks whether the module supports the required agovernance actions for the capability requested

func (*Selector) SupportsInterface

func (m *Selector) SupportsInterface(module *app.FybrikModule) bool

SupportsInterface indicates whether the module supports interface requirements and dependencies

Jump to

Keyboard shortcuts

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