execution

package
v0.26.0 Latest Latest
Warning

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

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

Documentation

Index

Constants

This section is empty.

Variables

View Source
var RecipeStatusTypes = struct {
	AVAILABLE   RecipeStatusType
	CANCELED    RecipeStatusType
	INSTALLING  RecipeStatusType
	FAILED      RecipeStatusType
	INSTALLED   RecipeStatusType
	SKIPPED     RecipeStatusType
	RECOMMENDED RecipeStatusType
}{
	AVAILABLE:   "AVAILABLE",
	CANCELED:    "CANCELED",
	INSTALLING:  "INSTALLING",
	FAILED:      "FAILED",
	INSTALLED:   "INSTALLED",
	SKIPPED:     "SKIPPED",
	RECOMMENDED: "RECOMMENDED",
}

Functions

This section is empty.

Types

type ConcreteSuccessLinkGenerator added in v0.20.0

type ConcreteSuccessLinkGenerator struct{}

func NewConcreteSuccessLinkGenerator added in v0.20.0

func NewConcreteSuccessLinkGenerator() *ConcreteSuccessLinkGenerator
func (g *ConcreteSuccessLinkGenerator) GenerateEntityLink(entityGUID string) string
func (g *ConcreteSuccessLinkGenerator) GenerateExplorerLink(filter string) string

func (*ConcreteSuccessLinkGenerator) GenerateRedirectURL added in v0.26.0

func (g *ConcreteSuccessLinkGenerator) GenerateRedirectURL(status InstallStatus) string

GenerateRedirectURL creates a URL for the user to navigate to after running through an installation. The URL is displayed in the CLI out as well and is also provided in the nerdstorage document. This provides the user two options to see their data - click from the CLI output or from the frontend.

type GoTaskRecipeExecutor

type GoTaskRecipeExecutor struct{}

GoTaskRecipeExecutor is an implementation of the recipeExecutor interface that uses the go-task module to execute the steps defined in each recipe.

func NewGoTaskRecipeExecutor

func NewGoTaskRecipeExecutor() *GoTaskRecipeExecutor

NewGoTaskRecipeExecutor returns a new instance of GoTaskRecipeExecutor.

func (*GoTaskRecipeExecutor) Execute

func (*GoTaskRecipeExecutor) Prepare

type InstallStatus added in v0.18.26

type InstallStatus struct {
	Complete            bool                    `json:"complete"`
	DiscoveryManifest   types.DiscoveryManifest `json:"discoveryManifest"`
	EntityGUIDs         []string                `json:"entityGuids"`
	Error               StatusError             `json:"error"`
	LogFilePath         string                  `json:"logFilePath"`
	Statuses            []*RecipeStatus         `json:"recipes"`
	Timestamp           int64                   `json:"timestamp"`
	CLIVersion          string                  `json:"cliVersion"`
	HasInstalledRecipes bool                    `json:"hasInstalledRecipes"`
	HasCanceledRecipes  bool                    `json:"hasCanceledRecipes"`
	HasSkippedRecipes   bool                    `json:"hasSkippedRecipes"`
	HasFailedRecipes    bool                    `json:"hasFailedRecipes"`
	RecipesSkipped      []*RecipeStatus         `json:"recipesSkipped"`
	RecipesCanceled     []*RecipeStatus         `json:"recipesCanceled"`
	RecipesFailed       []*RecipeStatus         `json:"recipesFailed"`
	RecipesInstalled    []*RecipeStatus         `json:"recipesInstalled"`
	RedirectURL         string                  `json:"redirectUrl"`
	DocumentID          string
	// contains filtered or unexported fields
}

nolint: maligned

func NewInstallStatus added in v0.18.26

func NewInstallStatus(reporters []StatusSubscriber, successLinkGenerator SuccessLinkGenerator) *InstallStatus

func (*InstallStatus) DiscoveryComplete added in v0.19.1

func (s *InstallStatus) DiscoveryComplete(dm types.DiscoveryManifest)

