Add missing cloudmock functionality for enabling lifecycle integration test on complex cluster

This commit is contained in:
Peter Rifel 2020-10-29 17:22:47 -05:00
parent 839a1185cf
commit 11bf3ff202
No known key found for this signature in database
GPG Key ID: BC6469E5B16DB2B6
8 changed files with 59 additions and 7 deletions

View File

@ -50,3 +50,20 @@ func (m *MockAutoscaling) AttachLoadBalancersRequest(*autoscaling.AttachLoadBala
klog.Fatalf("Not implemented")
return nil, nil
}
func (m *MockAutoscaling) AttachLoadBalancerTargetGroups(request *autoscaling.AttachLoadBalancerTargetGroupsInput) (*autoscaling.AttachLoadBalancerTargetGroupsOutput, error) {
m.mutex.Lock()
defer m.mutex.Unlock()
klog.Infof("AttachLoadBalancers: %v", request)
name := *request.AutoScalingGroupName
asg := m.Groups[name]
if asg == nil {
return nil, fmt.Errorf("Group %q not found", name)
}
asg.TargetGroupARNs = request.TargetGroupARNs
return &autoscaling.AttachLoadBalancerTargetGroupsOutput{}, nil
}

View File

@ -69,8 +69,7 @@ func (m *MockAutoscaling) CreateAutoScalingGroup(input *autoscaling.CreateAutoSc
NewInstancesProtectedFromScaleIn: input.NewInstancesProtectedFromScaleIn,
PlacementGroup: input.PlacementGroup,
// Status: input.Status,
// SuspendedProcesses: input.SuspendedProcesses,
// Tags: input.Tags,
SuspendedProcesses: make([]*autoscaling.SuspendedProcess, 0),
TargetGroupARNs: input.TargetGroupARNs,
TerminationPolicies: input.TerminationPolicies,
VPCZoneIdentifier: input.VPCZoneIdentifier,
@ -126,6 +125,34 @@ func (m *MockAutoscaling) EnableMetricsCollection(request *autoscaling.EnableMet
return response, nil
}
func (m *MockAutoscaling) SuspendProcesses(input *autoscaling.ScalingProcessQuery) (*autoscaling.SuspendProcessesOutput, error) {
m.mutex.Lock()
defer m.mutex.Unlock()
klog.Infof("EnableMetricsCollection: %v", input)
g := m.Groups[*input.AutoScalingGroupName]
if g == nil {
return nil, fmt.Errorf("AutoScalingGroup not found")
}
for _, p := range input.ScalingProcesses {
found := false
for _, asgProc := range g.SuspendedProcesses {
if aws.StringValue(asgProc.ProcessName) == aws.StringValue(p) {
found = true
}
}
if !found {
g.SuspendedProcesses = append(g.SuspendedProcesses, &autoscaling.SuspendedProcess{
ProcessName: p,
})
}
}
return &autoscaling.SuspendProcessesOutput{}, nil
}
func (m *MockAutoscaling) DescribeAutoScalingGroups(input *autoscaling.DescribeAutoScalingGroupsInput) (*autoscaling.DescribeAutoScalingGroupsOutput, error) {
m.mutex.Lock()
defer m.mutex.Unlock()

View File

@ -59,8 +59,11 @@ func (m *MockIAM) CreateRole(request *iam.CreateRoleInput) (*iam.CreateRoleOutpu
AssumeRolePolicyDocument: request.AssumeRolePolicyDocument,
Description: request.Description,
Path: request.Path,
RoleName: request.RoleName,
RoleId: &roleID,
PermissionsBoundary: &iam.AttachedPermissionsBoundary{
PermissionsBoundaryArn: request.PermissionsBoundary,
},
RoleName: request.RoleName,
RoleId: &roleID,
}
if m.Roles == nil {

View File

@ -36,6 +36,7 @@ go_library(
"//util/pkg/vfs:go_default_library",
"//vendor/github.com/aws/aws-sdk-go/aws:go_default_library",
"//vendor/github.com/aws/aws-sdk-go/service/ec2:go_default_library",
"//vendor/github.com/aws/aws-sdk-go/service/elbv2:go_default_library",
"//vendor/github.com/aws/aws-sdk-go/service/route53:go_default_library",
"//vendor/github.com/gophercloud/gophercloud/openstack/compute/v2/flavors:go_default_library",
"//vendor/github.com/gophercloud/gophercloud/openstack/dns/v2/zones:go_default_library",

View File

@ -25,6 +25,7 @@ import (
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/ec2"
"github.com/aws/aws-sdk-go/service/elbv2"
"github.com/aws/aws-sdk-go/service/route53"
"github.com/gophercloud/gophercloud/openstack/compute/v2/flavors"
"github.com/gophercloud/gophercloud/openstack/dns/v2/zones"
@ -245,6 +246,9 @@ func (h *IntegrationTestHarness) SetupMockAWS() *awsup.MockAWSCloud {
AllocationId: aws.String("eipalloc-b2345678"),
}, "nat-b2345678")
mockELBV2.CreateTargetGroup(&elbv2.CreateTargetGroupInput{
Name: aws.String("my-external-tg"),
})
return cloud
}

View File

@ -78,7 +78,7 @@
"my-other-elb"
],
"TargetGroupARNs": [
"aws:arn:elasticloadbalancing:us-test-1a:123456789012:targetgroup/my-tg/0123456789abcdef"
"arn:aws:elasticloadbalancing:us-test-1:000000000000:targetgroup/my-external-tg/1"
]
}
},

View File

@ -79,7 +79,7 @@ spec:
subnets:
- us-test-1a
externalLoadBalancers:
- targetGroupArn: aws:arn:elasticloadbalancing:us-test-1a:123456789012:targetgroup/my-tg/0123456789abcdef
- targetGroupArn: arn:aws:elasticloadbalancing:us-test-1:000000000000:targetgroup/my-external-tg/1
- loadBalancerName: my-other-elb

View File

@ -126,7 +126,7 @@ resource "aws_autoscaling_group" "master-us-test-1a-masters-externallb-example-c
propagate_at_launch = true
value = "owned"
}
target_group_arns = ["aws:arn:elasticloadbalancing:us-test-1a:123456789012:targetgroup/my-tg/0123456789abcdef"]
target_group_arns = ["arn:aws:elasticloadbalancing:us-test-1:000000000000:targetgroup/my-external-tg/1"]
vpc_zone_identifier = [aws_subnet.us-test-1a-externallb-example-com.id]
}