From c82dc6e1c0330e76a4ef53df4271bebccb764910 Mon Sep 17 00:00:00 2001 From: Nick Turner Date: Mon, 9 Jul 2018 17:59:22 +0000 Subject: [PATCH] Use CreateTags instead of TagResources * Also introduce two new tags: - node.k8s.amazonaws.com/instance_id - cluster.k8s.amazonaws.com/name (only tagged if the env var CLUSTER_NAME is present). --- pkg/awsutils/awsutils.go | 65 +++++----- pkg/awsutils/awsutils_test.go | 67 +++++----- pkg/ec2wrapper/client.go | 1 + pkg/ec2wrapper/mocks/ec2wrapper_mocks.go | 122 ++++++++++-------- pkg/resourcegroupstaggingapiwrapper/client.go | 27 ---- .../generate_mocks.go | 16 --- .../resourcegroupstaggingapiwrapper_mocks.go | 61 --------- 7 files changed, 134 insertions(+), 225 deletions(-) delete mode 100644 pkg/resourcegroupstaggingapiwrapper/client.go delete mode 100644 pkg/resourcegroupstaggingapiwrapper/generate_mocks.go delete mode 100644 pkg/resourcegroupstaggingapiwrapper/mocks/resourcegroupstaggingapiwrapper_mocks.go diff --git a/pkg/awsutils/awsutils.go b/pkg/awsutils/awsutils.go index 02e77836fd..f2b5e578ef 100644 --- a/pkg/awsutils/awsutils.go +++ b/pkg/awsutils/awsutils.go @@ -15,6 +15,7 @@ package awsutils import ( "fmt" + "os" "strconv" "strings" "time" @@ -26,13 +27,10 @@ import ( "github.com/aws/amazon-vpc-cni-k8s/pkg/ec2metadata" "github.com/aws/amazon-vpc-cni-k8s/pkg/ec2wrapper" - "github.com/aws/amazon-vpc-cni-k8s/pkg/resourcegroupstaggingapiwrapper" "github.com/aws/aws-sdk-go/aws" - "github.com/aws/aws-sdk-go/aws/arn" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/aws/session" "github.com/aws/aws-sdk-go/service/ec2" - "github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi" ) const ( @@ -53,8 +51,10 @@ const ( eniDescriptionPrefix = "aws-K8S-" metadataOwnerID = "/owner-id" // AllocENI need to choose a first free device number between 0 and maxENI - maxENIs = 128 - eniTagKey = "k8s-eni-key" + maxENIs = 128 + clusterNameEnvVar = "CLUSTER_NAME" + eniNodeTagKey = "node.k8s.amazonaws.com/instance_id" + eniClusterTagKey = "cluster.k8s.amazonaws.com/name" retryDeleteENIInternal = 5 * time.Second @@ -144,7 +144,6 @@ type EC2InstanceMetadataCache struct { ec2Metadata ec2metadata.EC2Metadata ec2SVC ec2wrapper.EC2 - tagSVC resourcegroupstaggingapiwrapper.ResourceGroupsTaggingAPI } // ENIMetadata contains ENI information retrieved from EC2 meta data service @@ -205,9 +204,6 @@ func New() (*EC2InstanceMetadataCache, error) { ec2SVC := ec2wrapper.New(sess) cache.ec2SVC = ec2SVC - tagSVC := resourcegroupstaggingapiwrapper.New(sess) - cache.tagSVC = tagSVC - err = cache.initWithEC2Metadata() if err != nil { return nil, err @@ -625,37 +621,44 @@ func (cache *EC2InstanceMetadataCache) createENI() (string, error) { } func (cache *EC2InstanceMetadataCache) tagENI(eniID string) { - tagSvc := cache.tagSVC - arns := make([]*string, 0) - eniARN := &arn.ARN{ - Partition: "aws", - Service: "ec2", - Region: cache.region, - AccountID: cache.accountID, - Resource: "network-interface/" + eniID} - arnString := eniARN.String() - arns = append(arns, aws.String(arnString)) + // Tag the ENI with "node.k8s.amazonaws.com/instance_id=" + tags := []*ec2.Tag{ + { + Key: aws.String(eniNodeTagKey), + Value: aws.String(cache.instanceID), + }, + } - tags := make(map[string]*string) + // If the CLUSTER_NAME env var is present, + // tag the ENI with "cluster.k8s.amazonaws.com/name=" + clusterName := os.Getenv(clusterNameEnvVar) + if clusterName != "" { + tags = append(tags, &ec2.Tag{ + Key: aws.String(eniClusterTagKey), + Value: aws.String(clusterName), + }) + } - tagValue := cache.instanceID - tags[eniTagKey] = aws.String(tagValue) - log.Debugf("Trying to tag newly created eni: keys=%s, value=%s", eniTagKey, tagValue) + for _, tag := range tags { + log.Debugf("Trying to tag newly created eni: key=%s, value=%s", aws.StringValue(tag.Key), aws.StringValue(tag.Value)) + } - tagInput := &resourcegroupstaggingapi.TagResourcesInput{ - ResourceARNList: arns, - Tags: tags, + input := &ec2.CreateTagsInput{ + Resources: []*string{ + aws.String(eniID), + }, + Tags: tags, } start := time.Now() - _, err := tagSvc.TagResources(tagInput) - awsAPILatency.WithLabelValues("TagResources", fmt.Sprint(err != nil)).Observe(msSince(start)) + _, err := cache.ec2SVC.CreateTags(input) + awsAPILatency.WithLabelValues("CreateTags", fmt.Sprint(err != nil)).Observe(msSince(start)) if err != nil { - awsAPIErrInc("TagResources", err) - log.Warnf("Fail to tag the newly created eni %s %v", eniID, err) + awsAPIErrInc("CreateTags", err) + log.Warnf("Failed to tag the newly created eni %s: %v", eniID, err) } else { - log.Debugf("Tag the newly created eni with arn: %s", arnString) + log.Debugf("Successfully tagged ENI: %s", eniID) } } diff --git a/pkg/awsutils/awsutils_test.go b/pkg/awsutils/awsutils_test.go index 113880c5a9..ddf5a9b98a 100644 --- a/pkg/awsutils/awsutils_test.go +++ b/pkg/awsutils/awsutils_test.go @@ -25,7 +25,6 @@ import ( "github.com/aws/amazon-vpc-cni-k8s/pkg/ec2metadata/mocks" "github.com/aws/amazon-vpc-cni-k8s/pkg/ec2wrapper/mocks" - "github.com/aws/amazon-vpc-cni-k8s/pkg/resourcegroupstaggingapiwrapper/mocks" ) const ( @@ -52,17 +51,15 @@ const ( func setup(t *testing.T) (*gomock.Controller, *mock_ec2metadata.MockEC2Metadata, - *mock_ec2wrapper.MockEC2, - *mock_resourcegroupstaggingapiwrapper.MockResourceGroupsTaggingAPI) { + *mock_ec2wrapper.MockEC2) { ctrl := gomock.NewController(t) return ctrl, mock_ec2metadata.NewMockEC2Metadata(ctrl), - mock_ec2wrapper.NewMockEC2(ctrl), - mock_resourcegroupstaggingapiwrapper.NewMockResourceGroupsTaggingAPI(ctrl) + mock_ec2wrapper.NewMockEC2(ctrl) } func TestInitWithEC2metadata(t *testing.T) { - ctrl, mockMetadata, _, _ := setup(t) + ctrl, mockMetadata, _ := setup(t) defer ctrl.Finish() mockMetadata.EXPECT().GetMetadata(metadataAZ).Return(az, nil) @@ -93,7 +90,7 @@ func TestInitWithEC2metadata(t *testing.T) { } func TestInitWithEC2metadataVPCcidrErr(t *testing.T) { - ctrl, mockMetadata, _, _ := setup(t) + ctrl, mockMetadata, _ := setup(t) defer ctrl.Finish() mockMetadata.EXPECT().GetMetadata(metadataAZ).Return(az, nil) @@ -117,7 +114,7 @@ func TestInitWithEC2metadataVPCcidrErr(t *testing.T) { } func TestInitWithEC2metadataSubnetErr(t *testing.T) { - ctrl, mockMetadata, _, _ := setup(t) + ctrl, mockMetadata, _ := setup(t) defer ctrl.Finish() mockMetadata.EXPECT().GetMetadata(metadataAZ).Return(az, nil) @@ -139,7 +136,7 @@ func TestInitWithEC2metadataSubnetErr(t *testing.T) { } func TestInitWithEC2metadataSGErr(t *testing.T) { - ctrl, mockMetadata, _, _ := setup(t) + ctrl, mockMetadata, _ := setup(t) defer ctrl.Finish() mockMetadata.EXPECT().GetMetadata(metadataAZ).Return(az, nil) @@ -160,7 +157,7 @@ func TestInitWithEC2metadataSGErr(t *testing.T) { } func TestInitWithEC2metadataENIErrs(t *testing.T) { - ctrl, mockMetadata, _, _ := setup(t) + ctrl, mockMetadata, _ := setup(t) defer ctrl.Finish() mockMetadata.EXPECT().GetMetadata(metadataAZ).Return(az, nil) @@ -178,7 +175,7 @@ func TestInitWithEC2metadataENIErrs(t *testing.T) { } func TestInitWithEC2metadataMACErr(t *testing.T) { - ctrl, mockMetadata, _, _ := setup(t) + ctrl, mockMetadata, _ := setup(t) defer ctrl.Finish() mockMetadata.EXPECT().GetMetadata(metadataAZ).Return(az, nil) @@ -195,7 +192,7 @@ func TestInitWithEC2metadataMACErr(t *testing.T) { } func TestInitWithEC2metadataLocalIPErr(t *testing.T) { - ctrl, mockMetadata, _, _ := setup(t) + ctrl, mockMetadata, _ := setup(t) defer ctrl.Finish() mockMetadata.EXPECT().GetMetadata(metadataAZ).Return(az, nil) @@ -209,7 +206,7 @@ func TestInitWithEC2metadataLocalIPErr(t *testing.T) { } func TestInitWithEC2metadataInstanceErr(t *testing.T) { - ctrl, mockMetadata, _, _ := setup(t) + ctrl, mockMetadata, _ := setup(t) defer ctrl.Finish() mockMetadata.EXPECT().GetMetadata(metadataAZ).Return(az, nil) @@ -224,7 +221,7 @@ func TestInitWithEC2metadataInstanceErr(t *testing.T) { } func TestInitWithEC2metadataAZErr(t *testing.T) { - ctrl, mockMetadata, _, _ := setup(t) + ctrl, mockMetadata, _ := setup(t) defer ctrl.Finish() mockMetadata.EXPECT().GetMetadata(metadataAZ).Return(az, errors.New("Error on metadata AZ")) @@ -236,7 +233,7 @@ func TestInitWithEC2metadataAZErr(t *testing.T) { } func TestSetPrimaryENs(t *testing.T) { - ctrl, mockMetadata, _, _ := setup(t) + ctrl, mockMetadata, _ := setup(t) defer ctrl.Finish() mockMetadata.EXPECT().GetMetadata(metadataMACPath).Return(primaryMAC+" "+eni2MAC, nil) @@ -255,7 +252,7 @@ func TestSetPrimaryENs(t *testing.T) { } func TestGetAttachedENIs(t *testing.T) { - ctrl, mockMetadata, _, _ := setup(t) + ctrl, mockMetadata, _ := setup(t) defer ctrl.Finish() mockMetadata.EXPECT().GetMetadata(metadataMACPath).Return(primaryMAC+" "+eni2MAC, nil) @@ -278,7 +275,7 @@ func TestGetAttachedENIs(t *testing.T) { } func TestAWSGetFreeDeviceNumberOnErr(t *testing.T) { - ctrl, _, mockEC2, _ := setup(t) + ctrl, _, mockEC2 := setup(t) defer ctrl.Finish() // test error handling @@ -291,7 +288,7 @@ func TestAWSGetFreeDeviceNumberOnErr(t *testing.T) { } func TestAWSGetFreeDeviceNumberNoDevice(t *testing.T) { - ctrl, _, mockEC2, _ := setup(t) + ctrl, _, mockEC2 := setup(t) defer ctrl.Finish() // test no free index @@ -318,13 +315,13 @@ func TestAWSGetFreeDeviceNumberNoDevice(t *testing.T) { } func TestAllocENI(t *testing.T) { - ctrl, _, mockEC2, mockTag := setup(t) + ctrl, _, mockEC2 := setup(t) defer ctrl.Finish() cureniID := eniID eni := ec2.CreateNetworkInterfaceOutput{NetworkInterface: &ec2.NetworkInterface{NetworkInterfaceId: &cureniID}} mockEC2.EXPECT().CreateNetworkInterface(gomock.Any()).Return(&eni, nil) - mockTag.EXPECT().TagResources(gomock.Any()).Return(nil, nil) + mockEC2.EXPECT().CreateTags(gomock.Any()).Return(nil, nil) // 2 ENIs, uses device number 0 3, expect to find free at 1 ec2ENIs := make([]*ec2.InstanceNetworkInterface, 0) @@ -351,19 +348,19 @@ func TestAllocENI(t *testing.T) { mockEC2.EXPECT().ModifyNetworkInterfaceAttribute(gomock.Any()).Return(nil, nil) - ins := &EC2InstanceMetadataCache{ec2SVC: mockEC2, tagSVC: mockTag} + ins := &EC2InstanceMetadataCache{ec2SVC: mockEC2} _, err := ins.AllocENI() assert.NoError(t, err) } func TestAllocENINoFreeDevice(t *testing.T) { - ctrl, _, mockEC2, mockTag := setup(t) + ctrl, _, mockEC2 := setup(t) defer ctrl.Finish() cureniID := eniID eni := ec2.CreateNetworkInterfaceOutput{NetworkInterface: &ec2.NetworkInterface{NetworkInterfaceId: &cureniID}} mockEC2.EXPECT().CreateNetworkInterface(gomock.Any()).Return(&eni, nil) - mockTag.EXPECT().TagResources(gomock.Any()).Return(nil, nil) + mockEC2.EXPECT().CreateTags(gomock.Any()).Return(nil, nil) // test no free index ec2ENIs := make([]*ec2.InstanceNetworkInterface, 0) @@ -383,20 +380,20 @@ func TestAllocENINoFreeDevice(t *testing.T) { mockEC2.EXPECT().DeleteNetworkInterface(gomock.Any()).Return(nil, nil) - ins := &EC2InstanceMetadataCache{ec2SVC: mockEC2, tagSVC: mockTag} + ins := &EC2InstanceMetadataCache{ec2SVC: mockEC2} _, err := ins.AllocENI() assert.Error(t, err) } func TestAllocENIMaxReached(t *testing.T) { - ctrl, _, mockEC2, mockTag := setup(t) + ctrl, _, mockEC2 := setup(t) defer ctrl.Finish() cureniID := eniID eni := ec2.CreateNetworkInterfaceOutput{NetworkInterface: &ec2.NetworkInterface{NetworkInterfaceId: &cureniID}} mockEC2.EXPECT().CreateNetworkInterface(gomock.Any()).Return(&eni, nil) - mockTag.EXPECT().TagResources(gomock.Any()).Return(nil, nil) + mockEC2.EXPECT().CreateTags(gomock.Any()).Return(nil, nil) // 2 ENIs, uses device number 0 3, expect to find free at 1 ec2ENIs := make([]*ec2.InstanceNetworkInterface, 0) @@ -419,13 +416,13 @@ func TestAllocENIMaxReached(t *testing.T) { mockEC2.EXPECT().AttachNetworkInterface(gomock.Any()).Return(nil, errors.New("AttachmentLimitExceeded")) mockEC2.EXPECT().DeleteNetworkInterface(gomock.Any()).Return(nil, nil) - ins := &EC2InstanceMetadataCache{ec2SVC: mockEC2, tagSVC: mockTag} + ins := &EC2InstanceMetadataCache{ec2SVC: mockEC2} _, err := ins.AllocENI() assert.Error(t, err) } func TestFreeENI(t *testing.T) { - ctrl, _, mockEC2, _ := setup(t) + ctrl, _, mockEC2 := setup(t) defer ctrl.Finish() attachmentID := eniAttachID @@ -442,7 +439,7 @@ func TestFreeENI(t *testing.T) { } func TestFreeENIRetry(t *testing.T) { - ctrl, _, mockEC2, _ := setup(t) + ctrl, _, mockEC2 := setup(t) defer ctrl.Finish() attachmentID := eniAttachID @@ -462,7 +459,7 @@ func TestFreeENIRetry(t *testing.T) { } func TestFreeENIRetryMax(t *testing.T) { - ctrl, _, mockEC2, _ := setup(t) + ctrl, _, mockEC2 := setup(t) defer ctrl.Finish() attachmentID := eniAttachID @@ -484,7 +481,7 @@ func TestFreeENIRetryMax(t *testing.T) { } func TestFreeENIDescribeErr(t *testing.T) { - ctrl, _, mockEC2, _ := setup(t) + ctrl, _, mockEC2 := setup(t) defer ctrl.Finish() mockEC2.EXPECT().DescribeNetworkInterfaces(gomock.Any()).Return(nil, errors.New("Error on DescribeNetworkInterfaces")) @@ -495,7 +492,7 @@ func TestFreeENIDescribeErr(t *testing.T) { } func TestAllocIPAddress(t *testing.T) { - ctrl, _, mockEC2, _ := setup(t) + ctrl, _, mockEC2 := setup(t) defer ctrl.Finish() testIP := ec2.AssignPrivateIpAddressesOutput{} @@ -509,7 +506,7 @@ func TestAllocIPAddress(t *testing.T) { } func TestAllocIPAddressOnErr(t *testing.T) { - ctrl, _, mockEC2, _ := setup(t) + ctrl, _, mockEC2 := setup(t) defer ctrl.Finish() mockEC2.EXPECT().AssignPrivateIpAddresses(gomock.Any()).Return(nil, errors.New("Error on AssignPrivateIpAddresses")) @@ -522,7 +519,7 @@ func TestAllocIPAddressOnErr(t *testing.T) { } func TestAllocAllIPAddress(t *testing.T) { - ctrl, _, mockEC2, _ := setup(t) + ctrl, _, mockEC2 := setup(t) defer ctrl.Finish() // the expected addresses for t2.nano @@ -553,7 +550,7 @@ func TestAllocAllIPAddress(t *testing.T) { } func TestAllocAllIPAddressOnErr(t *testing.T) { - ctrl, _, mockEC2, _ := setup(t) + ctrl, _, mockEC2 := setup(t) defer ctrl.Finish() // 2 addresses diff --git a/pkg/ec2wrapper/client.go b/pkg/ec2wrapper/client.go index 4ccc9f7080..080bfd32ae 100644 --- a/pkg/ec2wrapper/client.go +++ b/pkg/ec2wrapper/client.go @@ -27,6 +27,7 @@ type EC2 interface { AssignPrivateIpAddresses(input *ec2svc.AssignPrivateIpAddressesInput) (*ec2svc.AssignPrivateIpAddressesOutput, error) DescribeNetworkInterfaces(input *ec2svc.DescribeNetworkInterfacesInput) (*ec2svc.DescribeNetworkInterfacesOutput, error) ModifyNetworkInterfaceAttribute(input *ec2svc.ModifyNetworkInterfaceAttributeInput) (*ec2svc.ModifyNetworkInterfaceAttributeOutput, error) + CreateTags(input *ec2svc.CreateTagsInput) (*ec2svc.CreateTagsOutput, error) } func New(sess *session.Session) EC2 { diff --git a/pkg/ec2wrapper/mocks/ec2wrapper_mocks.go b/pkg/ec2wrapper/mocks/ec2wrapper_mocks.go index 9b1ed2397b..3e5af615c4 100644 --- a/pkg/ec2wrapper/mocks/ec2wrapper_mocks.go +++ b/pkg/ec2wrapper/mocks/ec2wrapper_mocks.go @@ -12,15 +12,14 @@ // permissions and limitations under the License. // Code generated by MockGen. DO NOT EDIT. -// Source: github.com/aws/amazon-vpc-cni-k8s/pkg/ec2wrapper (interfaces: EC2) +// Source: ./pkg/ec2wrapper/client.go -// Package mock_ec2wrapper is a generated GoMock package. package mock_ec2wrapper import ( reflect "reflect" - "github.com/aws/aws-sdk-go/service/ec2" + ec2 "github.com/aws/aws-sdk-go/service/ec2" gomock "github.com/golang/mock/gomock" ) @@ -43,110 +42,123 @@ func NewMockEC2(ctrl *gomock.Controller) *MockEC2 { } // EXPECT returns an object that allows the caller to indicate expected use -func (m *MockEC2) EXPECT() *MockEC2MockRecorder { - return m.recorder +func (_m *MockEC2) EXPECT() *MockEC2MockRecorder { + return _m.recorder } -// AssignPrivateIpAddresses mocks base method -func (m *MockEC2) AssignPrivateIpAddresses(arg0 *ec2.AssignPrivateIpAddressesInput) (*ec2.AssignPrivateIpAddressesOutput, error) { - ret := m.ctrl.Call(m, "AssignPrivateIpAddresses", arg0) - ret0, _ := ret[0].(*ec2.AssignPrivateIpAddressesOutput) +// CreateNetworkInterface mocks base method +func (_m *MockEC2) CreateNetworkInterface(input *ec2.CreateNetworkInterfaceInput) (*ec2.CreateNetworkInterfaceOutput, error) { + ret := _m.ctrl.Call(_m, "CreateNetworkInterface", input) + ret0, _ := ret[0].(*ec2.CreateNetworkInterfaceOutput) ret1, _ := ret[1].(error) return ret0, ret1 } -// AssignPrivateIpAddresses indicates an expected call of AssignPrivateIpAddresses -func (mr *MockEC2MockRecorder) AssignPrivateIpAddresses(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AssignPrivateIpAddresses", reflect.TypeOf((*MockEC2)(nil).AssignPrivateIpAddresses), arg0) +// CreateNetworkInterface indicates an expected call of CreateNetworkInterface +func (_mr *MockEC2MockRecorder) CreateNetworkInterface(arg0 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCallWithMethodType(_mr.mock, "CreateNetworkInterface", reflect.TypeOf((*MockEC2)(nil).CreateNetworkInterface), arg0) } -// AttachNetworkInterface mocks base method -func (m *MockEC2) AttachNetworkInterface(arg0 *ec2.AttachNetworkInterfaceInput) (*ec2.AttachNetworkInterfaceOutput, error) { - ret := m.ctrl.Call(m, "AttachNetworkInterface", arg0) - ret0, _ := ret[0].(*ec2.AttachNetworkInterfaceOutput) +// DescribeInstances mocks base method +func (_m *MockEC2) DescribeInstances(input *ec2.DescribeInstancesInput) (*ec2.DescribeInstancesOutput, error) { + ret := _m.ctrl.Call(_m, "DescribeInstances", input) + ret0, _ := ret[0].(*ec2.DescribeInstancesOutput) ret1, _ := ret[1].(error) return ret0, ret1 } -// AttachNetworkInterface indicates an expected call of AttachNetworkInterface -func (mr *MockEC2MockRecorder) AttachNetworkInterface(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "AttachNetworkInterface", reflect.TypeOf((*MockEC2)(nil).AttachNetworkInterface), arg0) +// DescribeInstances indicates an expected call of DescribeInstances +func (_mr *MockEC2MockRecorder) DescribeInstances(arg0 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCallWithMethodType(_mr.mock, "DescribeInstances", reflect.TypeOf((*MockEC2)(nil).DescribeInstances), arg0) } -// CreateNetworkInterface mocks base method -func (m *MockEC2) CreateNetworkInterface(arg0 *ec2.CreateNetworkInterfaceInput) (*ec2.CreateNetworkInterfaceOutput, error) { - ret := m.ctrl.Call(m, "CreateNetworkInterface", arg0) - ret0, _ := ret[0].(*ec2.CreateNetworkInterfaceOutput) +// AttachNetworkInterface mocks base method +func (_m *MockEC2) AttachNetworkInterface(input *ec2.AttachNetworkInterfaceInput) (*ec2.AttachNetworkInterfaceOutput, error) { + ret := _m.ctrl.Call(_m, "AttachNetworkInterface", input) + ret0, _ := ret[0].(*ec2.AttachNetworkInterfaceOutput) ret1, _ := ret[1].(error) return ret0, ret1 } -// CreateNetworkInterface indicates an expected call of CreateNetworkInterface -func (mr *MockEC2MockRecorder) CreateNetworkInterface(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "CreateNetworkInterface", reflect.TypeOf((*MockEC2)(nil).CreateNetworkInterface), arg0) +// AttachNetworkInterface indicates an expected call of AttachNetworkInterface +func (_mr *MockEC2MockRecorder) AttachNetworkInterface(arg0 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCallWithMethodType(_mr.mock, "AttachNetworkInterface", reflect.TypeOf((*MockEC2)(nil).AttachNetworkInterface), arg0) } // DeleteNetworkInterface mocks base method -func (m *MockEC2) DeleteNetworkInterface(arg0 *ec2.DeleteNetworkInterfaceInput) (*ec2.DeleteNetworkInterfaceOutput, error) { - ret := m.ctrl.Call(m, "DeleteNetworkInterface", arg0) +func (_m *MockEC2) DeleteNetworkInterface(input *ec2.DeleteNetworkInterfaceInput) (*ec2.DeleteNetworkInterfaceOutput, error) { + ret := _m.ctrl.Call(_m, "DeleteNetworkInterface", input) ret0, _ := ret[0].(*ec2.DeleteNetworkInterfaceOutput) ret1, _ := ret[1].(error) return ret0, ret1 } // DeleteNetworkInterface indicates an expected call of DeleteNetworkInterface -func (mr *MockEC2MockRecorder) DeleteNetworkInterface(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteNetworkInterface", reflect.TypeOf((*MockEC2)(nil).DeleteNetworkInterface), arg0) +func (_mr *MockEC2MockRecorder) DeleteNetworkInterface(arg0 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCallWithMethodType(_mr.mock, "DeleteNetworkInterface", reflect.TypeOf((*MockEC2)(nil).DeleteNetworkInterface), arg0) } -// DescribeInstances mocks base method -func (m *MockEC2) DescribeInstances(arg0 *ec2.DescribeInstancesInput) (*ec2.DescribeInstancesOutput, error) { - ret := m.ctrl.Call(m, "DescribeInstances", arg0) - ret0, _ := ret[0].(*ec2.DescribeInstancesOutput) +// DetachNetworkInterface mocks base method +func (_m *MockEC2) DetachNetworkInterface(input *ec2.DetachNetworkInterfaceInput) (*ec2.DetachNetworkInterfaceOutput, error) { + ret := _m.ctrl.Call(_m, "DetachNetworkInterface", input) + ret0, _ := ret[0].(*ec2.DetachNetworkInterfaceOutput) ret1, _ := ret[1].(error) return ret0, ret1 } -// DescribeInstances indicates an expected call of DescribeInstances -func (mr *MockEC2MockRecorder) DescribeInstances(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeInstances", reflect.TypeOf((*MockEC2)(nil).DescribeInstances), arg0) +// DetachNetworkInterface indicates an expected call of DetachNetworkInterface +func (_mr *MockEC2MockRecorder) DetachNetworkInterface(arg0 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCallWithMethodType(_mr.mock, "DetachNetworkInterface", reflect.TypeOf((*MockEC2)(nil).DetachNetworkInterface), arg0) } -// DescribeNetworkInterfaces mocks base method -func (m *MockEC2) DescribeNetworkInterfaces(arg0 *ec2.DescribeNetworkInterfacesInput) (*ec2.DescribeNetworkInterfacesOutput, error) { - ret := m.ctrl.Call(m, "DescribeNetworkInterfaces", arg0) - ret0, _ := ret[0].(*ec2.DescribeNetworkInterfacesOutput) +// AssignPrivateIpAddresses mocks base method +func (_m *MockEC2) AssignPrivateIpAddresses(input *ec2.AssignPrivateIpAddressesInput) (*ec2.AssignPrivateIpAddressesOutput, error) { + ret := _m.ctrl.Call(_m, "AssignPrivateIpAddresses", input) + ret0, _ := ret[0].(*ec2.AssignPrivateIpAddressesOutput) ret1, _ := ret[1].(error) return ret0, ret1 } -// DescribeNetworkInterfaces indicates an expected call of DescribeNetworkInterfaces -func (mr *MockEC2MockRecorder) DescribeNetworkInterfaces(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DescribeNetworkInterfaces", reflect.TypeOf((*MockEC2)(nil).DescribeNetworkInterfaces), arg0) +// AssignPrivateIpAddresses indicates an expected call of AssignPrivateIpAddresses +func (_mr *MockEC2MockRecorder) AssignPrivateIpAddresses(arg0 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCallWithMethodType(_mr.mock, "AssignPrivateIpAddresses", reflect.TypeOf((*MockEC2)(nil).AssignPrivateIpAddresses), arg0) } -// DetachNetworkInterface mocks base method -func (m *MockEC2) DetachNetworkInterface(arg0 *ec2.DetachNetworkInterfaceInput) (*ec2.DetachNetworkInterfaceOutput, error) { - ret := m.ctrl.Call(m, "DetachNetworkInterface", arg0) - ret0, _ := ret[0].(*ec2.DetachNetworkInterfaceOutput) +// DescribeNetworkInterfaces mocks base method +func (_m *MockEC2) DescribeNetworkInterfaces(input *ec2.DescribeNetworkInterfacesInput) (*ec2.DescribeNetworkInterfacesOutput, error) { + ret := _m.ctrl.Call(_m, "DescribeNetworkInterfaces", input) + ret0, _ := ret[0].(*ec2.DescribeNetworkInterfacesOutput) ret1, _ := ret[1].(error) return ret0, ret1 } -// DetachNetworkInterface indicates an expected call of DetachNetworkInterface -func (mr *MockEC2MockRecorder) DetachNetworkInterface(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DetachNetworkInterface", reflect.TypeOf((*MockEC2)(nil).DetachNetworkInterface), arg0) +// DescribeNetworkInterfaces indicates an expected call of DescribeNetworkInterfaces +func (_mr *MockEC2MockRecorder) DescribeNetworkInterfaces(arg0 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCallWithMethodType(_mr.mock, "DescribeNetworkInterfaces", reflect.TypeOf((*MockEC2)(nil).DescribeNetworkInterfaces), arg0) } // ModifyNetworkInterfaceAttribute mocks base method -func (m *MockEC2) ModifyNetworkInterfaceAttribute(arg0 *ec2.ModifyNetworkInterfaceAttributeInput) (*ec2.ModifyNetworkInterfaceAttributeOutput, error) { - ret := m.ctrl.Call(m, "ModifyNetworkInterfaceAttribute", arg0) +func (_m *MockEC2) ModifyNetworkInterfaceAttribute(input *ec2.ModifyNetworkInterfaceAttributeInput) (*ec2.ModifyNetworkInterfaceAttributeOutput, error) { + ret := _m.ctrl.Call(_m, "ModifyNetworkInterfaceAttribute", input) ret0, _ := ret[0].(*ec2.ModifyNetworkInterfaceAttributeOutput) ret1, _ := ret[1].(error) return ret0, ret1 } // ModifyNetworkInterfaceAttribute indicates an expected call of ModifyNetworkInterfaceAttribute -func (mr *MockEC2MockRecorder) ModifyNetworkInterfaceAttribute(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "ModifyNetworkInterfaceAttribute", reflect.TypeOf((*MockEC2)(nil).ModifyNetworkInterfaceAttribute), arg0) +func (_mr *MockEC2MockRecorder) ModifyNetworkInterfaceAttribute(arg0 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCallWithMethodType(_mr.mock, "ModifyNetworkInterfaceAttribute", reflect.TypeOf((*MockEC2)(nil).ModifyNetworkInterfaceAttribute), arg0) +} + +// CreateTags mocks base method +func (_m *MockEC2) CreateTags(input *ec2.CreateTagsInput) (*ec2.CreateTagsOutput, error) { + ret := _m.ctrl.Call(_m, "CreateTags", input) + ret0, _ := ret[0].(*ec2.CreateTagsOutput) + ret1, _ := ret[1].(error) + return ret0, ret1 +} + +// CreateTags indicates an expected call of CreateTags +func (_mr *MockEC2MockRecorder) CreateTags(arg0 interface{}) *gomock.Call { + return _mr.mock.ctrl.RecordCallWithMethodType(_mr.mock, "CreateTags", reflect.TypeOf((*MockEC2)(nil).CreateTags), arg0) } diff --git a/pkg/resourcegroupstaggingapiwrapper/client.go b/pkg/resourcegroupstaggingapiwrapper/client.go deleted file mode 100644 index 7177708d83..0000000000 --- a/pkg/resourcegroupstaggingapiwrapper/client.go +++ /dev/null @@ -1,27 +0,0 @@ -// Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"). You may -// not use this file except in compliance with the License. A copy of the -// License is located at -// -// http://aws.amazon.com/apache2.0/ -// -// or in the "license" file accompanying this file. This file 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 resourcegroupstaggingapiwrapper - -import ( - "github.com/aws/aws-sdk-go/aws/session" - "github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi" -) - -type ResourceGroupsTaggingAPI interface { - TagResources(input *resourcegroupstaggingapi.TagResourcesInput) (*resourcegroupstaggingapi.TagResourcesOutput, error) -} - -func New(sess *session.Session) ResourceGroupsTaggingAPI { - return resourcegroupstaggingapi.New(sess) -} diff --git a/pkg/resourcegroupstaggingapiwrapper/generate_mocks.go b/pkg/resourcegroupstaggingapiwrapper/generate_mocks.go deleted file mode 100644 index b9de257d4b..0000000000 --- a/pkg/resourcegroupstaggingapiwrapper/generate_mocks.go +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"). You may -// not use this file except in compliance with the License. A copy of the -// License is located at -// -// http://aws.amazon.com/apache2.0/ -// -// or in the "license" file accompanying this file. This file 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 resourcegroupstaggingapiwrapper - -//go:generate go run ../../scripts/mockgen.go github.com/aws/amazon-vpc-cni-k8s/pkg/resourcegroupstaggingapiwrapper ResourceGroupsTaggingAPI mocks/resourcegroupstaggingapiwrapper_mocks.go diff --git a/pkg/resourcegroupstaggingapiwrapper/mocks/resourcegroupstaggingapiwrapper_mocks.go b/pkg/resourcegroupstaggingapiwrapper/mocks/resourcegroupstaggingapiwrapper_mocks.go deleted file mode 100644 index 11280aabc3..0000000000 --- a/pkg/resourcegroupstaggingapiwrapper/mocks/resourcegroupstaggingapiwrapper_mocks.go +++ /dev/null @@ -1,61 +0,0 @@ -// Copyright 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved. -// -// Licensed under the Apache License, Version 2.0 (the "License"). You may -// not use this file except in compliance with the License. A copy of the -// License is located at -// -// http://aws.amazon.com/apache2.0/ -// -// or in the "license" file accompanying this file. This file 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. - -// Code generated by MockGen. DO NOT EDIT. -// Source: github.com/aws/amazon-vpc-cni-k8s/pkg/resourcegroupstaggingapiwrapper (interfaces: ResourceGroupsTaggingAPI) - -// Package mock_resourcegroupstaggingapiwrapper is a generated GoMock package. -package mock_resourcegroupstaggingapiwrapper - -import ( - reflect "reflect" - - "github.com/aws/aws-sdk-go/service/resourcegroupstaggingapi" - gomock "github.com/golang/mock/gomock" -) - -// MockResourceGroupsTaggingAPI is a mock of ResourceGroupsTaggingAPI interface -type MockResourceGroupsTaggingAPI struct { - ctrl *gomock.Controller - recorder *MockResourceGroupsTaggingAPIMockRecorder -} - -// MockResourceGroupsTaggingAPIMockRecorder is the mock recorder for MockResourceGroupsTaggingAPI -type MockResourceGroupsTaggingAPIMockRecorder struct { - mock *MockResourceGroupsTaggingAPI -} - -// NewMockResourceGroupsTaggingAPI creates a new mock instance -func NewMockResourceGroupsTaggingAPI(ctrl *gomock.Controller) *MockResourceGroupsTaggingAPI { - mock := &MockResourceGroupsTaggingAPI{ctrl: ctrl} - mock.recorder = &MockResourceGroupsTaggingAPIMockRecorder{mock} - return mock -} - -// EXPECT returns an object that allows the caller to indicate expected use -func (m *MockResourceGroupsTaggingAPI) EXPECT() *MockResourceGroupsTaggingAPIMockRecorder { - return m.recorder -} - -// TagResources mocks base method -func (m *MockResourceGroupsTaggingAPI) TagResources(arg0 *resourcegroupstaggingapi.TagResourcesInput) (*resourcegroupstaggingapi.TagResourcesOutput, error) { - ret := m.ctrl.Call(m, "TagResources", arg0) - ret0, _ := ret[0].(*resourcegroupstaggingapi.TagResourcesOutput) - ret1, _ := ret[1].(error) - return ret0, ret1 -} - -// TagResources indicates an expected call of TagResources -func (mr *MockResourceGroupsTaggingAPIMockRecorder) TagResources(arg0 interface{}) *gomock.Call { - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "TagResources", reflect.TypeOf((*MockResourceGroupsTaggingAPI)(nil).TagResources), arg0) -}