mirror of https://github.com/kubernetes/kops.git
Merge pull request #1875 from andrewsykim/rolling-update-tests
Rolling Update Unit Tests
This commit is contained in:
commit
ff9a13ce32
|
@ -17,13 +17,15 @@ limitations under the License.
|
|||
package mockautoscaling
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/autoscaling"
|
||||
)
|
||||
|
||||
func (m *MockAutoscaling) AttachInstances(input *autoscaling.AttachInstancesInput) (*autoscaling.AttachInstancesOutput, error) {
|
||||
for _, group := range m.Groups {
|
||||
if group.AutoScalingGroupName == input.AutoScalingGroupName {
|
||||
if aws.StringValue(group.AutoScalingGroupName) == aws.StringValue(input.AutoScalingGroupName) {
|
||||
for _, instanceID := range input.InstanceIds {
|
||||
group.Instances = append(group.Instances, &autoscaling.Instance{InstanceId: instanceID})
|
||||
}
|
||||
|
@ -44,13 +46,36 @@ func (m *MockAutoscaling) CreateAutoScalingGroup(input *autoscaling.CreateAutoSc
|
|||
return nil, nil
|
||||
}
|
||||
|
||||
func (m *MockAutoscaling) DescribeAutoScalingGroups(input *autoscaling.DescribeAutoScalingGroupsInput) (*autoscaling.DescribeAutoScalingGroupsOutput, error) {
|
||||
if len(input.AutoScalingGroupNames) == 0 {
|
||||
return &autoscaling.DescribeAutoScalingGroupsOutput{
|
||||
AutoScalingGroups: m.Groups,
|
||||
}, nil
|
||||
}
|
||||
|
||||
groups := []*autoscaling.Group{}
|
||||
for _, group := range m.Groups {
|
||||
for _, inputGroupName := range input.AutoScalingGroupNames {
|
||||
if aws.StringValue(group.AutoScalingGroupName) == aws.StringValue(inputGroupName) {
|
||||
groups = append(groups, group)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return &autoscaling.DescribeAutoScalingGroupsOutput{
|
||||
AutoScalingGroups: groups,
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (m *MockAutoscaling) TerminateInstanceInAutoScalingGroup(input *autoscaling.TerminateInstanceInAutoScalingGroupInput) (*autoscaling.TerminateInstanceInAutoScalingGroupOutput, error) {
|
||||
for _, group := range m.Groups {
|
||||
for i := range group.Instances {
|
||||
if aws.StringValue(group.Instances[i].InstanceId) == aws.StringValue(input.InstanceId) {
|
||||
group.Instances = append(group.Instances[:i], group.Instances[i+1:]...)
|
||||
return nil, nil
|
||||
}
|
||||
}
|
||||
}
|
||||
return nil, nil
|
||||
|
||||
return nil, fmt.Errorf("Instance not found")
|
||||
}
|
||||
|
|
|
@ -23,562 +23,557 @@ import (
|
|||
"github.com/aws/aws-sdk-go/service/autoscaling"
|
||||
)
|
||||
|
||||
func AttachInstancesRequest(*autoscaling.AttachInstancesInput) (*request.Request, *autoscaling.AttachInstancesOutput) {
|
||||
func (m *MockAutoscaling) AttachInstancesRequest(*autoscaling.AttachInstancesInput) (*request.Request, *autoscaling.AttachInstancesOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func AttachLoadBalancerTargetGroupsRequest(*autoscaling.AttachLoadBalancerTargetGroupsInput) (*request.Request, *autoscaling.AttachLoadBalancerTargetGroupsOutput) {
|
||||
func (m *MockAutoscaling) AttachLoadBalancerTargetGroupsRequest(*autoscaling.AttachLoadBalancerTargetGroupsInput) (*request.Request, *autoscaling.AttachLoadBalancerTargetGroupsOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func AttachLoadBalancerTargetGroups(*autoscaling.AttachLoadBalancerTargetGroupsInput) (*autoscaling.AttachLoadBalancerTargetGroupsOutput, error) {
|
||||
func (m *MockAutoscaling) AttachLoadBalancerTargetGroups(*autoscaling.AttachLoadBalancerTargetGroupsInput) (*autoscaling.AttachLoadBalancerTargetGroupsOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func AttachLoadBalancersRequest(*autoscaling.AttachLoadBalancersInput) (*request.Request, *autoscaling.AttachLoadBalancersOutput) {
|
||||
func (m *MockAutoscaling) AttachLoadBalancersRequest(*autoscaling.AttachLoadBalancersInput) (*request.Request, *autoscaling.AttachLoadBalancersOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func AttachLoadBalancers(*autoscaling.AttachLoadBalancersInput) (*autoscaling.AttachLoadBalancersOutput, error) {
|
||||
func (m *MockAutoscaling) AttachLoadBalancers(*autoscaling.AttachLoadBalancersInput) (*autoscaling.AttachLoadBalancersOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func CompleteLifecycleActionRequest(*autoscaling.CompleteLifecycleActionInput) (*request.Request, *autoscaling.CompleteLifecycleActionOutput) {
|
||||
func (m *MockAutoscaling) CompleteLifecycleActionRequest(*autoscaling.CompleteLifecycleActionInput) (*request.Request, *autoscaling.CompleteLifecycleActionOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func CompleteLifecycleAction(*autoscaling.CompleteLifecycleActionInput) (*autoscaling.CompleteLifecycleActionOutput, error) {
|
||||
func (m *MockAutoscaling) CompleteLifecycleAction(*autoscaling.CompleteLifecycleActionInput) (*autoscaling.CompleteLifecycleActionOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func CreateAutoScalingGroupRequest(*autoscaling.CreateAutoScalingGroupInput) (*request.Request, *autoscaling.CreateAutoScalingGroupOutput) {
|
||||
func (m *MockAutoscaling) CreateAutoScalingGroupRequest(*autoscaling.CreateAutoScalingGroupInput) (*request.Request, *autoscaling.CreateAutoScalingGroupOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func CreateLaunchConfigurationRequest(*autoscaling.CreateLaunchConfigurationInput) (*request.Request, *autoscaling.CreateLaunchConfigurationOutput) {
|
||||
func (m *MockAutoscaling) CreateLaunchConfigurationRequest(*autoscaling.CreateLaunchConfigurationInput) (*request.Request, *autoscaling.CreateLaunchConfigurationOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func CreateLaunchConfiguration(*autoscaling.CreateLaunchConfigurationInput) (*autoscaling.CreateLaunchConfigurationOutput, error) {
|
||||
func (m *MockAutoscaling) CreateLaunchConfiguration(*autoscaling.CreateLaunchConfigurationInput) (*autoscaling.CreateLaunchConfigurationOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func CreateOrUpdateTagsRequest(*autoscaling.CreateOrUpdateTagsInput) (*request.Request, *autoscaling.CreateOrUpdateTagsOutput) {
|
||||
func (m *MockAutoscaling) CreateOrUpdateTagsRequest(*autoscaling.CreateOrUpdateTagsInput) (*request.Request, *autoscaling.CreateOrUpdateTagsOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func CreateOrUpdateTags(*autoscaling.CreateOrUpdateTagsInput) (*autoscaling.CreateOrUpdateTagsOutput, error) {
|
||||
func (m *MockAutoscaling) CreateOrUpdateTags(*autoscaling.CreateOrUpdateTagsInput) (*autoscaling.CreateOrUpdateTagsOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DeleteAutoScalingGroupRequest(*autoscaling.DeleteAutoScalingGroupInput) (*request.Request, *autoscaling.DeleteAutoScalingGroupOutput) {
|
||||
func (m *MockAutoscaling) DeleteAutoScalingGroupRequest(*autoscaling.DeleteAutoScalingGroupInput) (*request.Request, *autoscaling.DeleteAutoScalingGroupOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DeleteAutoScalingGroup(*autoscaling.DeleteAutoScalingGroupInput) (*autoscaling.DeleteAutoScalingGroupOutput, error) {
|
||||
func (m *MockAutoscaling) DeleteAutoScalingGroup(*autoscaling.DeleteAutoScalingGroupInput) (*autoscaling.DeleteAutoScalingGroupOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DeleteLaunchConfigurationRequest(*autoscaling.DeleteLaunchConfigurationInput) (*request.Request, *autoscaling.DeleteLaunchConfigurationOutput) {
|
||||
func (m *MockAutoscaling) DeleteLaunchConfigurationRequest(*autoscaling.DeleteLaunchConfigurationInput) (*request.Request, *autoscaling.DeleteLaunchConfigurationOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DeleteLaunchConfiguration(*autoscaling.DeleteLaunchConfigurationInput) (*autoscaling.DeleteLaunchConfigurationOutput, error) {
|
||||
func (m *MockAutoscaling) DeleteLaunchConfiguration(*autoscaling.DeleteLaunchConfigurationInput) (*autoscaling.DeleteLaunchConfigurationOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DeleteLifecycleHookRequest(*autoscaling.DeleteLifecycleHookInput) (*request.Request, *autoscaling.DeleteLifecycleHookOutput) {
|
||||
func (m *MockAutoscaling) DeleteLifecycleHookRequest(*autoscaling.DeleteLifecycleHookInput) (*request.Request, *autoscaling.DeleteLifecycleHookOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DeleteLifecycleHook(*autoscaling.DeleteLifecycleHookInput) (*autoscaling.DeleteLifecycleHookOutput, error) {
|
||||
func (m *MockAutoscaling) DeleteLifecycleHook(*autoscaling.DeleteLifecycleHookInput) (*autoscaling.DeleteLifecycleHookOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DeleteNotificationConfigurationRequest(*autoscaling.DeleteNotificationConfigurationInput) (*request.Request, *autoscaling.DeleteNotificationConfigurationOutput) {
|
||||
func (m *MockAutoscaling) DeleteNotificationConfigurationRequest(*autoscaling.DeleteNotificationConfigurationInput) (*request.Request, *autoscaling.DeleteNotificationConfigurationOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DeleteNotificationConfiguration(*autoscaling.DeleteNotificationConfigurationInput) (*autoscaling.DeleteNotificationConfigurationOutput, error) {
|
||||
func (m *MockAutoscaling) DeleteNotificationConfiguration(*autoscaling.DeleteNotificationConfigurationInput) (*autoscaling.DeleteNotificationConfigurationOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DeletePolicyRequest(*autoscaling.DeletePolicyInput) (*request.Request, *autoscaling.DeletePolicyOutput) {
|
||||
func (m *MockAutoscaling) DeletePolicyRequest(*autoscaling.DeletePolicyInput) (*request.Request, *autoscaling.DeletePolicyOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DeletePolicy(*autoscaling.DeletePolicyInput) (*autoscaling.DeletePolicyOutput, error) {
|
||||
func (m *MockAutoscaling) DeletePolicy(*autoscaling.DeletePolicyInput) (*autoscaling.DeletePolicyOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DeleteScheduledActionRequest(*autoscaling.DeleteScheduledActionInput) (*request.Request, *autoscaling.DeleteScheduledActionOutput) {
|
||||
func (m *MockAutoscaling) DeleteScheduledActionRequest(*autoscaling.DeleteScheduledActionInput) (*request.Request, *autoscaling.DeleteScheduledActionOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DeleteScheduledAction(*autoscaling.DeleteScheduledActionInput) (*autoscaling.DeleteScheduledActionOutput, error) {
|
||||
func (m *MockAutoscaling) DeleteScheduledAction(*autoscaling.DeleteScheduledActionInput) (*autoscaling.DeleteScheduledActionOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DeleteTagsRequest(*autoscaling.DeleteTagsInput) (*request.Request, *autoscaling.DeleteTagsOutput) {
|
||||
func (m *MockAutoscaling) DeleteTagsRequest(*autoscaling.DeleteTagsInput) (*request.Request, *autoscaling.DeleteTagsOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DeleteTags(*autoscaling.DeleteTagsInput) (*autoscaling.DeleteTagsOutput, error) {
|
||||
func (m *MockAutoscaling) DeleteTags(*autoscaling.DeleteTagsInput) (*autoscaling.DeleteTagsOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeAccountLimitsRequest(*autoscaling.DescribeAccountLimitsInput) (*request.Request, *autoscaling.DescribeAccountLimitsOutput) {
|
||||
func (m *MockAutoscaling) DescribeAccountLimitsRequest(*autoscaling.DescribeAccountLimitsInput) (*request.Request, *autoscaling.DescribeAccountLimitsOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeAccountLimits(*autoscaling.DescribeAccountLimitsInput) (*autoscaling.DescribeAccountLimitsOutput, error) {
|
||||
func (m *MockAutoscaling) DescribeAccountLimits(*autoscaling.DescribeAccountLimitsInput) (*autoscaling.DescribeAccountLimitsOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeAdjustmentTypesRequest(*autoscaling.DescribeAdjustmentTypesInput) (*request.Request, *autoscaling.DescribeAdjustmentTypesOutput) {
|
||||
func (m *MockAutoscaling) DescribeAdjustmentTypesRequest(*autoscaling.DescribeAdjustmentTypesInput) (*request.Request, *autoscaling.DescribeAdjustmentTypesOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeAdjustmentTypes(*autoscaling.DescribeAdjustmentTypesInput) (*autoscaling.DescribeAdjustmentTypesOutput, error) {
|
||||
func (m *MockAutoscaling) DescribeAdjustmentTypes(*autoscaling.DescribeAdjustmentTypesInput) (*autoscaling.DescribeAdjustmentTypesOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeAutoScalingGroupsRequest(*autoscaling.DescribeAutoScalingGroupsInput) (*request.Request, *autoscaling.DescribeAutoScalingGroupsOutput) {
|
||||
func (m *MockAutoscaling) DescribeAutoScalingGroupsRequest(*autoscaling.DescribeAutoScalingGroupsInput) (*request.Request, *autoscaling.DescribeAutoScalingGroupsOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeAutoScalingGroups(*autoscaling.DescribeAutoScalingGroupsInput) (*autoscaling.DescribeAutoScalingGroupsOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeAutoScalingGroupsPages(*autoscaling.DescribeAutoScalingGroupsInput, func(*autoscaling.DescribeAutoScalingGroupsOutput, bool) bool) error {
|
||||
func (m *MockAutoscaling) DescribeAutoScalingGroupsPages(*autoscaling.DescribeAutoScalingGroupsInput, func(*autoscaling.DescribeAutoScalingGroupsOutput, bool) bool) error {
|
||||
log.Fatal("Not implemented")
|
||||
return nil
|
||||
}
|
||||
|
||||
func DescribeAutoScalingInstancesRequest(*autoscaling.DescribeAutoScalingInstancesInput) (*request.Request, *autoscaling.DescribeAutoScalingInstancesOutput) {
|
||||
func (m *MockAutoscaling) DescribeAutoScalingInstancesRequest(*autoscaling.DescribeAutoScalingInstancesInput) (*request.Request, *autoscaling.DescribeAutoScalingInstancesOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeAutoScalingInstances(*autoscaling.DescribeAutoScalingInstancesInput) (*autoscaling.DescribeAutoScalingInstancesOutput, error) {
|
||||
func (m *MockAutoscaling) DescribeAutoScalingInstances(*autoscaling.DescribeAutoScalingInstancesInput) (*autoscaling.DescribeAutoScalingInstancesOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeAutoScalingInstancesPages(*autoscaling.DescribeAutoScalingInstancesInput, func(*autoscaling.DescribeAutoScalingInstancesOutput, bool) bool) error {
|
||||
func (m *MockAutoscaling) DescribeAutoScalingInstancesPages(*autoscaling.DescribeAutoScalingInstancesInput, func(*autoscaling.DescribeAutoScalingInstancesOutput, bool) bool) error {
|
||||
log.Fatal("Not implemented")
|
||||
return nil
|
||||
}
|
||||
|
||||
func DescribeAutoScalingNotificationTypesRequest(*autoscaling.DescribeAutoScalingNotificationTypesInput) (*request.Request, *autoscaling.DescribeAutoScalingNotificationTypesOutput) {
|
||||
func (m *MockAutoscaling) DescribeAutoScalingNotificationTypesRequest(*autoscaling.DescribeAutoScalingNotificationTypesInput) (*request.Request, *autoscaling.DescribeAutoScalingNotificationTypesOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeAutoScalingNotificationTypes(*autoscaling.DescribeAutoScalingNotificationTypesInput) (*autoscaling.DescribeAutoScalingNotificationTypesOutput, error) {
|
||||
func (m *MockAutoscaling) DescribeAutoScalingNotificationTypes(*autoscaling.DescribeAutoScalingNotificationTypesInput) (*autoscaling.DescribeAutoScalingNotificationTypesOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeLaunchConfigurationsRequest(*autoscaling.DescribeLaunchConfigurationsInput) (*request.Request, *autoscaling.DescribeLaunchConfigurationsOutput) {
|
||||
func (m *MockAutoscaling) DescribeLaunchConfigurationsRequest(*autoscaling.DescribeLaunchConfigurationsInput) (*request.Request, *autoscaling.DescribeLaunchConfigurationsOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeLaunchConfigurations(*autoscaling.DescribeLaunchConfigurationsInput) (*autoscaling.DescribeLaunchConfigurationsOutput, error) {
|
||||
func (m *MockAutoscaling) DescribeLaunchConfigurations(*autoscaling.DescribeLaunchConfigurationsInput) (*autoscaling.DescribeLaunchConfigurationsOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeLaunchConfigurationsPages(*autoscaling.DescribeLaunchConfigurationsInput, func(*autoscaling.DescribeLaunchConfigurationsOutput, bool) bool) error {
|
||||
func (m *MockAutoscaling) DescribeLaunchConfigurationsPages(*autoscaling.DescribeLaunchConfigurationsInput, func(*autoscaling.DescribeLaunchConfigurationsOutput, bool) bool) error {
|
||||
log.Fatal("Not implemented")
|
||||
return nil
|
||||
}
|
||||
|
||||
func DescribeLifecycleHookTypesRequest(*autoscaling.DescribeLifecycleHookTypesInput) (*request.Request, *autoscaling.DescribeLifecycleHookTypesOutput) {
|
||||
func (m *MockAutoscaling) DescribeLifecycleHookTypesRequest(*autoscaling.DescribeLifecycleHookTypesInput) (*request.Request, *autoscaling.DescribeLifecycleHookTypesOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeLifecycleHookTypes(*autoscaling.DescribeLifecycleHookTypesInput) (*autoscaling.DescribeLifecycleHookTypesOutput, error) {
|
||||
func (m *MockAutoscaling) DescribeLifecycleHookTypes(*autoscaling.DescribeLifecycleHookTypesInput) (*autoscaling.DescribeLifecycleHookTypesOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeLifecycleHooksRequest(*autoscaling.DescribeLifecycleHooksInput) (*request.Request, *autoscaling.DescribeLifecycleHooksOutput) {
|
||||
func (m *MockAutoscaling) DescribeLifecycleHooksRequest(*autoscaling.DescribeLifecycleHooksInput) (*request.Request, *autoscaling.DescribeLifecycleHooksOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeLifecycleHooks(*autoscaling.DescribeLifecycleHooksInput) (*autoscaling.DescribeLifecycleHooksOutput, error) {
|
||||
func (m *MockAutoscaling) DescribeLifecycleHooks(*autoscaling.DescribeLifecycleHooksInput) (*autoscaling.DescribeLifecycleHooksOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeLoadBalancerTargetGroupsRequest(*autoscaling.DescribeLoadBalancerTargetGroupsInput) (*request.Request, *autoscaling.DescribeLoadBalancerTargetGroupsOutput) {
|
||||
func (m *MockAutoscaling) DescribeLoadBalancerTargetGroupsRequest(*autoscaling.DescribeLoadBalancerTargetGroupsInput) (*request.Request, *autoscaling.DescribeLoadBalancerTargetGroupsOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeLoadBalancerTargetGroups(*autoscaling.DescribeLoadBalancerTargetGroupsInput) (*autoscaling.DescribeLoadBalancerTargetGroupsOutput, error) {
|
||||
func (m *MockAutoscaling) DescribeLoadBalancerTargetGroups(*autoscaling.DescribeLoadBalancerTargetGroupsInput) (*autoscaling.DescribeLoadBalancerTargetGroupsOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeLoadBalancersRequest(*autoscaling.DescribeLoadBalancersInput) (*request.Request, *autoscaling.DescribeLoadBalancersOutput) {
|
||||
func (m *MockAutoscaling) DescribeLoadBalancersRequest(*autoscaling.DescribeLoadBalancersInput) (*request.Request, *autoscaling.DescribeLoadBalancersOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeLoadBalancers(*autoscaling.DescribeLoadBalancersInput) (*autoscaling.DescribeLoadBalancersOutput, error) {
|
||||
func (m *MockAutoscaling) DescribeLoadBalancers(*autoscaling.DescribeLoadBalancersInput) (*autoscaling.DescribeLoadBalancersOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeMetricCollectionTypesRequest(*autoscaling.DescribeMetricCollectionTypesInput) (*request.Request, *autoscaling.DescribeMetricCollectionTypesOutput) {
|
||||
func (m *MockAutoscaling) DescribeMetricCollectionTypesRequest(*autoscaling.DescribeMetricCollectionTypesInput) (*request.Request, *autoscaling.DescribeMetricCollectionTypesOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeMetricCollectionTypes(*autoscaling.DescribeMetricCollectionTypesInput) (*autoscaling.DescribeMetricCollectionTypesOutput, error) {
|
||||
func (m *MockAutoscaling) DescribeMetricCollectionTypes(*autoscaling.DescribeMetricCollectionTypesInput) (*autoscaling.DescribeMetricCollectionTypesOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeNotificationConfigurationsRequest(*autoscaling.DescribeNotificationConfigurationsInput) (*request.Request, *autoscaling.DescribeNotificationConfigurationsOutput) {
|
||||
func (m *MockAutoscaling) DescribeNotificationConfigurationsRequest(*autoscaling.DescribeNotificationConfigurationsInput) (*request.Request, *autoscaling.DescribeNotificationConfigurationsOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeNotificationConfigurations(*autoscaling.DescribeNotificationConfigurationsInput) (*autoscaling.DescribeNotificationConfigurationsOutput, error) {
|
||||
func (m *MockAutoscaling) DescribeNotificationConfigurations(*autoscaling.DescribeNotificationConfigurationsInput) (*autoscaling.DescribeNotificationConfigurationsOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeNotificationConfigurationsPages(*autoscaling.DescribeNotificationConfigurationsInput, func(*autoscaling.DescribeNotificationConfigurationsOutput, bool) bool) error {
|
||||
func (m *MockAutoscaling) DescribeNotificationConfigurationsPages(*autoscaling.DescribeNotificationConfigurationsInput, func(*autoscaling.DescribeNotificationConfigurationsOutput, bool) bool) error {
|
||||
log.Fatal("Not implemented")
|
||||
return nil
|
||||
}
|
||||
|
||||
func DescribePoliciesRequest(*autoscaling.DescribePoliciesInput) (*request.Request, *autoscaling.DescribePoliciesOutput) {
|
||||
func (m *MockAutoscaling) DescribePoliciesRequest(*autoscaling.DescribePoliciesInput) (*request.Request, *autoscaling.DescribePoliciesOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribePolicies(*autoscaling.DescribePoliciesInput) (*autoscaling.DescribePoliciesOutput, error) {
|
||||
func (m *MockAutoscaling) DescribePolicies(*autoscaling.DescribePoliciesInput) (*autoscaling.DescribePoliciesOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribePoliciesPages(*autoscaling.DescribePoliciesInput, func(*autoscaling.DescribePoliciesOutput, bool) bool) error {
|
||||
func (m *MockAutoscaling) DescribePoliciesPages(*autoscaling.DescribePoliciesInput, func(*autoscaling.DescribePoliciesOutput, bool) bool) error {
|
||||
log.Fatal("Not implemented")
|
||||
return nil
|
||||
}
|
||||
|
||||
func DescribeScalingActivitiesRequest(*autoscaling.DescribeScalingActivitiesInput) (*request.Request, *autoscaling.DescribeScalingActivitiesOutput) {
|
||||
func (m *MockAutoscaling) DescribeScalingActivitiesRequest(*autoscaling.DescribeScalingActivitiesInput) (*request.Request, *autoscaling.DescribeScalingActivitiesOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeScalingActivities(*autoscaling.DescribeScalingActivitiesInput) (*autoscaling.DescribeScalingActivitiesOutput, error) {
|
||||
func (m *MockAutoscaling) DescribeScalingActivities(*autoscaling.DescribeScalingActivitiesInput) (*autoscaling.DescribeScalingActivitiesOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeScalingActivitiesPages(*autoscaling.DescribeScalingActivitiesInput, func(*autoscaling.DescribeScalingActivitiesOutput, bool) bool) error {
|
||||
func (m *MockAutoscaling) DescribeScalingActivitiesPages(*autoscaling.DescribeScalingActivitiesInput, func(*autoscaling.DescribeScalingActivitiesOutput, bool) bool) error {
|
||||
log.Fatal("Not implemented")
|
||||
return nil
|
||||
}
|
||||
|
||||
func DescribeScalingProcessTypesRequest(*autoscaling.DescribeScalingProcessTypesInput) (*request.Request, *autoscaling.DescribeScalingProcessTypesOutput) {
|
||||
func (m *MockAutoscaling) DescribeScalingProcessTypesRequest(*autoscaling.DescribeScalingProcessTypesInput) (*request.Request, *autoscaling.DescribeScalingProcessTypesOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeScalingProcessTypes(*autoscaling.DescribeScalingProcessTypesInput) (*autoscaling.DescribeScalingProcessTypesOutput, error) {
|
||||
func (m *MockAutoscaling) DescribeScalingProcessTypes(*autoscaling.DescribeScalingProcessTypesInput) (*autoscaling.DescribeScalingProcessTypesOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeScheduledActionsRequest(*autoscaling.DescribeScheduledActionsInput) (*request.Request, *autoscaling.DescribeScheduledActionsOutput) {
|
||||
func (m *MockAutoscaling) DescribeScheduledActionsRequest(*autoscaling.DescribeScheduledActionsInput) (*request.Request, *autoscaling.DescribeScheduledActionsOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeScheduledActions(*autoscaling.DescribeScheduledActionsInput) (*autoscaling.DescribeScheduledActionsOutput, error) {
|
||||
func (m *MockAutoscaling) DescribeScheduledActions(*autoscaling.DescribeScheduledActionsInput) (*autoscaling.DescribeScheduledActionsOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeScheduledActionsPages(*autoscaling.DescribeScheduledActionsInput, func(*autoscaling.DescribeScheduledActionsOutput, bool) bool) error {
|
||||
func (m *MockAutoscaling) DescribeScheduledActionsPages(*autoscaling.DescribeScheduledActionsInput, func(*autoscaling.DescribeScheduledActionsOutput, bool) bool) error {
|
||||
log.Fatal("Not implemented")
|
||||
return nil
|
||||
}
|
||||
|
||||
func DescribeTagsRequest(*autoscaling.DescribeTagsInput) (*request.Request, *autoscaling.DescribeTagsOutput) {
|
||||
func (m *MockAutoscaling) DescribeTagsRequest(*autoscaling.DescribeTagsInput) (*request.Request, *autoscaling.DescribeTagsOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeTags(*autoscaling.DescribeTagsInput) (*autoscaling.DescribeTagsOutput, error) {
|
||||
func (m *MockAutoscaling) DescribeTags(*autoscaling.DescribeTagsInput) (*autoscaling.DescribeTagsOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeTagsPages(*autoscaling.DescribeTagsInput, func(*autoscaling.DescribeTagsOutput, bool) bool) error {
|
||||
func (m *MockAutoscaling) DescribeTagsPages(*autoscaling.DescribeTagsInput, func(*autoscaling.DescribeTagsOutput, bool) bool) error {
|
||||
log.Fatal("Not implemented")
|
||||
return nil
|
||||
}
|
||||
|
||||
func DescribeTerminationPolicyTypesRequest(*autoscaling.DescribeTerminationPolicyTypesInput) (*request.Request, *autoscaling.DescribeTerminationPolicyTypesOutput) {
|
||||
func (m *MockAutoscaling) DescribeTerminationPolicyTypesRequest(*autoscaling.DescribeTerminationPolicyTypesInput) (*request.Request, *autoscaling.DescribeTerminationPolicyTypesOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DescribeTerminationPolicyTypes(*autoscaling.DescribeTerminationPolicyTypesInput) (*autoscaling.DescribeTerminationPolicyTypesOutput, error) {
|
||||
func (m *MockAutoscaling) DescribeTerminationPolicyTypes(*autoscaling.DescribeTerminationPolicyTypesInput) (*autoscaling.DescribeTerminationPolicyTypesOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DetachInstancesRequest(*autoscaling.DetachInstancesInput) (*request.Request, *autoscaling.DetachInstancesOutput) {
|
||||
func (m *MockAutoscaling) DetachInstancesRequest(*autoscaling.DetachInstancesInput) (*request.Request, *autoscaling.DetachInstancesOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DetachInstances(*autoscaling.DetachInstancesInput) (*autoscaling.DetachInstancesOutput, error) {
|
||||
func (m *MockAutoscaling) DetachInstances(*autoscaling.DetachInstancesInput) (*autoscaling.DetachInstancesOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DetachLoadBalancerTargetGroupsRequest(*autoscaling.DetachLoadBalancerTargetGroupsInput) (*request.Request, *autoscaling.DetachLoadBalancerTargetGroupsOutput) {
|
||||
func (m *MockAutoscaling) DetachLoadBalancerTargetGroupsRequest(*autoscaling.DetachLoadBalancerTargetGroupsInput) (*request.Request, *autoscaling.DetachLoadBalancerTargetGroupsOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DetachLoadBalancerTargetGroups(*autoscaling.DetachLoadBalancerTargetGroupsInput) (*autoscaling.DetachLoadBalancerTargetGroupsOutput, error) {
|
||||
func (m *MockAutoscaling) DetachLoadBalancerTargetGroups(*autoscaling.DetachLoadBalancerTargetGroupsInput) (*autoscaling.DetachLoadBalancerTargetGroupsOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DetachLoadBalancersRequest(*autoscaling.DetachLoadBalancersInput) (*request.Request, *autoscaling.DetachLoadBalancersOutput) {
|
||||
func (m *MockAutoscaling) DetachLoadBalancersRequest(*autoscaling.DetachLoadBalancersInput) (*request.Request, *autoscaling.DetachLoadBalancersOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DetachLoadBalancers(*autoscaling.DetachLoadBalancersInput) (*autoscaling.DetachLoadBalancersOutput, error) {
|
||||
func (m *MockAutoscaling) DetachLoadBalancers(*autoscaling.DetachLoadBalancersInput) (*autoscaling.DetachLoadBalancersOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DisableMetricsCollectionRequest(*autoscaling.DisableMetricsCollectionInput) (*request.Request, *autoscaling.DisableMetricsCollectionOutput) {
|
||||
func (m *MockAutoscaling) DisableMetricsCollectionRequest(*autoscaling.DisableMetricsCollectionInput) (*request.Request, *autoscaling.DisableMetricsCollectionOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func DisableMetricsCollection(*autoscaling.DisableMetricsCollectionInput) (*autoscaling.DisableMetricsCollectionOutput, error) {
|
||||
func (m *MockAutoscaling) DisableMetricsCollection(*autoscaling.DisableMetricsCollectionInput) (*autoscaling.DisableMetricsCollectionOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func EnableMetricsCollectionRequest(*autoscaling.EnableMetricsCollectionInput) (*request.Request, *autoscaling.EnableMetricsCollectionOutput) {
|
||||
func (m *MockAutoscaling) EnableMetricsCollectionRequest(*autoscaling.EnableMetricsCollectionInput) (*request.Request, *autoscaling.EnableMetricsCollectionOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func EnableMetricsCollection(*autoscaling.EnableMetricsCollectionInput) (*autoscaling.EnableMetricsCollectionOutput, error) {
|
||||
func (m *MockAutoscaling) EnableMetricsCollection(*autoscaling.EnableMetricsCollectionInput) (*autoscaling.EnableMetricsCollectionOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func EnterStandbyRequest(*autoscaling.EnterStandbyInput) (*request.Request, *autoscaling.EnterStandbyOutput) {
|
||||
func (m *MockAutoscaling) EnterStandbyRequest(*autoscaling.EnterStandbyInput) (*request.Request, *autoscaling.EnterStandbyOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func EnterStandby(*autoscaling.EnterStandbyInput) (*autoscaling.EnterStandbyOutput, error) {
|
||||
func (m *MockAutoscaling) EnterStandby(*autoscaling.EnterStandbyInput) (*autoscaling.EnterStandbyOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func ExecutePolicyRequest(*autoscaling.ExecutePolicyInput) (*request.Request, *autoscaling.ExecutePolicyOutput) {
|
||||
func (m *MockAutoscaling) ExecutePolicyRequest(*autoscaling.ExecutePolicyInput) (*request.Request, *autoscaling.ExecutePolicyOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func ExecutePolicy(*autoscaling.ExecutePolicyInput) (*autoscaling.ExecutePolicyOutput, error) {
|
||||
func (m *MockAutoscaling) ExecutePolicy(*autoscaling.ExecutePolicyInput) (*autoscaling.ExecutePolicyOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func ExitStandbyRequest(*autoscaling.ExitStandbyInput) (*request.Request, *autoscaling.ExitStandbyOutput) {
|
||||
func (m *MockAutoscaling) ExitStandbyRequest(*autoscaling.ExitStandbyInput) (*request.Request, *autoscaling.ExitStandbyOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func ExitStandby(*autoscaling.ExitStandbyInput) (*autoscaling.ExitStandbyOutput, error) {
|
||||
func (m *MockAutoscaling) ExitStandby(*autoscaling.ExitStandbyInput) (*autoscaling.ExitStandbyOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func PutLifecycleHookRequest(*autoscaling.PutLifecycleHookInput) (*request.Request, *autoscaling.PutLifecycleHookOutput) {
|
||||
func (m *MockAutoscaling) PutLifecycleHookRequest(*autoscaling.PutLifecycleHookInput) (*request.Request, *autoscaling.PutLifecycleHookOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func PutLifecycleHook(*autoscaling.PutLifecycleHookInput) (*autoscaling.PutLifecycleHookOutput, error) {
|
||||
func (m *MockAutoscaling) PutLifecycleHook(*autoscaling.PutLifecycleHookInput) (*autoscaling.PutLifecycleHookOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func PutNotificationConfigurationRequest(*autoscaling.PutNotificationConfigurationInput) (*request.Request, *autoscaling.PutNotificationConfigurationOutput) {
|
||||
func (m *MockAutoscaling) PutNotificationConfigurationRequest(*autoscaling.PutNotificationConfigurationInput) (*request.Request, *autoscaling.PutNotificationConfigurationOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func PutNotificationConfiguration(*autoscaling.PutNotificationConfigurationInput) (*autoscaling.PutNotificationConfigurationOutput, error) {
|
||||
func (m *MockAutoscaling) PutNotificationConfiguration(*autoscaling.PutNotificationConfigurationInput) (*autoscaling.PutNotificationConfigurationOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func PutScalingPolicyRequest(*autoscaling.PutScalingPolicyInput) (*request.Request, *autoscaling.PutScalingPolicyOutput) {
|
||||
func (m *MockAutoscaling) PutScalingPolicyRequest(*autoscaling.PutScalingPolicyInput) (*request.Request, *autoscaling.PutScalingPolicyOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func PutScalingPolicy(*autoscaling.PutScalingPolicyInput) (*autoscaling.PutScalingPolicyOutput, error) {
|
||||
func (m *MockAutoscaling) PutScalingPolicy(*autoscaling.PutScalingPolicyInput) (*autoscaling.PutScalingPolicyOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func PutScheduledUpdateGroupActionRequest(*autoscaling.PutScheduledUpdateGroupActionInput) (*request.Request, *autoscaling.PutScheduledUpdateGroupActionOutput) {
|
||||
func (m *MockAutoscaling) PutScheduledUpdateGroupActionRequest(*autoscaling.PutScheduledUpdateGroupActionInput) (*request.Request, *autoscaling.PutScheduledUpdateGroupActionOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func PutScheduledUpdateGroupAction(*autoscaling.PutScheduledUpdateGroupActionInput) (*autoscaling.PutScheduledUpdateGroupActionOutput, error) {
|
||||
func (m *MockAutoscaling) PutScheduledUpdateGroupAction(*autoscaling.PutScheduledUpdateGroupActionInput) (*autoscaling.PutScheduledUpdateGroupActionOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func RecordLifecycleActionHeartbeatRequest(*autoscaling.RecordLifecycleActionHeartbeatInput) (*request.Request, *autoscaling.RecordLifecycleActionHeartbeatOutput) {
|
||||
func (m *MockAutoscaling) RecordLifecycleActionHeartbeatRequest(*autoscaling.RecordLifecycleActionHeartbeatInput) (*request.Request, *autoscaling.RecordLifecycleActionHeartbeatOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func RecordLifecycleActionHeartbeat(*autoscaling.RecordLifecycleActionHeartbeatInput) (*autoscaling.RecordLifecycleActionHeartbeatOutput, error) {
|
||||
func (m *MockAutoscaling) RecordLifecycleActionHeartbeat(*autoscaling.RecordLifecycleActionHeartbeatInput) (*autoscaling.RecordLifecycleActionHeartbeatOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func ResumeProcessesRequest(*autoscaling.ScalingProcessQuery) (*request.Request, *autoscaling.ResumeProcessesOutput) {
|
||||
func (m *MockAutoscaling) ResumeProcessesRequest(*autoscaling.ScalingProcessQuery) (*request.Request, *autoscaling.ResumeProcessesOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func ResumeProcesses(*autoscaling.ScalingProcessQuery) (*autoscaling.ResumeProcessesOutput, error) {
|
||||
func (m *MockAutoscaling) ResumeProcesses(*autoscaling.ScalingProcessQuery) (*autoscaling.ResumeProcessesOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func SetDesiredCapacityRequest(*autoscaling.SetDesiredCapacityInput) (*request.Request, *autoscaling.SetDesiredCapacityOutput) {
|
||||
func (m *MockAutoscaling) SetDesiredCapacityRequest(*autoscaling.SetDesiredCapacityInput) (*request.Request, *autoscaling.SetDesiredCapacityOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func SetDesiredCapacity(*autoscaling.SetDesiredCapacityInput) (*autoscaling.SetDesiredCapacityOutput, error) {
|
||||
func (m *MockAutoscaling) SetDesiredCapacity(*autoscaling.SetDesiredCapacityInput) (*autoscaling.SetDesiredCapacityOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func SetInstanceHealthRequest(*autoscaling.SetInstanceHealthInput) (*request.Request, *autoscaling.SetInstanceHealthOutput) {
|
||||
func (m *MockAutoscaling) SetInstanceHealthRequest(*autoscaling.SetInstanceHealthInput) (*request.Request, *autoscaling.SetInstanceHealthOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func SetInstanceHealth(*autoscaling.SetInstanceHealthInput) (*autoscaling.SetInstanceHealthOutput, error) {
|
||||
func (m *MockAutoscaling) SetInstanceHealth(*autoscaling.SetInstanceHealthInput) (*autoscaling.SetInstanceHealthOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func SetInstanceProtectionRequest(*autoscaling.SetInstanceProtectionInput) (*request.Request, *autoscaling.SetInstanceProtectionOutput) {
|
||||
func (m *MockAutoscaling) SetInstanceProtectionRequest(*autoscaling.SetInstanceProtectionInput) (*request.Request, *autoscaling.SetInstanceProtectionOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func SetInstanceProtection(*autoscaling.SetInstanceProtectionInput) (*autoscaling.SetInstanceProtectionOutput, error) {
|
||||
func (m *MockAutoscaling) SetInstanceProtection(*autoscaling.SetInstanceProtectionInput) (*autoscaling.SetInstanceProtectionOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func SuspendProcessesRequest(*autoscaling.ScalingProcessQuery) (*request.Request, *autoscaling.SuspendProcessesOutput) {
|
||||
func (m *MockAutoscaling) SuspendProcessesRequest(*autoscaling.ScalingProcessQuery) (*request.Request, *autoscaling.SuspendProcessesOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func SuspendProcesses(*autoscaling.ScalingProcessQuery) (*autoscaling.SuspendProcessesOutput, error) {
|
||||
func (m *MockAutoscaling) SuspendProcesses(*autoscaling.ScalingProcessQuery) (*autoscaling.SuspendProcessesOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func TerminateInstanceInAutoScalingGroupRequest(*autoscaling.TerminateInstanceInAutoScalingGroupInput) (*request.Request, *autoscaling.TerminateInstanceInAutoScalingGroupOutput) {
|
||||
func (m *MockAutoscaling) TerminateInstanceInAutoScalingGroupRequest(*autoscaling.TerminateInstanceInAutoScalingGroupInput) (*request.Request, *autoscaling.TerminateInstanceInAutoScalingGroupOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func UpdateAutoScalingGroupRequest(*autoscaling.UpdateAutoScalingGroupInput) (*request.Request, *autoscaling.UpdateAutoScalingGroupOutput) {
|
||||
func (m *MockAutoscaling) UpdateAutoScalingGroupRequest(*autoscaling.UpdateAutoScalingGroupInput) (*request.Request, *autoscaling.UpdateAutoScalingGroupOutput) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func UpdateAutoScalingGroup(*autoscaling.UpdateAutoScalingGroupInput) (*autoscaling.UpdateAutoScalingGroupOutput, error) {
|
||||
func (m *MockAutoscaling) UpdateAutoScalingGroup(*autoscaling.UpdateAutoScalingGroupInput) (*autoscaling.UpdateAutoScalingGroupOutput, error) {
|
||||
log.Fatal("Not implemented")
|
||||
return nil, nil
|
||||
}
|
||||
|
||||
func WaitUntilGroupExists(*autoscaling.DescribeAutoScalingGroupsInput) error {
|
||||
func (m *MockAutoscaling) WaitUntilGroupExists(*autoscaling.DescribeAutoScalingGroupsInput) error {
|
||||
log.Fatal("Not implemented")
|
||||
return nil
|
||||
}
|
||||
|
||||
func WaitUntilGroupInService(*autoscaling.DescribeAutoScalingGroupsInput) error {
|
||||
func (m *MockAutoscaling) WaitUntilGroupInService(*autoscaling.DescribeAutoScalingGroupsInput) error {
|
||||
log.Fatal("Not implemented")
|
||||
return nil
|
||||
}
|
||||
|
||||
func WaitUntilGroupNotExists(*autoscaling.DescribeAutoScalingGroupsInput) error {
|
||||
func (m *MockAutoscaling) WaitUntilGroupNotExists(*autoscaling.DescribeAutoScalingGroupsInput) error {
|
||||
log.Fatal("Not implemented")
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -22,6 +22,7 @@ import (
|
|||
"github.com/aws/aws-sdk-go/aws/awserr"
|
||||
"github.com/aws/aws-sdk-go/aws/session"
|
||||
"github.com/aws/aws-sdk-go/service/autoscaling"
|
||||
"github.com/aws/aws-sdk-go/service/autoscaling/autoscalingiface"
|
||||
"github.com/aws/aws-sdk-go/service/cloudformation"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
|
||||
|
@ -76,7 +77,7 @@ type AWSCloud interface {
|
|||
EC2() ec2iface.EC2API
|
||||
IAM() *iam.IAM
|
||||
ELB() *elb.ELB
|
||||
Autoscaling() *autoscaling.AutoScaling
|
||||
Autoscaling() autoscalingiface.AutoScalingAPI
|
||||
Route53() route53iface.Route53API
|
||||
|
||||
// TODO: Document and rationalize these tags/filters methods
|
||||
|
@ -700,7 +701,7 @@ func (c *awsCloudImplementation) ELB() *elb.ELB {
|
|||
return c.elb
|
||||
}
|
||||
|
||||
func (c *awsCloudImplementation) Autoscaling() *autoscaling.AutoScaling {
|
||||
func (c *awsCloudImplementation) Autoscaling() autoscalingiface.AutoScalingAPI {
|
||||
return c.autoscaling
|
||||
}
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ package awsup
|
|||
import (
|
||||
"fmt"
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/autoscaling"
|
||||
"github.com/aws/aws-sdk-go/service/autoscaling/autoscalingiface"
|
||||
"github.com/aws/aws-sdk-go/service/cloudformation"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/aws/aws-sdk-go/service/ec2/ec2iface"
|
||||
|
@ -66,6 +66,7 @@ func BuildMockAWSCloud(region string, zoneLetters string) *MockAWSCloud {
|
|||
}
|
||||
|
||||
type MockCloud struct {
|
||||
MockAutoscaling autoscalingiface.AutoScalingAPI
|
||||
MockCloudFormation *cloudformation.CloudFormation
|
||||
MockEC2 ec2iface.EC2API
|
||||
MockRoute53 route53iface.Route53API
|
||||
|
@ -175,9 +176,11 @@ func (c *MockAWSCloud) ELB() *elb.ELB {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (c *MockAWSCloud) Autoscaling() *autoscaling.AutoScaling {
|
||||
glog.Fatalf("MockAWSCloud Autoscaling not implemented")
|
||||
return nil
|
||||
func (c *MockAWSCloud) Autoscaling() autoscalingiface.AutoScalingAPI {
|
||||
if c.MockAutoscaling == nil {
|
||||
glog.Fatalf("MockAWSCloud Autoscaling not implemented")
|
||||
}
|
||||
return c.MockAutoscaling
|
||||
}
|
||||
|
||||
func (c *MockAWSCloud) Route53() route53iface.Route53API {
|
||||
|
|
|
@ -23,7 +23,6 @@ import (
|
|||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/autoscaling"
|
||||
"github.com/aws/aws-sdk-go/service/ec2"
|
||||
"github.com/golang/glog"
|
||||
"github.com/spf13/cobra"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
|
@ -116,9 +115,8 @@ func FindCloudInstanceGroups(cloud fi.Cloud, cluster *api.Cluster, instancegroup
|
|||
return groups, nil
|
||||
}
|
||||
|
||||
// RollingUpdateDrainValidate performs a rolling update on a K8s Cluster.
|
||||
// RollingUpdate performs a rolling update on a K8s Cluster.
|
||||
func (c *RollingUpdateCluster) RollingUpdate(groups map[string]*CloudInstanceGroup, instanceGroups *api.InstanceGroupList) error {
|
||||
|
||||
if len(groups) == 0 {
|
||||
glog.Infof("Cloud Instance Group length is zero. Not doing a rolling-update.")
|
||||
return nil
|
||||
|
@ -462,10 +460,12 @@ func (n *CloudInstanceGroup) DeleteAWSInstance(u *CloudInstanceGroupInstance, in
|
|||
glog.Infof("Stopping instance %q, in AWS ASG %q.", instanceId, n.ASGName)
|
||||
}
|
||||
|
||||
request := &ec2.TerminateInstancesInput{
|
||||
InstanceIds: []*string{u.ASGInstance.InstanceId},
|
||||
request := &autoscaling.TerminateInstanceInAutoScalingGroupInput{
|
||||
InstanceId: u.ASGInstance.InstanceId,
|
||||
ShouldDecrementDesiredCapacity: aws.Bool(false),
|
||||
}
|
||||
if _, err := c.EC2().TerminateInstances(request); err != nil {
|
||||
|
||||
if _, err := c.Autoscaling().TerminateInstanceInAutoScalingGroup(request); err != nil {
|
||||
if nodeName != "" {
|
||||
return fmt.Errorf("error deleting instance %q, node %q: %v", instanceId, nodeName, err)
|
||||
}
|
||||
|
|
|
@ -0,0 +1,760 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
*/
|
||||
|
||||
package kutil
|
||||
|
||||
import (
|
||||
"testing"
|
||||
"time"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/service/autoscaling"
|
||||
|
||||
v1meta "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/client-go/kubernetes/fake"
|
||||
"k8s.io/client-go/pkg/api/v1"
|
||||
"k8s.io/kops/cloudmock/aws/mockautoscaling"
|
||||
kopsapi "k8s.io/kops/pkg/apis/kops"
|
||||
"k8s.io/kops/upup/pkg/fi/cloudup/awsup"
|
||||
)
|
||||
|
||||
func setUpCloud(c *RollingUpdateCluster) {
|
||||
cloud := c.Cloud.(awsup.AWSCloud)
|
||||
cloud.Autoscaling().CreateAutoScalingGroup(&autoscaling.CreateAutoScalingGroupInput{
|
||||
AutoScalingGroupName: aws.String("node-1"),
|
||||
MinSize: aws.Int64(1),
|
||||
MaxSize: aws.Int64(5),
|
||||
})
|
||||
|
||||
cloud.Autoscaling().AttachInstances(&autoscaling.AttachInstancesInput{
|
||||
AutoScalingGroupName: aws.String("node-1"),
|
||||
InstanceIds: []*string{aws.String("node-1a"), aws.String("node-1b")},
|
||||
})
|
||||
|
||||
cloud.Autoscaling().CreateAutoScalingGroup(&autoscaling.CreateAutoScalingGroupInput{
|
||||
AutoScalingGroupName: aws.String("node-2"),
|
||||
MinSize: aws.Int64(1),
|
||||
MaxSize: aws.Int64(5),
|
||||
})
|
||||
|
||||
cloud.Autoscaling().AttachInstances(&autoscaling.AttachInstancesInput{
|
||||
AutoScalingGroupName: aws.String("node-2"),
|
||||
InstanceIds: []*string{aws.String("node-2a"), aws.String("node-2b")},
|
||||
})
|
||||
|
||||
cloud.Autoscaling().CreateAutoScalingGroup(&autoscaling.CreateAutoScalingGroupInput{
|
||||
AutoScalingGroupName: aws.String("master-1"),
|
||||
MinSize: aws.Int64(1),
|
||||
MaxSize: aws.Int64(5),
|
||||
})
|
||||
|
||||
cloud.Autoscaling().AttachInstances(&autoscaling.AttachInstancesInput{
|
||||
AutoScalingGroupName: aws.String("master-1"),
|
||||
InstanceIds: []*string{aws.String("master-1a")},
|
||||
})
|
||||
|
||||
cloud.Autoscaling().CreateAutoScalingGroup(&autoscaling.CreateAutoScalingGroupInput{
|
||||
AutoScalingGroupName: aws.String("bastion-1"),
|
||||
MinSize: aws.Int64(1),
|
||||
MaxSize: aws.Int64(5),
|
||||
})
|
||||
|
||||
cloud.Autoscaling().AttachInstances(&autoscaling.AttachInstancesInput{
|
||||
AutoScalingGroupName: aws.String("bastion-1"),
|
||||
InstanceIds: []*string{aws.String("bastion-1a")},
|
||||
})
|
||||
}
|
||||
|
||||
func TestRollingUpdateAllNeedUpdate(t *testing.T) {
|
||||
k8sClient := fake.NewSimpleClientset()
|
||||
|
||||
mockcloud := awsup.BuildMockAWSCloud("us-east-1", "abc")
|
||||
mockcloud.MockAutoscaling = &mockautoscaling.MockAutoscaling{}
|
||||
|
||||
c := &RollingUpdateCluster{
|
||||
Cloud: mockcloud,
|
||||
MasterInterval: 1 * time.Millisecond,
|
||||
NodeInterval: 1 * time.Millisecond,
|
||||
BastionInterval: 1 * time.Millisecond,
|
||||
Force: false,
|
||||
K8sClient: k8sClient,
|
||||
}
|
||||
|
||||
cloud := c.Cloud.(awsup.AWSCloud)
|
||||
setUpCloud(c)
|
||||
|
||||
asgGroups, _ := cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{})
|
||||
groups := make(map[string]*CloudInstanceGroup)
|
||||
groups["node-1"] = &CloudInstanceGroup{
|
||||
ASGName: aws.StringValue(asgGroups.AutoScalingGroups[0].AutoScalingGroupName),
|
||||
asg: asgGroups.AutoScalingGroups[0],
|
||||
InstanceGroup: &kopsapi.InstanceGroup{
|
||||
ObjectMeta: v1meta.ObjectMeta{
|
||||
Name: "node-1",
|
||||
},
|
||||
Spec: kopsapi.InstanceGroupSpec{
|
||||
Role: kopsapi.InstanceGroupRoleNode,
|
||||
},
|
||||
},
|
||||
Ready: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-1a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-1b"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
NeedUpdate: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-1a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-1b"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
groups["node-2"] = &CloudInstanceGroup{
|
||||
ASGName: aws.StringValue(asgGroups.AutoScalingGroups[1].AutoScalingGroupName),
|
||||
asg: asgGroups.AutoScalingGroups[1],
|
||||
InstanceGroup: &kopsapi.InstanceGroup{
|
||||
ObjectMeta: v1meta.ObjectMeta{
|
||||
Name: "node-2",
|
||||
},
|
||||
Spec: kopsapi.InstanceGroupSpec{
|
||||
Role: kopsapi.InstanceGroupRoleNode,
|
||||
},
|
||||
},
|
||||
Ready: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-2a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-2b"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
NeedUpdate: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-2a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-2b"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
groups["master-1"] = &CloudInstanceGroup{
|
||||
ASGName: aws.StringValue(asgGroups.AutoScalingGroups[2].AutoScalingGroupName),
|
||||
asg: asgGroups.AutoScalingGroups[2],
|
||||
InstanceGroup: &kopsapi.InstanceGroup{
|
||||
ObjectMeta: v1meta.ObjectMeta{
|
||||
Name: "master-1",
|
||||
},
|
||||
Spec: kopsapi.InstanceGroupSpec{
|
||||
Role: kopsapi.InstanceGroupRoleMaster,
|
||||
},
|
||||
},
|
||||
Ready: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("master-1a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
NeedUpdate: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("master-1a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
groups["bastion-1"] = &CloudInstanceGroup{
|
||||
ASGName: aws.StringValue(asgGroups.AutoScalingGroups[3].AutoScalingGroupName),
|
||||
asg: asgGroups.AutoScalingGroups[3],
|
||||
InstanceGroup: &kopsapi.InstanceGroup{
|
||||
ObjectMeta: v1meta.ObjectMeta{
|
||||
Name: "bastion-1",
|
||||
},
|
||||
Spec: kopsapi.InstanceGroupSpec{
|
||||
Role: kopsapi.InstanceGroupRoleBastion,
|
||||
},
|
||||
},
|
||||
Ready: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("bastion-1a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
NeedUpdate: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("bastion-1a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
err := c.RollingUpdate(groups, &kopsapi.InstanceGroupList{})
|
||||
if err != nil {
|
||||
t.Errorf("Error on rolling update: %v", err)
|
||||
}
|
||||
|
||||
asgGroups, _ = cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{})
|
||||
for _, group := range asgGroups.AutoScalingGroups {
|
||||
if len(group.Instances) > 0 {
|
||||
t.Error("Not all instances terminated")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestRollingUpdateNoneNeedUpdate(t *testing.T) {
|
||||
k8sClient := fake.NewSimpleClientset()
|
||||
|
||||
mockcloud := awsup.BuildMockAWSCloud("us-east-1", "abc")
|
||||
mockcloud.MockAutoscaling = &mockautoscaling.MockAutoscaling{}
|
||||
|
||||
c := &RollingUpdateCluster{
|
||||
Cloud: mockcloud,
|
||||
MasterInterval: 1 * time.Millisecond,
|
||||
NodeInterval: 1 * time.Millisecond,
|
||||
BastionInterval: 1 * time.Millisecond,
|
||||
Force: false,
|
||||
K8sClient: k8sClient,
|
||||
}
|
||||
|
||||
cloud := c.Cloud.(awsup.AWSCloud)
|
||||
setUpCloud(c)
|
||||
|
||||
asgGroups, _ := cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{})
|
||||
|
||||
groups := make(map[string]*CloudInstanceGroup)
|
||||
groups["node-1"] = &CloudInstanceGroup{
|
||||
ASGName: aws.StringValue(asgGroups.AutoScalingGroups[0].AutoScalingGroupName),
|
||||
asg: asgGroups.AutoScalingGroups[0],
|
||||
InstanceGroup: &kopsapi.InstanceGroup{
|
||||
ObjectMeta: v1meta.ObjectMeta{
|
||||
Name: "node-1",
|
||||
},
|
||||
Spec: kopsapi.InstanceGroupSpec{
|
||||
Role: kopsapi.InstanceGroupRoleNode,
|
||||
},
|
||||
},
|
||||
Ready: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-1a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-1b"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
groups["node-2"] = &CloudInstanceGroup{
|
||||
ASGName: aws.StringValue(asgGroups.AutoScalingGroups[1].AutoScalingGroupName),
|
||||
asg: asgGroups.AutoScalingGroups[1],
|
||||
InstanceGroup: &kopsapi.InstanceGroup{
|
||||
ObjectMeta: v1meta.ObjectMeta{
|
||||
Name: "node-2",
|
||||
},
|
||||
Spec: kopsapi.InstanceGroupSpec{
|
||||
Role: kopsapi.InstanceGroupRoleNode,
|
||||
},
|
||||
},
|
||||
Ready: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-2a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-2b"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
groups["master-1"] = &CloudInstanceGroup{
|
||||
ASGName: aws.StringValue(asgGroups.AutoScalingGroups[2].AutoScalingGroupName),
|
||||
asg: asgGroups.AutoScalingGroups[2],
|
||||
InstanceGroup: &kopsapi.InstanceGroup{
|
||||
ObjectMeta: v1meta.ObjectMeta{
|
||||
Name: "master-1",
|
||||
},
|
||||
Spec: kopsapi.InstanceGroupSpec{
|
||||
Role: kopsapi.InstanceGroupRoleMaster,
|
||||
},
|
||||
},
|
||||
Ready: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("master-1a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
groups["bastion-1"] = &CloudInstanceGroup{
|
||||
ASGName: aws.StringValue(asgGroups.AutoScalingGroups[3].AutoScalingGroupName),
|
||||
asg: asgGroups.AutoScalingGroups[3],
|
||||
InstanceGroup: &kopsapi.InstanceGroup{
|
||||
ObjectMeta: v1meta.ObjectMeta{
|
||||
Name: "bastion-1",
|
||||
},
|
||||
Spec: kopsapi.InstanceGroupSpec{
|
||||
Role: kopsapi.InstanceGroupRoleBastion,
|
||||
},
|
||||
},
|
||||
Ready: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("bastion-1a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
err := c.RollingUpdate(groups, &kopsapi.InstanceGroupList{})
|
||||
if err != nil {
|
||||
t.Errorf("Error on rolling update: %v", err)
|
||||
}
|
||||
|
||||
asgGroups, _ = cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{
|
||||
AutoScalingGroupNames: []*string{aws.String("node-1")},
|
||||
})
|
||||
for _, group := range asgGroups.AutoScalingGroups {
|
||||
if len(group.Instances) != 2 {
|
||||
t.Errorf("Expected 2 instances got: %v", len(group.Instances))
|
||||
}
|
||||
}
|
||||
|
||||
asgGroups, _ = cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{
|
||||
AutoScalingGroupNames: []*string{aws.String("node-2")},
|
||||
})
|
||||
for _, group := range asgGroups.AutoScalingGroups {
|
||||
if len(group.Instances) != 2 {
|
||||
t.Errorf("Expected 2 instances got: %v", len(group.Instances))
|
||||
}
|
||||
}
|
||||
|
||||
asgGroups, _ = cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{
|
||||
AutoScalingGroupNames: []*string{aws.String("master-1")},
|
||||
})
|
||||
for _, group := range asgGroups.AutoScalingGroups {
|
||||
if len(group.Instances) != 1 {
|
||||
t.Errorf("Expected 1 instances got: %v", len(group.Instances))
|
||||
}
|
||||
}
|
||||
|
||||
asgGroups, _ = cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{
|
||||
AutoScalingGroupNames: []*string{aws.String("bastion-1")},
|
||||
})
|
||||
for _, group := range asgGroups.AutoScalingGroups {
|
||||
if len(group.Instances) != 1 {
|
||||
t.Errorf("Expected 1 instances got: %v", len(group.Instances))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestRollingUpdateNoneNeedUpdateWithForce(t *testing.T) {
|
||||
k8sClient := fake.NewSimpleClientset()
|
||||
|
||||
mockcloud := awsup.BuildMockAWSCloud("us-east-1", "abc")
|
||||
mockcloud.MockAutoscaling = &mockautoscaling.MockAutoscaling{}
|
||||
|
||||
c := &RollingUpdateCluster{
|
||||
Cloud: mockcloud,
|
||||
MasterInterval: 1 * time.Millisecond,
|
||||
NodeInterval: 1 * time.Millisecond,
|
||||
BastionInterval: 1 * time.Millisecond,
|
||||
Force: true,
|
||||
K8sClient: k8sClient,
|
||||
}
|
||||
cloud := c.Cloud.(awsup.AWSCloud)
|
||||
setUpCloud(c)
|
||||
|
||||
asgGroups, _ := cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{})
|
||||
|
||||
groups := make(map[string]*CloudInstanceGroup)
|
||||
groups["node-1"] = &CloudInstanceGroup{
|
||||
ASGName: aws.StringValue(asgGroups.AutoScalingGroups[0].AutoScalingGroupName),
|
||||
asg: asgGroups.AutoScalingGroups[0],
|
||||
InstanceGroup: &kopsapi.InstanceGroup{
|
||||
ObjectMeta: v1meta.ObjectMeta{
|
||||
Name: "node-1",
|
||||
},
|
||||
Spec: kopsapi.InstanceGroupSpec{
|
||||
Role: kopsapi.InstanceGroupRoleNode,
|
||||
},
|
||||
},
|
||||
Ready: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-1a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-1b"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
groups["node-2"] = &CloudInstanceGroup{
|
||||
ASGName: aws.StringValue(asgGroups.AutoScalingGroups[1].AutoScalingGroupName),
|
||||
asg: asgGroups.AutoScalingGroups[1],
|
||||
InstanceGroup: &kopsapi.InstanceGroup{
|
||||
ObjectMeta: v1meta.ObjectMeta{
|
||||
Name: "node-2",
|
||||
},
|
||||
Spec: kopsapi.InstanceGroupSpec{
|
||||
Role: kopsapi.InstanceGroupRoleNode,
|
||||
},
|
||||
},
|
||||
Ready: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-2a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-2b"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
groups["master-1"] = &CloudInstanceGroup{
|
||||
ASGName: aws.StringValue(asgGroups.AutoScalingGroups[2].AutoScalingGroupName),
|
||||
asg: asgGroups.AutoScalingGroups[2],
|
||||
InstanceGroup: &kopsapi.InstanceGroup{
|
||||
ObjectMeta: v1meta.ObjectMeta{
|
||||
Name: "master-1",
|
||||
},
|
||||
Spec: kopsapi.InstanceGroupSpec{
|
||||
Role: kopsapi.InstanceGroupRoleMaster,
|
||||
},
|
||||
},
|
||||
Ready: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("master-1a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
groups["bastion-1"] = &CloudInstanceGroup{
|
||||
ASGName: aws.StringValue(asgGroups.AutoScalingGroups[3].AutoScalingGroupName),
|
||||
asg: asgGroups.AutoScalingGroups[3],
|
||||
InstanceGroup: &kopsapi.InstanceGroup{
|
||||
ObjectMeta: v1meta.ObjectMeta{
|
||||
Name: "bastion-1",
|
||||
},
|
||||
Spec: kopsapi.InstanceGroupSpec{
|
||||
Role: kopsapi.InstanceGroupRoleBastion,
|
||||
},
|
||||
},
|
||||
Ready: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("bastion-1a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
err := c.RollingUpdate(groups, &kopsapi.InstanceGroupList{})
|
||||
if err != nil {
|
||||
t.Errorf("Error on rolling update: %v", err)
|
||||
}
|
||||
|
||||
asgGroups, _ = cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{})
|
||||
for _, group := range asgGroups.AutoScalingGroups {
|
||||
if len(group.Instances) > 0 {
|
||||
t.Error("Not all instances terminated")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestRollingUpdateEmptyGroup(t *testing.T) {
|
||||
k8sClient := fake.NewSimpleClientset()
|
||||
|
||||
mockcloud := awsup.BuildMockAWSCloud("us-east-1", "abc")
|
||||
mockcloud.MockAutoscaling = &mockautoscaling.MockAutoscaling{}
|
||||
|
||||
c := &RollingUpdateCluster{
|
||||
Cloud: mockcloud,
|
||||
MasterInterval: 1 * time.Millisecond,
|
||||
NodeInterval: 1 * time.Millisecond,
|
||||
BastionInterval: 1 * time.Millisecond,
|
||||
K8sClient: k8sClient,
|
||||
Force: false,
|
||||
}
|
||||
cloud := c.Cloud.(awsup.AWSCloud)
|
||||
setUpCloud(c)
|
||||
|
||||
asgGroups, _ := cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{})
|
||||
groups := make(map[string]*CloudInstanceGroup)
|
||||
|
||||
err := c.RollingUpdate(groups, &kopsapi.InstanceGroupList{})
|
||||
if err != nil {
|
||||
t.Errorf("Error on rolling update: %v", err)
|
||||
}
|
||||
|
||||
asgGroups, _ = cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{
|
||||
AutoScalingGroupNames: []*string{aws.String("node-1")},
|
||||
})
|
||||
for _, group := range asgGroups.AutoScalingGroups {
|
||||
if len(group.Instances) != 2 {
|
||||
t.Errorf("Expected 2 instances got: %v", len(group.Instances))
|
||||
}
|
||||
}
|
||||
|
||||
asgGroups, _ = cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{
|
||||
AutoScalingGroupNames: []*string{aws.String("node-2")},
|
||||
})
|
||||
for _, group := range asgGroups.AutoScalingGroups {
|
||||
if len(group.Instances) != 2 {
|
||||
t.Errorf("Expected 2 instances got: %v", len(group.Instances))
|
||||
}
|
||||
}
|
||||
|
||||
asgGroups, _ = cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{
|
||||
AutoScalingGroupNames: []*string{aws.String("master-1")},
|
||||
})
|
||||
for _, group := range asgGroups.AutoScalingGroups {
|
||||
if len(group.Instances) != 1 {
|
||||
t.Errorf("Expected 1 instances got: %v", len(group.Instances))
|
||||
}
|
||||
}
|
||||
|
||||
asgGroups, _ = cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{
|
||||
AutoScalingGroupNames: []*string{aws.String("bastion-1")},
|
||||
})
|
||||
for _, group := range asgGroups.AutoScalingGroups {
|
||||
if len(group.Instances) != 1 {
|
||||
t.Errorf("Expected 1 instances got: %v", len(group.Instances))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func TestRollingUpdateUnknownRole(t *testing.T) {
|
||||
k8sClient := fake.NewSimpleClientset()
|
||||
|
||||
mockcloud := awsup.BuildMockAWSCloud("us-east-1", "abc")
|
||||
mockcloud.MockAutoscaling = &mockautoscaling.MockAutoscaling{}
|
||||
|
||||
c := &RollingUpdateCluster{
|
||||
Cloud: mockcloud,
|
||||
MasterInterval: 1 * time.Millisecond,
|
||||
NodeInterval: 1 * time.Millisecond,
|
||||
BastionInterval: 1 * time.Millisecond,
|
||||
Force: false,
|
||||
K8sClient: k8sClient,
|
||||
}
|
||||
cloud := c.Cloud.(awsup.AWSCloud)
|
||||
setUpCloud(c)
|
||||
|
||||
asgGroups, _ := cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{})
|
||||
|
||||
groups := make(map[string]*CloudInstanceGroup)
|
||||
groups["node-1"] = &CloudInstanceGroup{
|
||||
ASGName: aws.StringValue(asgGroups.AutoScalingGroups[0].AutoScalingGroupName),
|
||||
asg: asgGroups.AutoScalingGroups[0],
|
||||
InstanceGroup: &kopsapi.InstanceGroup{
|
||||
ObjectMeta: v1meta.ObjectMeta{
|
||||
Name: "node-1",
|
||||
},
|
||||
Spec: kopsapi.InstanceGroupSpec{
|
||||
Role: "Unknown",
|
||||
},
|
||||
},
|
||||
Ready: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-1a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-1b"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
groups["node-2"] = &CloudInstanceGroup{
|
||||
ASGName: aws.StringValue(asgGroups.AutoScalingGroups[1].AutoScalingGroupName),
|
||||
asg: asgGroups.AutoScalingGroups[1],
|
||||
InstanceGroup: &kopsapi.InstanceGroup{
|
||||
ObjectMeta: v1meta.ObjectMeta{
|
||||
Name: "node-2",
|
||||
},
|
||||
Spec: kopsapi.InstanceGroupSpec{
|
||||
Role: kopsapi.InstanceGroupRoleNode,
|
||||
},
|
||||
},
|
||||
Ready: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-2a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("node-2b"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
groups["master-1"] = &CloudInstanceGroup{
|
||||
ASGName: aws.StringValue(asgGroups.AutoScalingGroups[2].AutoScalingGroupName),
|
||||
asg: asgGroups.AutoScalingGroups[2],
|
||||
InstanceGroup: &kopsapi.InstanceGroup{
|
||||
ObjectMeta: v1meta.ObjectMeta{
|
||||
Name: "master-1",
|
||||
},
|
||||
Spec: kopsapi.InstanceGroupSpec{
|
||||
Role: kopsapi.InstanceGroupRoleMaster,
|
||||
},
|
||||
},
|
||||
Ready: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("master-1a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
groups["bastion-1"] = &CloudInstanceGroup{
|
||||
ASGName: aws.StringValue(asgGroups.AutoScalingGroups[3].AutoScalingGroupName),
|
||||
asg: asgGroups.AutoScalingGroups[3],
|
||||
InstanceGroup: &kopsapi.InstanceGroup{
|
||||
ObjectMeta: v1meta.ObjectMeta{
|
||||
Name: "bastion-1",
|
||||
},
|
||||
Spec: kopsapi.InstanceGroupSpec{
|
||||
Role: kopsapi.InstanceGroupRoleBastion,
|
||||
},
|
||||
},
|
||||
Ready: []*CloudInstanceGroupInstance{
|
||||
{
|
||||
ASGInstance: &autoscaling.Instance{
|
||||
InstanceId: aws.String("bastion-1a"),
|
||||
},
|
||||
Node: &v1.Node{},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
err := c.RollingUpdate(groups, &kopsapi.InstanceGroupList{})
|
||||
if err == nil {
|
||||
t.Errorf("Error expected on rolling update: %v", err)
|
||||
}
|
||||
|
||||
asgGroups, _ = cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{
|
||||
AutoScalingGroupNames: []*string{aws.String("node-1")},
|
||||
})
|
||||
for _, group := range asgGroups.AutoScalingGroups {
|
||||
if len(group.Instances) != 2 {
|
||||
t.Errorf("Expected 2 instances got: %v", len(group.Instances))
|
||||
}
|
||||
}
|
||||
|
||||
asgGroups, _ = cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{
|
||||
AutoScalingGroupNames: []*string{aws.String("node-2")},
|
||||
})
|
||||
for _, group := range asgGroups.AutoScalingGroups {
|
||||
if len(group.Instances) != 2 {
|
||||
t.Errorf("Expected 2 instances got: %v", len(group.Instances))
|
||||
}
|
||||
}
|
||||
|
||||
asgGroups, _ = cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{
|
||||
AutoScalingGroupNames: []*string{aws.String("master-1")},
|
||||
})
|
||||
for _, group := range asgGroups.AutoScalingGroups {
|
||||
if len(group.Instances) != 1 {
|
||||
t.Errorf("Expected 1 instances got: %v", len(group.Instances))
|
||||
}
|
||||
}
|
||||
|
||||
asgGroups, _ = cloud.Autoscaling().DescribeAutoScalingGroups(&autoscaling.DescribeAutoScalingGroupsInput{
|
||||
AutoScalingGroupNames: []*string{aws.String("bastion-1")},
|
||||
})
|
||||
for _, group := range asgGroups.AutoScalingGroups {
|
||||
if len(group.Instances) != 1 {
|
||||
t.Errorf("Expected 1 instances got: %v", len(group.Instances))
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue