code: def find_servers(self, tags, running=True):
          
          filters = dict([('tag:%s' % key, val) for key, val in tags.items()])
          if running:
              filters['instance-state-name'] = 'running'
  
          res = self.ec2.get_all_instances(filters=filters)
          instances = [server_to_dict(i) for r in res for i in r.instances]
          log.debug('instances: %s' % instances)
          return instances
docs: Returns any servers in the region that have tags that match the
          key-value pairs in :attr:`tags`.
  
          :param Mapping tags:  A mapping object in which the keys are the tag
              names and the values are the tag values.
  
          :param bool running:  A flag to limit server list to instances that are
              actually *running*.
  
          :rtype:  :class:`list` of :class:`dict` objects.  Each :class:`dict`
              describes a single server instance.