Beispiel #1
0
func instances(e *ec2.EC2, args ...string) {
	filter := ec2.NewFilter()
	for _, v := range args {
		sl := strings.SplitN(v, "=", 2)
		if len(sl) != 2 {
			fmt.Fprintf(os.Stderr, "instances: bad key=value pair \"%s\", skipping\n", v)
			continue
		}
		filter.Add(sl[0], sl[1])
	}

	resp, err := e.Instances(nil, filter)
	if err != nil {
		fmt.Fprintf(os.Stderr, "instances: %s\n", err)
		os.Exit(1)
	}

	for _, r := range resp.Reservations {
		fmt.Println("reservation:", r.ReservationId)
		for _, i := range r.Instances {
			fmt.Printf("%s\t%s\t%s\t%s\n", i.InstanceId, i.State.Name, i.DNSName, i.ImageId)
		}
	}
}