def _run_if_branch(self, data, recursive_dry_run=False, branch_run=False): result = IfResult(data.condition, lineno=data.lineno, source=data.source, type=data.type) error = None with StatusReporter(self._context, result, self._run): if data.error and self._run: raise DataError(data.error) run = self._should_run_branch(data.condition, branch_run, recursive_dry_run) runner = BodyRunner(self._context, run=run, templated=self._templated) try: if not recursive_dry_run: runner.run(data.body) except ExecutionStatus as err: error = err if run: branch_run = True else: result.branch_status = result.NOT_RUN if data.orelse: self._run_if_branch(data.orelse, recursive_dry_run, branch_run) if error: raise error
def _run_if_branch(self, data, recursive_dry_run=False, branch_run=False): result = IfResult(data.condition, lineno=data.lineno, source=data.source, type=data.type) with StatusReporter(self._context, result) as reporter: if data.error: raise DataError(data.error) if self._should_run_branch(data.condition, branch_run, recursive_dry_run): runner = StepRunner(self._context, self._templated) runner.run_steps(data.body) branch_run = True else: result.branch_status = 'NOT_RUN' if data.orelse: self._run_if_branch(data.orelse, recursive_dry_run, branch_run)