execution

package
v0.97.1 Latest Latest
Warning

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

Go to latest
Published: Nov 12, 2024 License: Apache-2.0 Imports: 44 Imported by: 0

Documentation

Index

Constants

View Source
const (
	BashPath = "/bin/bash"
	ShPath   = "/bin/sh"
)
View Source
const (
	EnvNriaCustomAttributes       = "NRIA_CUSTOM_ATTRIBUTES"
	EnvNriaPassthroughEnvironment = "NRIA_PASSTHROUGH_ENVIRONMENT"
	EnvInstallCustomAttributes    = "INSTALL_CUSTOM_ATTRIBUTES"
)

Variables

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

Functions

func GetAccountPlanManagementURL added in v0.46.0

func GetAccountPlanManagementURL() string

GeneratePlanManagementURL returns the URL where a customer can manage their plan and payment options.

Types

type GoTaskRecipeExecutor

type GoTaskRecipeExecutor struct {
	Stderr       io.Writer
	Stdin        io.Reader
	Stdout       io.Writer
	Output       *OutputParser
	RecipeOutput []string
}

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 (re *GoTaskRecipeExecutor) Execute(ctx context.Context, r types.OpenInstallationRecipe, recipeVars types.RecipeVars) (retErr error)

func (*GoTaskRecipeExecutor) ExecutePreInstall added in v0.28.0

func (re *GoTaskRecipeExecutor) ExecutePreInstall(ctx context.Context, r types.OpenInstallationRecipe, recipeVars types.RecipeVars) error

func (*GoTaskRecipeExecutor) GetOutput added in v0.47.0

func (re *GoTaskRecipeExecutor) GetOutput() *OutputParser

func (*GoTaskRecipeExecutor) GetRecipeOutput added in v0.57.0

func (re *GoTaskRecipeExecutor) GetRecipeOutput() []string

type InstallEventsClient added in v0.31.1

type InstallEventsClient interface {
	InstallationCreateRecipeEvent(int, installevents.InstallationRecipeStatus) (*installevents.InstallationRecipeEvent, error)
	InstallationCreateInstallStatus(int, installevents.InstallationInstallStatusInput) (*installevents.InstallationInstallStatus, error)
}

type InstallEventsReporter added in v0.31.1

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

func NewInstallEventsReporter added in v0.31.1

func NewInstallEventsReporter(client InstallEventsClient) *InstallEventsReporter

func (InstallEventsReporter) DiscoveryComplete added in v0.31.1

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

func (InstallEventsReporter) InstallCanceled added in v0.31.1

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

func (InstallEventsReporter) InstallComplete added in v0.31.1

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

func (InstallEventsReporter) InstallStarted added in v0.34.37

func (r InstallEventsReporter) InstallStarted(status *InstallStatus) error

func (InstallEventsReporter) RecipeAvailable added in v0.31.1

func (r InstallEventsReporter) RecipeAvailable(status *InstallStatus, event RecipeStatusEvent) error

func (InstallEventsReporter) RecipeCanceled added in v0.31.1

func (r InstallEventsReporter) RecipeCanceled(status *InstallStatus, event RecipeStatusEvent) error

func (InstallEventsReporter) RecipeDetected added in v0.36.10

func (r InstallEventsReporter) RecipeDetected(status *InstallStatus, event RecipeStatusEvent) error

func (InstallEventsReporter) RecipeFailed added in v0.31.1

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

func (InstallEventsReporter) RecipeInstalled added in v0.31.1

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

func (InstallEventsReporter) RecipeInstalling added in v0.31.1

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

func (InstallEventsReporter) RecipeRecommended added in v0.31.1

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

func (InstallEventsReporter) RecipeSkipped added in v0.31.1

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

func (InstallEventsReporter) RecipeUnsupported added in v0.31.1

func (r InstallEventsReporter) RecipeUnsupported(status *InstallStatus, event RecipeStatusEvent) error

func (InstallEventsReporter) RecipesSelected added in v0.31.1

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

func (InstallEventsReporter) UpdateRequired added in v0.34.0

func (r InstallEventsReporter) UpdateRequired(status *InstallStatus) error

type InstallStatus added in v0.18.26

