Beispiel #1
0
func (c *Client) instanceStatuses(params *ec2.DescribeInstanceStatusInput) (statuses []*ec2.InstanceStatus, err error) {
	if params == nil {
		params = &ec2.DescribeInstanceStatusInput{}
	}
	// 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 statuses, c.EC2.DescribeInstanceStatusPages(params, func(resp *ec2.DescribeInstanceStatusOutput, _ bool) bool {
		page++
		c.Log.Debug("received %d instance statuses (page=%d)", len(resp.InstanceStatuses), page)
		statuses = append(statuses, resp.InstanceStatuses...)
		return true
	})
}