Add all dependency of go-getter

This commit is contained in:
Jingfang Liu
2018-08-15 11:34:38 -07:00
parent c9a8bc1121
commit ec95e5f97e
2894 changed files with 1945864 additions and 0 deletions

10755
vendor/github.com/aws/aws-sdk-go/service/emr/api.go generated vendored Normal file

File diff suppressed because it is too large Load Diff

31
vendor/github.com/aws/aws-sdk-go/service/emr/doc.go generated vendored Normal file
View File

@@ -0,0 +1,31 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
// Package emr provides the client and types for making API
// requests to Amazon Elastic MapReduce.
//
// Amazon EMR is a web service that makes it easy to process large amounts of
// data efficiently. Amazon EMR uses Hadoop processing combined with several
// AWS products to do tasks such as web indexing, data mining, log file analysis,
// machine learning, scientific simulation, and data warehousing.
//
// See https://docs.aws.amazon.com/goto/WebAPI/elasticmapreduce-2009-03-31 for more information on this service.
//
// See emr package documentation for more information.
// https://docs.aws.amazon.com/sdk-for-go/api/service/emr/
//
// Using the Client
//
// To contact Amazon Elastic MapReduce with the SDK use the New function to create
// a new service client. With that client you can make API requests to the service.
// These clients are safe to use concurrently.
//
// See the SDK's documentation for more information on how to use the SDK.
// https://docs.aws.amazon.com/sdk-for-go/api/
//
// See aws.Config documentation for more information on configuring SDK clients.
// https://docs.aws.amazon.com/sdk-for-go/api/aws/#Config
//
// See the Amazon Elastic MapReduce client EMR for more
// information on creating client for this service.
// https://docs.aws.amazon.com/sdk-for-go/api/service/emr/#New
package emr

View File