type InstallStatus struct {
	InstallID             string                  `json:"installId"`
	Complete              bool                    `json:"complete"`
	DeployedBy            string                  `json:"deployedBy"`
	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"`
	InstallLibraryVersion string                  `json:"installLibraryVersion"`
	HasInstalledRecipes   bool                    `json:"hasInstalledRecipes"`
	HasCanceledRecipes    bool                    `json:"hasCanceledRecipes"`
	HasSkippedRecipes     bool                    `json:"hasSkippedRecipes"`
	HasFailedRecipes      bool                    `json:"hasFailedRecipes"`
	HasUnsupportedRecipes bool                    `json:"hasUnsupportedRecipes"`
	Detected              []*RecipeStatus         `json:"recipesDetected"`
	Skipped               []*RecipeStatus         `json:"recipesSkipped"`
	Canceled              []*RecipeStatus         `json:"recipesCanceled"`
	Failed                []*RecipeStatus         `json:"recipesFailed"`
	Installed             []*RecipeStatus         `json:"recipesInstalled"`
	Unsupported           []*RecipeStatus         `json:"recipesUnsupported"`
	RedirectURL           string                  `json:"redirectUrl"`
	HTTPSProxy            string                  `json:"httpsProxy"`
	UpdateRequired        bool                    `json:"updateRequired"`
	DocumentID            string

	PlatformLinkGenerator LinkGenerator
	// contains filtered or unexported fields
}

nolint: maligned

func NewInstallStatus added in v0.18.26

func NewInstallStatus(context types.InstallerContext, reporters []StatusSubscriber, PlatformLinkGenerator LinkGenerator) *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) InstallStarted added in v0.34.37

func (s *InstallStatus) InstallStarted()

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(event RecipeStatusEvent)

func (*InstallStatus) RecipeCanceled added in v0.43.0

func (s *InstallStatus) RecipeCanceled(event RecipeStatusEvent)

func (*InstallStatus) RecipeDetected added in v0.36.10

func (s *InstallStatus) RecipeDetected(event RecipeStatusEvent)

RecipeDetected handles setting the DETECTED status for the provided recipe as well sending out the DETECTED status event to the install events service. RecipeDetected is called when a recipe is available and passes the checks in both the process match and the pre-install steps of recipe execution.

func (*InstallStatus) RecipeFailed added in v0.18.26

func (s *InstallStatus) RecipeFailed(event RecipeStatusEvent)

func (*InstallStatus) RecipeHasStatus added in v0.49.11

func (s *InstallStatus) RecipeHasStatus(recipeName string, status RecipeStatusType) bool

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) RecipeUnsupported added in v0.28.11

func (s *InstallStatus) RecipeUnsupported(event RecipeStatusEvent)

func (*InstallStatus) ReportStatus added in v0.43.0

func (s *InstallStatus) ReportStatus(status RecipeStatusType, event RecipeStatusEvent)

func (*InstallStatus) SetTargetedInstall added in v0.20.0

func (s *InstallStatus) SetTargetedInstall(targetedInstallNames []string)

func (*InstallStatus) SetVersions added in v0.32.0

func (s *InstallStatus) SetVersions(installLibraryVersion string)

func (*InstallStatus) WasSuccessful added in v0.28.0

func (s *InstallStatus) WasSuccessful() bool

type LineCaptureBuffer added in v0.27.0

type LineCaptureBuffer struct {
	LastFullLine string
	// contains filtered or unexported fields
}

func NewLineCaptureBuffer added in v0.27.0

func NewLineCaptureBuffer(w io.Writer) *LineCaptureBuffer

func (*LineCaptureBuffer) Current added in v0.27.0

func (c *LineCaptureBuffer) Current() string

func (*LineCaptureBuffer) GetFullRecipeOutput added in v0.57.0

func (c *LineCaptureBuffer) GetFullRecipeOutput() []string

func (*LineCaptureBuffer) Write added in v0.27.0

func (c *LineCaptureBuffer) Write(p []byte) (n int, err error)

type LinkGenerator added in v0.28.0

type LinkGenerator interface {
	GenerateExplorerLink(status InstallStatus) string
	GenerateEntityLink(entityGUID string) string
	GenerateLoggingLink(entityGUID string) string
	GenerateRedirectURL(status InstallStatus) string
}

type LogEntry added in v0.56.0

type LogEntry struct {
	Attributes map[string]interface{} `json:"attributes"`
	LogType    string                 `json:"logType"`
	Message    string                 `json:"message"`
}

type LogForwarder added in v0.57.0

type LogForwarder interface {
	PromptUserToSendLogs(reader io.Reader) bool
	SendLogsToNewRelic(recipeName string, data []string)
	HasUserOptedIn() bool
	SetUserOptedIn(val bool)
}

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) ExecutePreInstall added in v0.28.0