func (*InstallStatus) HostEntityGUID added in v0.20.0

func (s *InstallStatus) HostEntityGUID() string

func (*InstallStatus) InstallCanceled added in v0.19.2

func (s *InstallStatus) InstallCanceled()

func (*InstallStatus) InstallComplete added in v0.18.26

func (s *InstallStatus) InstallComplete(err error)

func (*InstallStatus) IsTargetedInstall added in v0.20.0

func (s *InstallStatus) IsTargetedInstall() bool

func (*InstallStatus) RecipeAvailable added in v0.18.26

func (s *InstallStatus) RecipeAvailable(recipe types.OpenInstallationRecipe)

func (*InstallStatus) RecipeFailed added in v0.18.26

func (s *InstallStatus) RecipeFailed(event RecipeStatusEvent)

func (*InstallStatus) RecipeInstalled added in v0.18.26

func (s *InstallStatus) RecipeInstalled(event RecipeStatusEvent)

func (*InstallStatus) RecipeInstalling added in v0.18.26

func (s *InstallStatus) RecipeInstalling(event RecipeStatusEvent)

func (*InstallStatus) RecipeRecommended added in v0.18.26

func (s *InstallStatus) RecipeRecommended(event RecipeStatusEvent)

RecipeRecommended is responsible for setting the nerstorage scopes when a recipe is recommended. This is used when a recipe is found, but not a "HOST" type, and is used to indicate to the user that it is something they should consider integrating, but not something that the recipe framework will currently assist with.

func (*InstallStatus) RecipeSkipped added in v0.18.26

func (s *InstallStatus) RecipeSkipped(event RecipeStatusEvent)

func (*InstallStatus) RecipesAvailable added in v0.18.26

func (s *InstallStatus) RecipesAvailable(recipes []types.OpenInstallationRecipe)

func (*InstallStatus) RecipesSelected added in v0.18.26

func (s *InstallStatus) RecipesSelected(recipes []types.OpenInstallationRecipe)

func (*InstallStatus) SetTargetedInstall added in v0.20.0

func (s *InstallStatus) SetTargetedInstall()

type MockFailingRecipeExecutor added in v0.18.11

type MockFailingRecipeExecutor struct {
	// contains filtered or unexported fields
}

func NewMockFailingRecipeExecutor added in v0.18.11

func NewMockFailingRecipeExecutor() *MockFailingRecipeExecutor

func (*MockFailingRecipeExecutor) Execute added in v0.18.11

func (*MockFailingRecipeExecutor) Prepare added in v0.18.11

type MockNerdStorageClient

type MockNerdStorageClient struct {
	WriteDocumentWithUserScopeVal   interface{}
	WriteDocumentWithEntityScopeVal interface{}
	WriteDocumentWithUserScopeErr   error
	WriteDocumentWithEntityScopeErr error
	// contains filtered or unexported fields
}

func NewMockNerdStorageClient

func NewMockNerdStorageClient() *MockNerdStorageClient

func (*MockNerdStorageClient) WriteDocumentWithEntityScope

func (c *MockNerdStorageClient) WriteDocumentWithEntityScope(string, nerdstorage.WriteDocumentInput) (interface{}, error)

func (*MockNerdStorageClient) WriteDocumentWithUserScope

func (c *MockNerdStorageClient) WriteDocumentWithUserScope(nerdstorage.WriteDocumentInput) (interface{}, error)

type MockRecipeExecutor

type MockRecipeExecutor struct {
	// contains filtered or unexported fields
}

func NewMockRecipeExecutor

func NewMockRecipeExecutor() *MockRecipeExecutor

func (*MockRecipeExecutor) Prepare

type MockStatusReporter