@@ -0,0 +1,199 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
// Package emriface provides an interface to enable mocking the Amazon Elastic MapReduce service client
// for testing your code.
//
// It is important to note that this interface will have breaking changes
// when the service model is updated and adds new API operations, paginators,
// and waiters.
package emriface
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/service/emr"
)
// EMRAPI provides an interface to enable mocking the
// emr.EMR service client's API operation,
// paginators, and waiters. This make unit testing your code that calls out
// to the SDK's service client's calls easier.
//
// The best way to use this interface is so the SDK's service client's calls
// can be stubbed out for unit testing your code with the SDK without needing
// to inject custom request handlers into the SDK's request pipeline.
//
// // myFunc uses an SDK service client to make a request to
// // Amazon Elastic MapReduce.
// func myFunc(svc emriface.EMRAPI) bool {
// // Make svc.AddInstanceFleet request
// }
//
// func main() {
// sess := session.New()
// svc := emr.New(sess)
//
// myFunc(svc)
// }
//
// In your _test.go file:
//
// // Define a mock struct to be used in your unit tests of myFunc.
// type mockEMRClient struct {
// emriface.EMRAPI
// }
// func (m *mockEMRClient) AddInstanceFleet(input *emr.AddInstanceFleetInput) (*emr.AddInstanceFleetOutput, error) {
// // mock response/functionality
// }
//
// func TestMyFunc(t *testing.T) {
// // Setup Test
// mockSvc := &mockEMRClient{}
//
// myfunc(mockSvc)
//
// // Verify myFunc's functionality
// }
//
// It is important to note that this interface will have breaking changes
// when the service model is updated and adds new API operations, paginators,
// and waiters. Its suggested to use the pattern above for testing, or using
// tooling to generate mocks to satisfy the interfaces.
type EMRAPI interface {
AddInstanceFleet(*emr.AddInstanceFleetInput) (*emr.AddInstanceFleetOutput, error)
AddInstanceFleetWithContext(aws.Context, *emr.AddInstanceFleetInput, ...request.Option) (*emr.AddInstanceFleetOutput, error)
AddInstanceFleetRequest(*emr.AddInstanceFleetInput) (*request.Request, *emr.AddInstanceFleetOutput)
AddInstanceGroups(*emr.AddInstanceGroupsInput) (*emr.AddInstanceGroupsOutput, error)
AddInstanceGroupsWithContext(aws.Context, *emr.AddInstanceGroupsInput, ...request.Option) (*emr.AddInstanceGroupsOutput, error)
AddInstanceGroupsRequest(*emr.AddInstanceGroupsInput) (*request.Request, *emr.AddInstanceGroupsOutput)
AddJobFlowSteps(*emr.AddJobFlowStepsInput) (*emr.AddJobFlowStepsOutput, error)
AddJobFlowStepsWithContext(aws.Context, *emr.AddJobFlowStepsInput, ...request.Option) (*emr.AddJobFlowStepsOutput, error)
AddJobFlowStepsRequest(*emr.AddJobFlowStepsInput) (*request.Request, *emr.AddJobFlowStepsOutput)
AddTags(*emr.AddTagsInput) (*emr.AddTagsOutput, error)
AddTagsWithContext(aws.Context, *emr.AddTagsInput, ...request.Option) (*emr.AddTagsOutput, error)
AddTagsRequest(*emr.AddTagsInput) (*request.Request, *emr.AddTagsOutput)
CancelSteps(*emr.CancelStepsInput) (*emr.CancelStepsOutput, error)
CancelStepsWithContext(aws.Context, *emr.CancelStepsInput, ...request.Option) (*emr.CancelStepsOutput, error)
CancelStepsRequest(*emr.CancelStepsInput) (*request.Request, *emr.CancelStepsOutput)
CreateSecurityConfiguration(*emr.CreateSecurityConfigurationInput) (*emr.CreateSecurityConfigurationOutput, error)
CreateSecurityConfigurationWithContext(aws.Context, *emr.CreateSecurityConfigurationInput, ...request.Option) (*emr.CreateSecurityConfigurationOutput, error)
CreateSecurityConfigurationRequest(*emr.CreateSecurityConfigurationInput) (*request.Request, *emr.CreateSecurityConfigurationOutput)
DeleteSecurityConfiguration(*emr.DeleteSecurityConfigurationInput) (*emr.DeleteSecurityConfigurationOutput, error)
DeleteSecurityConfigurationWithContext(aws.Context, *emr.DeleteSecurityConfigurationInput, ...request.Option) (*emr.DeleteSecurityConfigurationOutput, error)
DeleteSecurityConfigurationRequest(*emr.DeleteSecurityConfigurationInput) (*request.Request, *emr.DeleteSecurityConfigurationOutput)
DescribeCluster(*emr.DescribeClusterInput) (*emr.DescribeClusterOutput, error)
DescribeClusterWithContext(aws.Context, *emr.DescribeClusterInput, ...request.Option) (*emr.DescribeClusterOutput, error)
DescribeClusterRequest(*emr.DescribeClusterInput) (*request.Request, *emr.DescribeClusterOutput)
DescribeJobFlows(*emr.DescribeJobFlowsInput) (*emr.DescribeJobFlowsOutput, error)
DescribeJobFlowsWithContext(aws.Context, *emr.DescribeJobFlowsInput, ...request.Option) (*emr.DescribeJobFlowsOutput, error)
DescribeJobFlowsRequest(*emr.DescribeJobFlowsInput) (*request.Request, *emr.DescribeJobFlowsOutput)
DescribeSecurityConfiguration(*emr.DescribeSecurityConfigurationInput) (*emr.DescribeSecurityConfigurationOutput, error)
DescribeSecurityConfigurationWithContext(aws.Context, *emr.DescribeSecurityConfigurationInput, ...request.Option) (*emr.DescribeSecurityConfigurationOutput, error)
DescribeSecurityConfigurationRequest(*emr.DescribeSecurityConfigurationInput) (*request.Request, *emr.DescribeSecurityConfigurationOutput)
DescribeStep(*emr.DescribeStepInput) (*emr.DescribeStepOutput, error)
DescribeStepWithContext(aws.Context, *emr.DescribeStepInput, ...request.Option) (*emr.DescribeStepOutput, error)
DescribeStepRequest(*emr.DescribeStepInput) (*request.Request, *emr.DescribeStepOutput)
ListBootstrapActions(*emr.ListBootstrapActionsInput) (*emr.ListBootstrapActionsOutput, error)
ListBootstrapActionsWithContext(aws.Context, *emr.ListBootstrapActionsInput, ...request.Option) (*emr.ListBootstrapActionsOutput, error)
ListBootstrapActionsRequest(*emr.ListBootstrapActionsInput) (*request.Request, *emr.ListBootstrapActionsOutput)
ListBootstrapActionsPages(*emr.ListBootstrapActionsInput, func(*emr.ListBootstrapActionsOutput, bool) bool) error
ListBootstrapActionsPagesWithContext(aws.Context, *emr.ListBootstrapActionsInput, func(*emr.ListBootstrapActionsOutput, bool) bool, ...request.Option) error
ListClusters(*emr.ListClustersInput) (*emr.ListClustersOutput, error)
ListClustersWithContext(aws.Context, *emr.ListClustersInput, ...request.Option) (*emr.ListClustersOutput, error)
ListClustersRequest(*emr.ListClustersInput) (*request.Request, *emr.ListClustersOutput)
ListClustersPages(*emr.ListClustersInput, func(*emr.ListClustersOutput, bool) bool) error
ListClustersPagesWithContext(aws.Context, *emr.ListClustersInput, func(*emr.ListClustersOutput, bool) bool, ...request.Option) error
ListInstanceFleets(*emr.ListInstanceFleetsInput) (*emr.ListInstanceFleetsOutput, error)
ListInstanceFleetsWithContext(aws.Context, *emr.ListInstanceFleetsInput, ...request.Option) (*emr.ListInstanceFleetsOutput, error)
ListInstanceFleetsRequest(*emr.ListInstanceFleetsInput) (*request.Request, *emr.ListInstanceFleetsOutput)
ListInstanceFleetsPages(*emr.ListInstanceFleetsInput, func(*emr.ListInstanceFleetsOutput, bool) bool) error
ListInstanceFleetsPagesWithContext(aws.Context, *emr.ListInstanceFleetsInput, func(*emr.ListInstanceFleetsOutput, bool) bool, ...request.Option) error
ListInstanceGroups(*emr.ListInstanceGroupsInput) (*emr.ListInstanceGroupsOutput, error)
ListInstanceGroupsWithContext(aws.Context, *emr.ListInstanceGroupsInput, ...request.Option) (*emr.ListInstanceGroupsOutput, error)
ListInstanceGroupsRequest(*emr.ListInstanceGroupsInput) (*request.Request, *emr.ListInstanceGroupsOutput)
ListInstanceGroupsPages(*emr.ListInstanceGroupsInput, func(*emr.ListInstanceGroupsOutput, bool) bool) error
ListInstanceGroupsPagesWithContext(aws.Context, *emr.ListInstanceGroupsInput, func(*emr.ListInstanceGroupsOutput, bool) bool, ...request.Option) error
ListInstances(*emr.ListInstancesInput) (*emr.ListInstancesOutput, error)
ListInstancesWithContext(aws.Context, *emr.ListInstancesInput, ...request.Option) (*emr.ListInstancesOutput, error)
ListInstancesRequest(*emr.ListInstancesInput) (*request.Request, *emr.ListInstancesOutput)
ListInstancesPages(*emr.ListInstancesInput, func(*emr.ListInstancesOutput, bool) bool) error
ListInstancesPagesWithContext(aws.Context, *emr.ListInstancesInput, func(*emr.ListInstancesOutput, bool) bool, ...request.Option) error
ListSecurityConfigurations(*emr.ListSecurityConfigurationsInput) (*emr.ListSecurityConfigurationsOutput, error)
ListSecurityConfigurationsWithContext(aws.Context, *emr.ListSecurityConfigurationsInput, ...request.Option) (*emr.ListSecurityConfigurationsOutput, error)
ListSecurityConfigurationsRequest(*emr.ListSecurityConfigurationsInput) (*request.Request, *emr.ListSecurityConfigurationsOutput)
ListSteps(*emr.ListStepsInput) (*emr.ListStepsOutput, error)
ListStepsWithContext(aws.Context, *emr.ListStepsInput, ...request.Option) (*emr.ListStepsOutput, error)
ListStepsRequest(*emr.ListStepsInput) (*request.Request, *emr.ListStepsOutput)
ListStepsPages(*emr.ListStepsInput, func(*emr.ListStepsOutput, bool) bool) error
ListStepsPagesWithContext(aws.Context, *emr.ListStepsInput, func(*emr.ListStepsOutput, bool) bool, ...request.Option) error
ModifyInstanceFleet(*emr.ModifyInstanceFleetInput) (*emr.ModifyInstanceFleetOutput, error)
ModifyInstanceFleetWithContext(aws.Context, *emr.ModifyInstanceFleetInput, ...request.Option) (*emr.ModifyInstanceFleetOutput, error)
ModifyInstanceFleetRequest(*emr.ModifyInstanceFleetInput) (*request.Request, *emr.ModifyInstanceFleetOutput)
ModifyInstanceGroups(*emr.ModifyInstanceGroupsInput) (*emr.ModifyInstanceGroupsOutput, error)
ModifyInstanceGroupsWithContext(aws.Context, *emr.ModifyInstanceGroupsInput, ...request.Option) (*emr.ModifyInstanceGroupsOutput, error)
ModifyInstanceGroupsRequest(*emr.ModifyInstanceGroupsInput) (*request.Request, *emr.ModifyInstanceGroupsOutput)
PutAutoScalingPolicy(*emr.PutAutoScalingPolicyInput) (*emr.PutAutoScalingPolicyOutput, error)
PutAutoScalingPolicyWithContext(aws.Context, *emr.PutAutoScalingPolicyInput, ...request.Option) (*emr.PutAutoScalingPolicyOutput, error)
PutAutoScalingPolicyRequest(*emr.PutAutoScalingPolicyInput) (*request.Request, *emr.PutAutoScalingPolicyOutput)
RemoveAutoScalingPolicy(*emr.RemoveAutoScalingPolicyInput) (*emr.RemoveAutoScalingPolicyOutput, error)
RemoveAutoScalingPolicyWithContext(aws.Context, *emr.RemoveAutoScalingPolicyInput, ...request.Option) (*emr.RemoveAutoScalingPolicyOutput, error)
RemoveAutoScalingPolicyRequest(*emr.RemoveAutoScalingPolicyInput) (*request.Request, *emr.RemoveAutoScalingPolicyOutput)
RemoveTags(*emr.RemoveTagsInput) (*emr.RemoveTagsOutput, error)
RemoveTagsWithContext(aws.Context, *emr.RemoveTagsInput, ...request.Option) (*emr.RemoveTagsOutput, error)
RemoveTagsRequest(*emr.RemoveTagsInput) (*request.Request, *emr.RemoveTagsOutput)
RunJobFlow(*emr.RunJobFlowInput) (*emr.RunJobFlowOutput, error)
RunJobFlowWithContext(aws.Context, *emr.RunJobFlowInput, ...request.Option) (*emr.RunJobFlowOutput, error)
RunJobFlowRequest(*emr.RunJobFlowInput) (*request.Request, *emr.RunJobFlowOutput)
SetTerminationProtection(*emr.SetTerminationProtectionInput) (*emr.SetTerminationProtectionOutput, error)
SetTerminationProtectionWithContext(aws.Context, *emr.SetTerminationProtectionInput, ...request.Option) (*emr.SetTerminationProtectionOutput, error)
SetTerminationProtectionRequest(*emr.SetTerminationProtectionInput) (*request.Request, *emr.SetTerminationProtectionOutput)
SetVisibleToAllUsers(*emr.SetVisibleToAllUsersInput) (*emr.SetVisibleToAllUsersOutput, error)
SetVisibleToAllUsersWithContext(aws.Context, *emr.SetVisibleToAllUsersInput, ...request.Option) (*emr.SetVisibleToAllUsersOutput, error)
SetVisibleToAllUsersRequest(*emr.SetVisibleToAllUsersInput) (*request.Request, *emr.SetVisibleToAllUsersOutput)
TerminateJobFlows(*emr.TerminateJobFlowsInput) (*emr.TerminateJobFlowsOutput, error)
TerminateJobFlowsWithContext(aws.Context, *emr.TerminateJobFlowsInput, ...request.Option) (*emr.TerminateJobFlowsOutput, error)
TerminateJobFlowsRequest(*emr.TerminateJobFlowsInput) (*request.Request, *emr.TerminateJobFlowsOutput)
WaitUntilClusterRunning(*emr.DescribeClusterInput) error
WaitUntilClusterRunningWithContext(aws.Context, *emr.DescribeClusterInput, ...request.WaiterOption) error
WaitUntilClusterTerminated(*emr.DescribeClusterInput) error
WaitUntilClusterTerminatedWithContext(aws.Context, *emr.DescribeClusterInput, ...request.WaiterOption) error
WaitUntilStepComplete(*emr.DescribeStepInput) error
WaitUntilStepCompleteWithContext(aws.Context, *emr.DescribeStepInput, ...request.WaiterOption) error
}
var _ EMRAPI = (*emr.EMR)(nil)

