pluginutil

package
v0.0.0-...-a1f36d2 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2017 License: Apache-2.0 Imports: 17 Imported by: 0

Documentation

Overview

Copyright 2016 Amazon.com, Inc. or its affiliates. All Rights Reserved.

Licensed under the AWS Customer Agreement (the "License"). You may not use this file except in compliance with the License. A copy of the License is located at

http://aws.amazon.com/agreement/

Package pluginutil implements some common functions shared by multiple plugins.

Index

Constants

This section is empty.

Variables

View Source
var ShellArgs = []string{"-c"}
View Source
var ShellCommand = "sh"

Functions

func CreateScriptFile

func CreateScriptFile(log log.T, scriptPath string, runCommand []string) (err error)

CreateScriptFile creates a script containing the given commands.

func DownloadFileFromSource

func DownloadFileFromSource(log log.T, source string, sourceHash string, sourceHashType string) (artifact.DownloadOutput, error)

DownloadFileFromSource downloads file from source

func GetProxySetting

func GetProxySetting(proxyValue []string) (string, string)

GetProxySetting returns proxy setting from registry entries

func GetShellArguments

func GetShellArguments() []string

func GetShellCommand

func GetShellCommand() string

func GetStatus

func GetStatus(exitCode int, cancelFlag task.CancelFlag) contracts.ResultStatus

GetStatus returns a ResultStatus variable based on the received exitCode

func LoadParametersAsList

func LoadParametersAsList(log log.T, prop interface{}) ([]interface{}, contracts.PluginResult)

LoadParametersAsList returns properties as a list and appropriate PluginResult if error is encountered

func LoadParametersAsMap

func LoadParametersAsMap(log log.T, prop interface{}) (map[string]interface{}, contracts.PluginResult)

LoadParametersAsMap returns properties as a map and appropriate PluginResult if error is encountered

func LocalRegistryKeyGetStringsValue

func LocalRegistryKeyGetStringsValue(path string, name string) (val []string, valtype uint32, err error)

func ParseRunCommand

func ParseRunCommand(input interface{}, output []string) []string

ParseRunCommand checks the command type and convert it to the string array

func PersistPluginInformationToCurrent

func PersistPluginInformationToCurrent(log log.T, pluginID string, config contracts.Configuration, res contracts.PluginResult)

PersistPluginInformationToCurrent persists the plugin execution results

func ReadAll

func ReadAll(input io.Reader, maxLength int, truncatedSuffix string) (out string, err error)

ReadAll returns all data from a given Reader.

func ReadPrefix

func ReadPrefix(input io.Reader, maxLength int, truncatedSuffix string) (out string, err error)

ReadPrefix returns the beginning data from a given Reader, truncated to the given limit.

func StringPrefix

func StringPrefix(input string, maxLength int, truncatedSuffix string) string

StringPrefix returns the beginning part of a string, truncated to the given limit.

func ValidateExecutionTimeout

func ValidateExecutionTimeout(log log.T, input interface{}) int

ValidateExecutionTimeout validates the supplied input interface and converts it into a valid int value.

Types

type DefaultPlugin

type DefaultPlugin struct {
	// ExecuteCommand is an object that can execute commands.
	CommandExecuter executers.T

	// ExecuteUploadOutputToS3Bucket is an object that can upload command outputs to S3 bucket.
	ExecuteUploadOutputToS3Bucket UploadOutputToS3BucketExecuter

	// Uploader is an object that can upload data to s3.
	Uploader S3Uploader

	// UploadToS3Sync is true if uploading to S3 should be done synchronously, false for async.
	UploadToS3Sync bool

	// StdoutFileName is the name of the file that stores standard output.
	StdoutFileName string

	// StderrFileName is the name of the file that stores standard error.
	StderrFileName string

	// MaxStdoutLength is the maximum lenght of the standard output returned in the plugin result.
	// If the output is longer, it will be truncated. The full output will be uploaded to s3.
	MaxStdoutLength int

	// MaxStderrLength is the maximum lenght of the standard error returned in the plugin result.
	MaxStderrLength int

	// OutputTruncatedSuffix is an optional suffix that is inserted at the end of the truncated stdout/stderr.
	OutputTruncatedSuffix string
}

DefaultPlugin is the type for the default plugin.

func (*DefaultPlugin) UploadOutputToS3Bucket

func (p *DefaultPlugin) UploadOutputToS3Bucket(log log.T, pluginID string, orchestrationDir string,
	outputS3BucketName string, outputS3KeyPrefix string, useTempDirectory bool, tempDir string,
	Stdout string, Stderr string) []string

UploadOutputToS3Bucket uploads outputs (if any) to s3

type MockDefaultPlugin

type MockDefaultPlugin struct {
	mock.Mock
}

MockDefaultPlugin mocks the default plugin.

func (*MockDefaultPlugin) UploadOutputToS3Bucket

func (m *MockDefaultPlugin) UploadOutputToS3Bucket(log log.T, pluginID string, orchestrationDir string, outputS3BucketName string, outputS3KeyPrefix string, useTempDirectory bool, tempDir string, Stdout string, Stderr string) []string

UploadOutputToS3Bucket is a mocked method that just returns what mock tells it to.

type PluginConfig

type PluginConfig struct {
	StdoutFileName        string
	StderrFileName        string
	MaxStdoutLength       int
	MaxStderrLength       int
	OutputTruncatedSuffix string
}

PluginConfig is used for initializing plugins with default values

func DefaultPluginConfig

func DefaultPluginConfig() PluginConfig

DefaultPluginConfig returns the default values for the plugin

type S3Uploader

type S3Uploader interface {
	S3Upload(log log.T, bucketName string, bucketKey string, filePath string) error
	UploadS3TestFile(log log.T, bucketName, key string) error
	IsS3ErrorRelatedToAccessDenied(errMsg string) bool
	IsS3ErrorRelatedToWrongBucketRegion(errMsg string) bool
	GetS3BucketRegionFromErrorMsg(log log.T, errMsg string) string
	GetS3ClientRegion() string
	SetS3ClientRegion(region string)
}

S3Uploader is an interface for objects that can upload data to s3.

type UploadOutputToS3BucketExecuter

type UploadOutputToS3BucketExecuter func(log log.T, pluginID string, orchestrationDir string, outputS3BucketName string, outputS3KeyPrefix string, useTempDirectory bool, tempDir string, Stdout string, Stderr string) []string

UploadOutputToS3BucketExecuter is a function that can upload outputs to S3 bucket.

Jump to

Keyboard shortcuts

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