type MockInstalleventsClient added in v0.31.1

type MockInstalleventsClient struct {
	CreateInstallEventVal        *installevents.InstallationRecipeEvent
	CreateInstallStatusVal       *installevents.InstallationInstallStatus
	CreateInstallEventErr        error
	CreateInstallEventCallCount  int
	CreateInstallStatusErr       error
	CreateInstallStatusCallCount int
}

func NewMockInstallEventsClient added in v0.31.1

func NewMockInstallEventsClient() *MockInstalleventsClient

func (*MockInstalleventsClient) InstallationCreateInstallStatus added in v0.32.6

func (*MockInstalleventsClient) InstallationCreateRecipeEvent added in v0.31.1

type MockPlatformLinkGenerator added in v0.28.0

type MockPlatformLinkGenerator struct {
	GenerateExplorerLinkCallCount int
	GenerateEntityLinkCallCount   int
	GenerateLoggingLinkCallCount  int
	GenerateExplorerLinkVal       string
	GenerateEntityLinkVal         string
	GenerateLoggingLinkVal        string
}

func NewMockPlatformLinkGenerator added in v0.28.0

func NewMockPlatformLinkGenerator() *MockPlatformLinkGenerator
func (g *MockPlatformLinkGenerator) GenerateEntityLink(entityGUID string) string
func (g *MockPlatformLinkGenerator) GenerateExplorerLink(status InstallStatus) string
func (g *MockPlatformLinkGenerator) GenerateLoggingLink(entityGUID string) string

func (*MockPlatformLinkGenerator) GenerateRedirectURL added in v0.28.0

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

type MockRecipeExecutor

type MockRecipeExecutor struct {
	ExecuteErr   error
	OutputParser *OutputParser
	ShouldPanic  bool
}

func NewMockRecipeExecutor

func NewMockRecipeExecutor() *MockRecipeExecutor

func (*MockRecipeExecutor) Execute

func (*MockRecipeExecutor) ExecutePreInstall added in v0.28.0

func (*MockRecipeExecutor) GetOutput added in v0.47.0

func (m *MockRecipeExecutor) GetOutput() *OutputParser

func (*MockRecipeExecutor) GetRecipeOutput added in v0.57.0

func (m *MockRecipeExecutor) GetRecipeOutput() []string

func (*MockRecipeExecutor) SetOutput added in v0.47.0

func (m *MockRecipeExecutor) SetOutput(value string)

type MockRecipeLogForwarder added in v0.57.0

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

func NewMockRecipeLogForwarder added in v0.57.0

func NewMockRecipeLogForwarder() *MockRecipeLogForwarder

func (*MockRecipeLogForwarder) HasUserOptedIn added in v0.58.0

func (rlf *MockRecipeLogForwarder) HasUserOptedIn() bool

func (*MockRecipeLogForwarder) PromptUserToSendLogs added in v0.57.0

func (rlf *MockRecipeLogForwarder) PromptUserToSendLogs(reader io.Reader) bool

func (*MockRecipeLogForwarder) SendLogsToNewRelic added in v0.57.0

func (rlf *MockRecipeLogForwarder) SendLogsToNewRelic(recipeName string, recipeOutput []string)

func (*MockRecipeLogForwarder) SetUserOptedIn added in v0.58.0

func (rlf *MockRecipeLogForwarder) SetUserOptedIn(val bool)

type MockRecipeVarProvider added in v0.43.0

type MockRecipeVarProvider struct {
	Vars  map[string]string
	Error error
}

func NewMockRecipeVarProvider added in v0.43.0

func NewMockRecipeVarProvider() *MockRecipeVarProvider

func (*MockRecipeVarProvider) Prepare added in v0.43.0

type MockStatusSubscriber added in v0.43.0

type MockStatusSubscriber struct {
	RecipeAvailableErr         error
	RecipesSelectedErr         error
	RecipeFailedErr            error
	RecipeInstalledErr         error
	RecipeInstallingErr        error
	RecipeRecommendedErr       error
	RecipeSkippedErr           error
	RecipeUnsupportedErr       error
	InstallStartedErr          error
	InstallCompleteErr         error
	InstallCanceledErr         error
	DiscoveryCompleteErr       error
	RecipeAvailableCallCount   int
	RecipesSelectedCallCount   int
	RecipeFailedCallCount      int
	RecipeInstalledCallCount   int
	RecipeInstallingCallCount  int
	RecipeRecommendedCallCount int
	RecipeSkippedCallCount     int
	InstallStartedCallCount    int
	InstallCompleteCallCount   int
	InstallCanceledCallCount   int
	DiscoveryCompleteCallCount int
	RecipeUnsupportedCallCount int
	RecipeDetectedCallCount    int
	RecipeCanceledCallCount    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
}

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

