code: def find_servers(self, tags, running=True):
          
          log.debug("Finding instances with tags: %s" % tags)
          search_opts = {}
          if running:
              search_opts['status'] = 'ACTIVE'
          all_servers = self.nova.servers.list(search_opts=search_opts)
          servers = []
          for s in all_servers:
              md = s.metadata
              mismatches = [k for k, v in tags.items() if v != md.get(k)]
              if mismatches:
                  continue
              servers.append(server_to_dict(s))
          return servers
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.