docs: def do_printInstances(self,args):
          """Print the list of instances in this auto scaling group. printInstances -h for detailed help"""
          parser = CommandArgumentParser("printInstances")
          parser.add_argument(dest='filters',nargs='*',default=["*"],help='Filter instances');
          parser.add_argument('-a','--addresses',action='store_true',dest='addresses',help='list all ip addresses');
          parser.add_argument('-t','--tags',action='store_true',dest='tags',help='list all instance tags');
          parser.add_argument('-d','--allDetails',action='store_true',dest='details',help='print all instance details');
          parser.add_argument('-r','--refresh',action='store_true',dest='refresh',help='refresh');
          parser.add_argument('-z','--zones',dest='availabilityZones',nargs='+',help='Only include specified availability zones');
          args = vars(parser.parse_args(args))
          
          client = AwsConnectionFactory.getEc2Client()
  
          filters = args['filters']
          addresses = args['addresses']
          tags = args['tags']
          details = args['details']
          availabilityZones = args['availabilityZones']
          needDescription = addresses or tags or details
  
          if args['refresh']:
              self.scalingGroupDescription = self.client.describe_auto_scaling_groups(AutoScalingGroupNames=[self.scalingGroup])
          
          # print "AutoScaling Group:{}".format(self.scalingGroup)
          print "=== Instances ==="
          instances = self.scalingGroupDescription['AutoScalingGroups'][0]['Instances']
  
          instances = filter( lambda x: fnmatches(x['InstanceId'],filters),instances)
          if availabilityZones:
              instances = filter( lambda x: fnmatches(x['AvailabilityZone'],availabilityZones),instances)
          
          index = 0
          for instance in instances:
              instance['index'] = index
              print "* {0:3d} {1} {2} {3}".format(index,instance['HealthStatus'],instance['AvailabilityZone'],instance['InstanceId'])
              description = None
              if needDescription:
                  description = client.describe_instances(InstanceIds=[instance['InstanceId']])
              if addresses:
                  networkInterfaces = description['Reservations'][0]['Instances'][0]['NetworkInterfaces']
                  number = 0
                  print "      Network Interfaces:"
                  for interface in networkInterfaces:
                      print "         * {0:3d} {1}".format(number, interface['PrivateIpAddress'])
                      number +=1
              if tags:
                  tags = description['Reservations'][0]['Instances'][0]['Tags']
                  print "      Tags:"
                  for tag in tags:
                      print "        * {0} {1}".format(tag['Key'],tag['Value'])
              if details:
                  pprint(description)
                  
              index += 1