func NewMockStatusReporter

func NewMockStatusReporter() *MockStatusSubscriber

NewMockStatusReporter returns a new instance of MockExecutionStatusReporter.

func (*MockStatusSubscriber) DiscoveryComplete added in v0.43.0

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

func (*MockStatusSubscriber) InstallCanceled added in v0.43.0

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

func (*MockStatusSubscriber) InstallComplete added in v0.43.0

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

func (*MockStatusSubscriber) InstallStarted added in v0.43.0

func (r *MockStatusSubscriber) InstallStarted(status *InstallStatus) error

func (*MockStatusSubscriber) RecipeAvailable added in v0.43.0

func (r *MockStatusSubscriber) RecipeAvailable(status *InstallStatus, event RecipeStatusEvent) error

func (*MockStatusSubscriber) RecipeCanceled added in v0.43.0

func (r *MockStatusSubscriber) RecipeCanceled(status *InstallStatus, event RecipeStatusEvent) error

func (*MockStatusSubscriber) RecipeDetected added in v0.43.0

func (r *MockStatusSubscriber) RecipeDetected(status *InstallStatus, event RecipeStatusEvent) error

func (*MockStatusSubscriber) RecipeFailed added in v0.43.0

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

func (*MockStatusSubscriber) RecipeInstalled added in v0.43.0

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

func (*MockStatusSubscriber) RecipeInstalling added in v0.43.0

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

func (*MockStatusSubscriber) RecipeRecommended added in v0.43.0

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

func (*MockStatusSubscriber) RecipeSkipped added in v0.43.0

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

func (*MockStatusSubscriber) RecipeUnsupported added in v0.43.0

func (r *MockStatusSubscriber) RecipeUnsupported(status *InstallStatus, event RecipeStatusEvent) error

func (*MockStatusSubscriber) RecipesSelected added in v0.43.0

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

func (*MockStatusSubscriber) UpdateRequired added in v0.43.0

func (r *MockStatusSubscriber) UpdateRequired(status *InstallStatus) error

type OutputParser added in v0.47.0

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

func NewOutputParser added in v0.47.0

func NewOutputParser(output map[string]interface{}) *OutputParser

func (*OutputParser) AddMetadata added in v0.58.0

func (op *OutputParser) AddMetadata(key string, value string)

func (*OutputParser) EntityGUID added in v0.47.0

func (op *OutputParser) EntityGUID() string

func (*OutputParser) IsCapturedCliOutput added in v0.57.0

func (op *OutputParser) IsCapturedCliOutput() bool

func (*OutputParser) Metadata added in v0.52.0

func (op *OutputParser) Metadata() map[string]string

type PlatformLinkGenerator added in v0.28.0

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

func NewPlatformLinkGenerator added in v0.28.0

func NewPlatformLinkGenerator() *PlatformLinkGenerator
func (g *PlatformLinkGenerator) GenerateEntityLink(entityGUID string) string
func (g *PlatformLinkGenerator) GenerateExplorerLink(status InstallStatus) string
func (g *PlatformLinkGenerator) GenerateLoggingLink(entityGUID string) string

func (*PlatformLinkGenerator) GenerateRedirectURL added in v0.28.0

func (g *PlatformLinkGenerator) 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 PosixShellRecipeExecutor added in v0.28.0

type PosixShellRecipeExecutor struct {
	Stderr    io.Writer
	Stdin     io.Reader
	Stdout    io.Writer
	ShellPath string
	Dir       string
}

func NewPosixShellRecipeExecutor added in v0.28.0

func NewPosixShellRecipeExecutor() *PosixShellRecipeExecutor

func (*PosixShellRecipeExecutor) Execute added in v0.28.0

func (*PosixShellRecipeExecutor) ExecutePreInstall added in v0.28.0

type RecipeExecutor

type RecipeExecutor interface {
	Execute(context.Context, types.OpenInstallationRecipe, types.RecipeVars) error
	ExecutePreInstall(context.Context, types.OpenInstallationRecipe, types.RecipeVars) error
	GetOutput() *OutputParser
	GetRecipeOutput() []string
}

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

