github.com/awslabs/fargate@v0.2.3/ec2/eni.go (about) 1 package ec2 2 3 import ( 4 "github.com/aws/aws-sdk-go/aws" 5 awsec2 "github.com/aws/aws-sdk-go/service/ec2" 6 "github.com/jpignata/fargate/console" 7 ) 8 9 type Eni struct { 10 PublicIpAddress string 11 EniId string 12 SecurityGroupIds []string 13 } 14 15 func (ec2 *EC2) DescribeNetworkInterfaces(eniIds []string) map[string]Eni { 16 enis := make(map[string]Eni) 17 18 resp, err := ec2.svc.DescribeNetworkInterfaces( 19 &awsec2.DescribeNetworkInterfacesInput{ 20 NetworkInterfaceIds: aws.StringSlice(eniIds), 21 }, 22 ) 23 24 if err != nil { 25 console.ErrorExit(err, "Could not describe network interfaces") 26 } 27 28 for _, e := range resp.NetworkInterfaces { 29 var securityGroupIds []*string 30 31 for _, group := range e.Groups { 32 securityGroupIds = append(securityGroupIds, group.GroupId) 33 } 34 35 if e.Association != nil { 36 eni := Eni{ 37 EniId: aws.StringValue(e.NetworkInterfaceId), 38 PublicIpAddress: aws.StringValue(e.Association.PublicIp), 39 SecurityGroupIds: aws.StringValueSlice(securityGroupIds), 40 } 41 42 enis[eni.EniId] = eni 43 } 44 } 45 46 return enis 47 }