Esempio n. 1
0
func (c *Client) instances(params *ec2.DescribeInstancesInput) (instances []*ec2.Instance, err error) {
	if params == nil {
		params = &ec2.DescribeInstancesInput{}
	}
	// Update MaxResults param if no filtering options were set.
	if params.Filters == nil && params.InstanceIds == nil && c.MaxResults != 0 {
		params.MaxResults = aws.Int64(c.MaxResults)
	}
	var page int
	return instances, c.EC2.DescribeInstancesPages(params, func(resp *ec2.DescribeInstancesOutput, _ bool) bool {
		respInstances := c.collectInstances(resp.Reservations)
		page++
		c.Log.Debug("received %d instances (page=%d)", len(respInstances), page)
		instances = append(instances, respInstances...)
		return true
	})
}