def execute(self):
        """
            Main entry point to starting a scenario.
        """
        steps = self.schema.get("steps", [])
        self.logger.info("Starting scenario '%s' (%d steps)", self.name, len(steps))
        for step in steps:
            for action_name, action_method in self.action_mapping.items():
                if action_name in step:
                    step_action = step.get(action_name)
                    ret = self.retry(step_action, action_method)
                    if not ret:
                        self.logger.warning("Step returned failure %s. Finishing scenario early", step)
                        self.metric_collector.add_scenario_counter_metric(self.name, False)
                        self.cleanup()
                        return False
        self.logger.info("Scenario finished")
        self.metric_collector.add_scenario_counter_metric(self.name, True)
        self.cleanup()
        return True

            Main entry point to starting a scenario.
        
powerfulseal/policy/scenario.py