def execute(self):
        """ Main entry point to starting a scenario.

            It calls .match() to compute the intial set of items,
            then goes through all the filters in sequence,
            and finally executes all the actions on all remaining items.
        """
        initial_set = self.match()
        self.logger.debug("Initial set: %r", initial_set)
        self.logger.info("Initial set length: %d", len(initial_set))
        if initial_set:
            filtered_set = self.filter(initial_set)
            self.logger.debug("Filtered set: %r", filtered_set)
            self.logger.info("Filtered set length: %d", len(filtered_set))
            if not filtered_set:
                return True
            ret = self.act(filtered_set)
            if not ret:
                return False
        else:
            self.metric_collector.add_filtered_to_empty_set_metric()
        self.logger.debug("Done")
        return True
 Main entry point to starting a scenario.

            It calls .match() to compute the intial set of items,
            then goes through all the filters in sequence,
            and finally executes all the actions on all remaining items.
        
powerfulseal/policy/action_nodes_pods.py