25
vendor/github.com/aws/aws-sdk-go/service/emr/errors.go generated vendored Normal file
View File

@@ -0,0 +1,25 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package emr
const (
// ErrCodeInternalServerError for service response error code
// "InternalServerError".
//
// Indicates that an error occurred while processing the request and that the
// request was not completed.
ErrCodeInternalServerError = "InternalServerError"
// ErrCodeInternalServerException for service response error code
// "InternalServerException".
//
// This exception occurs when there is an internal failure in the EMR service.
ErrCodeInternalServerException = "InternalServerException"
// ErrCodeInvalidRequestException for service response error code
// "InvalidRequestException".
//
// This exception occurs when there is something wrong with user input.
ErrCodeInvalidRequestException = "InvalidRequestException"
)

View File

@@ -0,0 +1,97 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package emr
import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/client"
"github.com/aws/aws-sdk-go/aws/client/metadata"
"github.com/aws/aws-sdk-go/aws/request"
"github.com/aws/aws-sdk-go/aws/signer/v4"
"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
)
// EMR provides the API operation methods for making requests to
// Amazon Elastic MapReduce. See this package's package overview docs
// for details on the service.
//
// EMR methods are safe to use concurrently. It is not safe to
// modify mutate any of the struct's properties though.
type EMR struct {
*client.Client
}
// Used for custom client initialization logic
var initClient func(*client.Client)
// Used for custom request initialization logic
var initRequest func(*request.Request)
// Service information constants
const (
ServiceName = "elasticmapreduce" // Name of service.
EndpointsID = ServiceName // ID to lookup a service endpoint with.
ServiceID = "EMR" // ServiceID is a unique identifer of a specific service.
)
// New creates a new instance of the EMR client with a session.
// If additional configuration is needed for the client instance use the optional
// aws.Config parameter to add your extra config.
//
// Example:
// // Create a EMR client from just a session.
// svc := emr.New(mySession)
//
// // Create a EMR client with additional configuration
// svc := emr.New(mySession, aws.NewConfig().WithRegion("us-west-2"))
func New(p client.ConfigProvider, cfgs ...*aws.Config) *EMR {
c := p.ClientConfig(EndpointsID, cfgs...)
return newClient(*c.Config, c.Handlers, c.Endpoint, c.SigningRegion, c.SigningName)
}
// newClient creates, initializes and returns a new service client instance.
func newClient(cfg aws.Config, handlers request.Handlers, endpoint, signingRegion, signingName string) *EMR {
svc := &EMR{
Client: client.New(
cfg,
metadata.ClientInfo{
ServiceName: ServiceName,
ServiceID: ServiceID,
SigningName: signingName,
SigningRegion: signingRegion,
Endpoint: endpoint,
APIVersion: "2009-03-31",
JSONVersion: "1.1",
TargetPrefix: "ElasticMapReduce",
},
handlers,
),
}
// Handlers
svc.Handlers.Sign.PushBackNamed(v4.SignRequestHandler)
svc.Handlers.Build.PushBackNamed(jsonrpc.BuildHandler)
svc.Handlers.Unmarshal.PushBackNamed(jsonrpc.UnmarshalHandler)
svc.Handlers.UnmarshalMeta.PushBackNamed(jsonrpc.UnmarshalMetaHandler)
svc.Handlers.UnmarshalError.PushBackNamed(jsonrpc.UnmarshalErrorHandler)
// Run custom client initialization if present
if initClient != nil {
initClient(svc.Client)
}
return svc
}
// newRequest creates a new request for a EMR operation and runs any
// custom request initialization.
func (c *EMR) newRequest(op *request.Operation, params, data interface{}) *request.Request {
req := c.NewRequest(op, params, data)
// Run custom request initialization if present
if initRequest != nil {
initRequest(req)
}
return req
}