type MockStatusReporter struct {
	RecipeAvailableErr         error
	RecipesAvailableErr        error
	RecipesSelectedErr         error
	RecipeFailedErr            error
	RecipeInstalledErr         error
	RecipeInstallingErr        error
	RecipeRecommendedErr       error
	RecipeSkippedErr           error
	InstallCompleteErr         error
	InstallCanceledErr         error
	DiscoveryCompleteErr       error
	RecipeAvailableCallCount   int
	RecipesAvailableCallCount  int
	RecipesSelectedCallCount   int
	RecipeFailedCallCount      int
	RecipeInstalledCallCount   int
	RecipeInstallingCallCount  int
	RecipeRecommendedCallCount int
	RecipeSkippedCallCount     int
	InstallCompleteCallCount   int
	InstallCanceledCallCount   int
	DiscoveryCompleteCallCount int

	ReportSkipped     map[string]int
	ReportInstalled   map[string]int
	ReportInstalling  map[string]int
	ReportRecommended map[string]int
	ReportFailed      map[string]int
	ReportAvailable   map[string]int

	GUIDs      []string
	Durations  []int64
	RecipeGUID map[string]string
}

MockStatusReporter is a mock implementation of the ExecutionStatusReporter interface that provides method spies for testing scenarios.

func NewMockStatusReporter

func NewMockStatusReporter() *MockStatusReporter

NewMockStatusReporter returns a new instance of MockExecutionStatusReporter.

func (*MockStatusReporter) DiscoveryComplete added in v0.19.1

func (r *MockStatusReporter) DiscoveryComplete(status *InstallStatus, dm types.DiscoveryManifest) error

func (*MockStatusReporter) InstallCanceled added in v0.19.2

func (r *MockStatusReporter) InstallCanceled(status *InstallStatus) error

func (*MockStatusReporter) InstallComplete added in v0.18.26

func (r *MockStatusReporter) InstallComplete(status *InstallStatus) error

func (*MockStatusReporter) RecipeAvailable added in v0.18.26

func (r *MockStatusReporter) RecipeAvailable(status *InstallStatus, recipe types.OpenInstallationRecipe) error

func (*MockStatusReporter) RecipeFailed added in v0.18.26

func (r *MockStatusReporter) RecipeFailed(status *InstallStatus, event RecipeStatusEvent) error

func (*MockStatusReporter) RecipeInstalled added in v0.18.26

func (r *MockStatusReporter) RecipeInstalled(status *InstallStatus, event RecipeStatusEvent) error

func (*MockStatusReporter) RecipeInstalling added in v0.18.26

func (r *MockStatusReporter) RecipeInstalling(status *InstallStatus, event RecipeStatusEvent) error

func (*MockStatusReporter) RecipeRecommended added in v0.18.26

func (r *MockStatusReporter) RecipeRecommended(status *InstallStatus, event RecipeStatusEvent) error

func (*MockStatusReporter) RecipeSkipped added in v0.18.26

func (r *MockStatusReporter) RecipeSkipped(status *InstallStatus, event RecipeStatusEvent) error

func (*MockStatusReporter) RecipesAvailable added in v0.18.26

func (r *MockStatusReporter) RecipesAvailable(status *InstallStatus, recipes []types.OpenInstallationRecipe) error

func (*MockStatusReporter) RecipesSelected added in v0.18.26

func (r *MockStatusReporter) RecipesSelected(status *InstallStatus, recipes []types.OpenInstallationRecipe) error

type MockSuccessLinkGenerator added in v0.20.0

type MockSuccessLinkGenerator struct {
	GenerateExplorerLinkCallCount int
	GenerateEntityLinkCallCount   int
	GenerateExplorerLinkVal       string
	GenerateEntityLinkVal         string
}

func NewMockSuccessLinkGenerator added in v0.20.0

func NewMockSuccessLinkGenerator() *MockSuccessLinkGenerator
func (g *MockSuccessLinkGenerator) GenerateEntityLink(entityGUID string) string
func (g *MockSuccessLinkGenerator) GenerateExplorerLink(filter string) string

func (*MockSuccessLinkGenerator) GenerateRedirectURL added in v0.26.0

func (g *MockSuccessLinkGenerator) GenerateRedirectURL(status InstallStatus) string

