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 ¶
- Variables
- func CreateScriptFile(log log.T, scriptPath string, runCommand []string) (err error)
- func DownloadFileFromSource(log log.T, source string, sourceHash string, sourceHashType string) (artifact.DownloadOutput, error)
- func GetProxySetting(proxyValue []string) (string, string)
- func GetShellArguments() []string
- func GetShellCommand() string
- func GetStatus(exitCode int, cancelFlag task.CancelFlag) contracts.ResultStatus
- func LoadParametersAsList(log log.T, prop interface{}) ([]interface{}, contracts.PluginResult)
- func LoadParametersAsMap(log log.T, prop interface{}) (map[string]interface{}, contracts.PluginResult)
- func LocalRegistryKeyGetStringsValue(path string, name string) (val []string, valtype uint32, err error)
- func ParseRunCommand(input interface{}, output []string) []string
- func PersistPluginInformationToCurrent(log log.T, pluginID string, config contracts.Configuration, ...)
- func ReadAll(input io.Reader, maxLength int, truncatedSuffix string) (out string, err error)
- func ReadPrefix(input io.Reader, maxLength int, truncatedSuffix string) (out string, err error)
- func StringPrefix(input string, maxLength int, truncatedSuffix string) string
- func ValidateExecutionTimeout(log log.T, input interface{}) int
- type DefaultPlugin
- type MockDefaultPlugin
- type PluginConfig
- type S3Uploader
- type UploadOutputToS3BucketExecuter
Constants ¶
This section is empty.
Variables ¶
var ShellArgs = []string{"-c"}
var ShellCommand = "sh"
Functions ¶
func CreateScriptFile ¶
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 ¶
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 ParseRunCommand ¶
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 ReadPrefix ¶
ReadPrefix returns the beginning data from a given Reader, truncated to the given limit.
func StringPrefix ¶
StringPrefix returns the beginning part of a string, truncated to the given limit.
func ValidateExecutionTimeout ¶
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 ¶
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.