docs: def __GetInstances(self, group_name = None, state_filter=None):
      """
      Get all the instances in a group, filtered by state.
  
      @param group_name: the name of the group
      @param state_filter: the state that the instance should be in
        (e.g. "running"), or None for all states
      """
      all_instances = self.ec2.get_all_instances()
      instances = []
      for res in all_instances:
        for group in res.groups:
          if group_name and group.name != group_name:
            continue
          for instance in res.instances:
            if state_filter == None or instance.state == state_filter:
              instances.append(instance)
      return instances