type NerdStorageClient

type NerdStorageClient interface {
	WriteDocumentWithUserScope(nerdstorage.WriteDocumentInput) (interface{}, error)
	WriteDocumentWithEntityScope(string, nerdstorage.WriteDocumentInput) (interface{}, error)
}

type NerdstorageStatusReporter

type NerdstorageStatusReporter struct {
	// contains filtered or unexported fields
}

NerdstorageStatusReporter is an implementation of the ExecutionStatusReporter interface that reports esecution status into NerdStorage.

func NewNerdStorageStatusReporter

func NewNerdStorageStatusReporter(client NerdStorageClient) *NerdstorageStatusReporter

NewNerdStorageStatusReporter returns a new instance of NerdStorageExecutionStatusReporter.

func (NerdstorageStatusReporter) DiscoveryComplete added in v0.19.1

func (r NerdstorageStatusReporter) DiscoveryComplete(status *InstallStatus, dm types.DiscoveryManifest) error

func (NerdstorageStatusReporter) InstallCanceled added in v0.19.2

func (r NerdstorageStatusReporter) InstallCanceled(status *InstallStatus) error

func (NerdstorageStatusReporter) InstallComplete added in v0.18.26

func (r NerdstorageStatusReporter) InstallComplete(status *InstallStatus) error

func (NerdstorageStatusReporter) RecipeAvailable added in v0.18.26

func (r NerdstorageStatusReporter) RecipeAvailable(status *InstallStatus, recipe types.OpenInstallationRecipe) error

RecipeAvailable reports that a recipe is available for installation on the underlying host.

func (NerdstorageStatusReporter) RecipeFailed added in v0.18.26

func (r NerdstorageStatusReporter) RecipeFailed(status *InstallStatus, event RecipeStatusEvent) error

func (NerdstorageStatusReporter) RecipeInstalled added in v0.18.26

func (r NerdstorageStatusReporter) RecipeInstalled(status *InstallStatus, event RecipeStatusEvent) error

func (NerdstorageStatusReporter) RecipeInstalling added in v0.18.26

func (r NerdstorageStatusReporter) RecipeInstalling(status *InstallStatus, event RecipeStatusEvent) error

func (NerdstorageStatusReporter) RecipeRecommended added in v0.18.26

func (r NerdstorageStatusReporter) RecipeRecommended(status *InstallStatus, event RecipeStatusEvent) error

func (NerdstorageStatusReporter) RecipeSkipped added in v0.18.26

func (r NerdstorageStatusReporter) RecipeSkipped(status *InstallStatus, event RecipeStatusEvent) error

func (NerdstorageStatusReporter) RecipesAvailable added in v0.18.26

func (r NerdstorageStatusReporter) RecipesAvailable(status *InstallStatus, recipes []types.OpenInstallationRecipe) error

RecipesAvailable reports that recipes are available for installation on the underlying host.

func (NerdstorageStatusReporter) RecipesSelected added in v0.18.26

func (r NerdstorageStatusReporter) RecipesSelected(status *InstallStatus, recipes []types.OpenInstallationRecipe) error

type RecipeExecutor

RecipeExecutor is responsible for execution of the task steps defined in a recipe.

type RecipeStatus added in v0.18.26

type RecipeStatus struct {
	DisplayName string           `json:"displayName"`
	Error       StatusError      `json:"error"`
	Name        string           `json:"name"`
	Status      RecipeStatusType `json:"status"`
	EntityGUID  string           `json:"entityGuid,omitempty"`
	// ValidationDurationMilliseconds is duration in Milliseconds that a recipe took to validate data was flowing.
	ValidationDurationMilliseconds int64 `json:"validationDurationMilliseconds,omitempty"`
}

type RecipeStatusEvent

type RecipeStatusEvent struct {
	Recipe                         types.OpenInstallationRecipe
	Msg                            string
	EntityGUID                     string
	ValidationDurationMilliseconds int64
}

RecipeStatusEvent represents an event in a recipe's execution.

