def match(self):
        """ Makes a union of all the nodes matching any of the policy criteria.
        """
        self.inventory.sync()
        selected_nodes = set()
        criteria = self.schema.get("matches", [])
        for node in self.inventory.find_nodes():
            for criterion in criteria:
                match = criterion.get("property")
                if self.match_property(node, match):
                    self.logger.debug("Matching %r", node)
                    selected_nodes.add(node)
        if len(selected_nodes) == 0:
            self.metric_collector.add_matched_to_empty_set_metric(NODE_SOURCE)
        return list(selected_nodes)
 Makes a union of all the nodes matching any of the policy criteria.
        
powerfulseal/policy/action_nodes.py