github.com/solo-io/unik@v0.0.0-20190717152701-a58d3e8e33b7/pkg/providers/aws/list_images.go (about) 1 package aws 2 3 import ( 4 "github.com/sirupsen/logrus" 5 "github.com/aws/aws-sdk-go/aws" 6 "github.com/aws/aws-sdk-go/service/ec2" 7 "github.com/emc-advanced-dev/pkg/errors" 8 "github.com/solo-io/unik/pkg/types" 9 ) 10 11 const UNIK_IMAGE_ID = "UNIK_IMAGE_ID" 12 13 func (p *AwsProvider) ListImages() ([]*types.Image, error) { 14 if len(p.state.GetImages()) < 1 { 15 return []*types.Image{}, nil 16 } 17 imageIds := []*string{} 18 for imageId := range p.state.GetImages() { 19 imageIds = append(imageIds, aws.String(imageId)) 20 } 21 param := &ec2.DescribeImagesInput{ 22 ImageIds: imageIds, 23 } 24 output, err := p.newEC2().DescribeImages(param) 25 if err != nil { 26 return nil, errors.New("running ec2 describe images ", err) 27 } 28 images := []*types.Image{} 29 for _, ec2Image := range output.Images { 30 imageId := *ec2Image.ImageId 31 image, ok := p.state.GetImages()[imageId] 32 if !ok { 33 logrus.WithFields(logrus.Fields{"ec2Image": ec2Image}).Errorf("found an image that unik has no record of") 34 continue 35 } 36 images = append(images, image) 37 } 38 return images, nil 39 }