type RecipeStatusType added in v0.18.26

type RecipeStatusType string

type StatusError added in v0.19.1

type StatusError struct {
	Message string `json:"message"`
	Details string `json:"details"`
}

type StatusSubscriber added in v0.18.26

type StatusSubscriber interface {
	InstallCanceled(status *InstallStatus) error
	InstallComplete(status *InstallStatus) error
	DiscoveryComplete(status *InstallStatus, dm types.DiscoveryManifest) error
	RecipeAvailable(status *InstallStatus, recipe types.OpenInstallationRecipe) error
	RecipeFailed(status *InstallStatus, event RecipeStatusEvent) error
	RecipeInstalled(status *InstallStatus, event RecipeStatusEvent) error
	RecipeInstalling(status *InstallStatus, event RecipeStatusEvent) error
	RecipeRecommended(status *InstallStatus, event RecipeStatusEvent) error
	RecipeSkipped(status *InstallStatus, event RecipeStatusEvent) error
	RecipesAvailable(status *InstallStatus, recipes []types.OpenInstallationRecipe) error
	RecipesSelected(status *InstallStatus, recipes []types.OpenInstallationRecipe) error
}

StatusSubscriber is notified during the lifecycle of the recipe execution status.

type SuccessLinkGenerator added in v0.20.0

type SuccessLinkGenerator interface {
	GenerateExplorerLink(filter string) string
	GenerateEntityLink(entityGUID string) string
	GenerateRedirectURL(status InstallStatus) string
}

type TerminalStatusReporter added in v0.18.11

type TerminalStatusReporter struct{}

func NewTerminalStatusReporter added in v0.18.11

func NewTerminalStatusReporter() *TerminalStatusReporter

NewTerminalStatusReporter is an implementation of the ExecutionStatusReporter interface that reports execution status to STDOUT.

func (TerminalStatusReporter) DiscoveryComplete added in v0.19.1

func (r TerminalStatusReporter) DiscoveryComplete(status *InstallStatus, dm types.DiscoveryManifest) error

func (TerminalStatusReporter) InstallCanceled added in v0.19.2

func (r TerminalStatusReporter) InstallCanceled(status *InstallStatus) error

func (TerminalStatusReporter) InstallComplete added in v0.18.26

func (r TerminalStatusReporter) InstallComplete(status *InstallStatus) error

func (TerminalStatusReporter) RecipeAvailable added in v0.18.26

func (r TerminalStatusReporter) RecipeAvailable(status *InstallStatus, recipe types.OpenInstallationRecipe) error

func (TerminalStatusReporter) RecipeFailed added in v0.18.26

func (r TerminalStatusReporter) RecipeFailed(status *InstallStatus, event RecipeStatusEvent) error

func (TerminalStatusReporter) RecipeInstalled added in v0.18.26

func (r TerminalStatusReporter) RecipeInstalled(status *InstallStatus, event RecipeStatusEvent) error

func (TerminalStatusReporter) RecipeInstalling added in v0.18.26

func (r TerminalStatusReporter) RecipeInstalling(status *InstallStatus, event RecipeStatusEvent) error

func (TerminalStatusReporter) RecipeRecommended added in v0.18.26

func (r TerminalStatusReporter) RecipeRecommended(status *InstallStatus, event RecipeStatusEvent) error

func (TerminalStatusReporter) RecipeSkipped added in v0.18.26

func (r TerminalStatusReporter) RecipeSkipped(status *InstallStatus, event RecipeStatusEvent) error

func (TerminalStatusReporter) RecipesAvailable added in v0.18.26

func (r TerminalStatusReporter) RecipesAvailable(status *InstallStatus, recipes []types.OpenInstallationRecipe) error

func (TerminalStatusReporter) RecipesSelected added in v0.18.26

func (r TerminalStatusReporter) RecipesSelected(status *InstallStatus, recipes []types.OpenInstallationRecipe) error

Jump to

Keyboard shortcuts

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