183
vendor/github.com/aws/aws-sdk-go/service/emr/waiters.go generated vendored Normal file
View File

@@ -0,0 +1,183 @@
// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
package emr
import (
"time"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/request"
)
// WaitUntilClusterRunning uses the Amazon EMR API operation
// DescribeCluster to wait for a condition to be met before returning.
// If the condition is not met within the max attempt window, an error will
// be returned.
func (c *EMR) WaitUntilClusterRunning(input *DescribeClusterInput) error {
return c.WaitUntilClusterRunningWithContext(aws.BackgroundContext(), input)
}
// WaitUntilClusterRunningWithContext is an extended version of WaitUntilClusterRunning.
// With the support for passing in a context and options to configure the
// Waiter and the underlying request options.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *EMR) WaitUntilClusterRunningWithContext(ctx aws.Context, input *DescribeClusterInput, opts ...request.WaiterOption) error {
w := request.Waiter{
Name: "WaitUntilClusterRunning",
MaxAttempts: 60,
Delay: request.ConstantWaiterDelay(30 * time.Second),
Acceptors: []request.WaiterAcceptor{
{
State: request.SuccessWaiterState,
Matcher: request.PathWaiterMatch, Argument: "Cluster.Status.State",
Expected: "RUNNING",
},
{
State: request.SuccessWaiterState,
Matcher: request.PathWaiterMatch, Argument: "Cluster.Status.State",
Expected: "WAITING",
},
{
State: request.FailureWaiterState,
Matcher: request.PathWaiterMatch, Argument: "Cluster.Status.State",
Expected: "TERMINATING",
},
{
State: request.FailureWaiterState,
Matcher: request.PathWaiterMatch, Argument: "Cluster.Status.State",
Expected: "TERMINATED",
},
{
State: request.FailureWaiterState,
Matcher: request.PathWaiterMatch, Argument: "Cluster.Status.State",
Expected: "TERMINATED_WITH_ERRORS",
},
},
Logger: c.Config.Logger,
NewRequest: func(opts []request.Option) (*request.Request, error) {
var inCpy *DescribeClusterInput
if input != nil {
tmp := *input
inCpy = &tmp
}
req, _ := c.DescribeClusterRequest(inCpy)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return req, nil
},
}
w.ApplyOptions(opts...)
return w.WaitWithContext(ctx)
}
// WaitUntilClusterTerminated uses the Amazon EMR API operation
// DescribeCluster to wait for a condition to be met before returning.
// If the condition is not met within the max attempt window, an error will
// be returned.
func (c *EMR) WaitUntilClusterTerminated(input *DescribeClusterInput) error {
return c.WaitUntilClusterTerminatedWithContext(aws.BackgroundContext(), input)
}
// WaitUntilClusterTerminatedWithContext is an extended version of WaitUntilClusterTerminated.
// With the support for passing in a context and options to configure the
// Waiter and the underlying request options.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *EMR) WaitUntilClusterTerminatedWithContext(ctx aws.Context, input *DescribeClusterInput, opts ...request.WaiterOption) error {
w := request.Waiter{
Name: "WaitUntilClusterTerminated",
MaxAttempts: 60,
Delay: request.ConstantWaiterDelay(30 * time.Second),
Acceptors: []request.WaiterAcceptor{
{
State: request.SuccessWaiterState,
Matcher: request.PathWaiterMatch, Argument: "Cluster.Status.State",
Expected: "TERMINATED",
},
{
State: request.FailureWaiterState,
Matcher: request.PathWaiterMatch, Argument: "Cluster.Status.State",
Expected: "TERMINATED_WITH_ERRORS",
},
},
Logger: c.Config.Logger,
NewRequest: func(opts []request.Option) (*request.Request, error) {
var inCpy *DescribeClusterInput
if input != nil {
tmp := *input
inCpy = &tmp
}
req, _ := c.DescribeClusterRequest(inCpy)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return req, nil
},
}
w.ApplyOptions(opts...)
return w.WaitWithContext(ctx)
}
// WaitUntilStepComplete uses the Amazon EMR API operation
// DescribeStep to wait for a condition to be met before returning.
// If the condition is not met within the max attempt window, an error will
// be returned.
func (c *EMR) WaitUntilStepComplete(input *DescribeStepInput) error {
return c.WaitUntilStepCompleteWithContext(aws.BackgroundContext(), input)
}
// WaitUntilStepCompleteWithContext is an extended version of WaitUntilStepComplete.
// With the support for passing in a context and options to configure the
// Waiter and the underlying request options.
//
// The context must be non-nil and will be used for request cancellation. If
// the context is nil a panic will occur. In the future the SDK may create
// sub-contexts for http.Requests. See https://golang.org/pkg/context/
// for more information on using Contexts.
func (c *EMR) WaitUntilStepCompleteWithContext(ctx aws.Context, input *DescribeStepInput, opts ...request.WaiterOption) error {
w := request.Waiter{
Name: "WaitUntilStepComplete",
MaxAttempts: 60,
Delay: request.ConstantWaiterDelay(30 * time.Second),
Acceptors: []request.WaiterAcceptor{
{
State: request.SuccessWaiterState,
Matcher: request.PathWaiterMatch, Argument: "Step.Status.State",
Expected: "COMPLETED",
},
{
State: request.FailureWaiterState,
Matcher: request.PathWaiterMatch, Argument: "Step.Status.State",
Expected: "FAILED",
},
{
State: request.FailureWaiterState,
Matcher: request.PathWaiterMatch, Argument: "Step.Status.State",
Expected: "CANCELLED",
},
},
Logger: c.Config.Logger,
NewRequest: func(opts []request.Option) (*request.Request, error) {
var inCpy *DescribeStepInput
if input != nil {
tmp := *input
inCpy = &tmp
}
req, _ := c.DescribeStepRequest(inCpy)
req.SetContext(ctx)
req.ApplyOptions(opts...)
return req, nil
},
}
w.ApplyOptions(opts...)
return w.WaitWithContext(ctx)
}