type RecipeLogForwarder added in v0.56.0

type RecipeLogForwarder struct {
	LogEntries []LogEntry
	// contains filtered or unexported fields
}

func NewRecipeLogForwarder added in v0.56.0

func NewRecipeLogForwarder() *RecipeLogForwarder

func (*RecipeLogForwarder) HasUserOptedIn added in v0.58.0

func (lf *RecipeLogForwarder) HasUserOptedIn() bool

func (*RecipeLogForwarder) PromptUserToSendLogs added in v0.56.0

func (lf *RecipeLogForwarder) PromptUserToSendLogs(reader io.Reader) bool

func (*RecipeLogForwarder) SendLogsToNewRelic added in v0.56.0

func (lf *RecipeLogForwarder) SendLogsToNewRelic(recipeName string, data []string)

func (*RecipeLogForwarder) SetUserOptedIn added in v0.58.0

func (lf *RecipeLogForwarder) SetUserOptedIn(val bool)

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"`
	// validationDurationMs is duration in Milliseconds that a recipe took to validate data was flowing.
	ValidationDurationMs int64 `json:"validationDurationMs,omitempty"`
}

type RecipeStatusEvent

type RecipeStatusEvent struct {
	Recipe               types.OpenInstallationRecipe
	Msg                  string
	TaskPath             []string
	EntityGUID           string
	ValidationDurationMs int64
	Metadata             map[string]string
	OptimizedMessage     string
}

RecipeStatusEvent represents an event in a recipe's execution.

func NewRecipeStatusEvent added in v0.43.0

func NewRecipeStatusEvent(recipe *types.OpenInstallationRecipe) RecipeStatusEvent

type RecipeStatusType added in v0.18.26

type RecipeStatusType string

type RecipeVarProvider added in v0.28.0

type RecipeVarProvider struct{}

func NewRecipeVarProvider added in v0.28.0

func NewRecipeVarProvider() *RecipeVarProvider

func (*RecipeVarProvider) Prepare added in v0.28.0

type ShRecipeExecutor added in v0.28.0

type ShRecipeExecutor struct {
	Dir          string
	Stderr       io.Writer
	Stdin        io.Reader
	Stdout       io.Writer
	RecipeOutput []string
}

func NewShRecipeExecutor added in v0.28.0

func NewShRecipeExecutor() *ShRecipeExecutor

func (*ShRecipeExecutor) Execute added in v0.28.0

func (*ShRecipeExecutor) ExecutePreInstall added in v0.28.0

func (*ShRecipeExecutor) GetOutput added in v0.47.0

func (e *ShRecipeExecutor) GetOutput() *OutputParser

func (*ShRecipeExecutor) GetRecipeOutput added in v0.57.0

func (e *ShRecipeExecutor) GetRecipeOutput() []string

type StatusError added in v0.19.1

type StatusError struct {
	Message          string   `json:"message"`
	Details          string   `json:"details"`
	TaskPath         []string `json:"taskPath"`
	OptimizedMessage string   `json:"optimizedMessage"`
}

type StatusSubscriber added in v0.18.26

type StatusSubscriber interface {
	UpdateRequired(status *InstallStatus) error
	InstallStarted(status *InstallStatus) error
	InstallCanceled(status *InstallStatus) error
	InstallComplete(status *InstallStatus) error
	DiscoveryComplete(status *InstallStatus, dm types.DiscoveryManifest) error
	RecipeDetected(status *InstallStatus, event RecipeStatusEvent) error
	RecipeCanceled(status *InstallStatus, event RecipeStatusEvent) error
	RecipeAvailable(status *InstallStatus, event RecipeStatusEvent) 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
	RecipeUnsupported(status *InstallStatus, event RecipeStatusEvent) error
	RecipesSelected(status *InstallStatus, recipes []types.OpenInstallationRecipe) error
}

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

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) InstallStarted added in v0.34.37

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

func (TerminalStatusReporter) RecipeAvailable added in v0.18.26

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

func (TerminalStatusReporter) RecipeCanceled added in v0.43.0

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

func (TerminalStatusReporter) RecipeDetected added in v0.36.10

func (r TerminalStatusReporter) RecipeDetected(status *InstallStatus, event RecipeStatusEvent) 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) RecipeUnsupported added in v0.28.11

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

func (TerminalStatusReporter) RecipesSelected added in v0.18.26

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

func (TerminalStatusReporter) UpdateRequired added in v0.34.0

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

Jump to

Keyboard shortcuts

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