def _execute_sbatch(self):
commands = self.campaign.process.get('<STR_LIT>', {})<EOL>sbatch = find_executable(commands.get('<STR_LIT>', '<STR_LIT>'))<EOL>sbatch_command = [sbatch, '<STR_LIT>', self.sbatch_filename]<EOL>try:<EOL><INDENT>self.logger.debug(<EOL>'<STR_LIT>',<EOL>'<STR_LIT:U+0020>'.join(map(six.moves.shlex_quote, sbatch_command)),<EOL>)<EOL>sbatch_out = subprocess.check_output(<EOL>sbatch_command, universal_newlines=True<EOL>)<EOL><DEDENT>except subprocess.CalledProcessError as cpe:<EOL><INDENT>self.logger.error(<EOL>"<STR_LIT>" "<STR_LIT>",<EOL>cpe.returncode,<EOL>self.tag,<EOL>)<EOL>sbatch_out = cpe.output<EOL><DEDENT>jobidre = re.compile(r'<STR_LIT>')<EOL>jobid = None<EOL>for line in sbatch_out.splitlines():<EOL><INDENT>res = jobidre.match(line)<EOL>if res is not None:<EOL><INDENT>jobid = res.group(<NUM_LIT:1>)<EOL>self.logger.info("<STR_LIT>", jobid, self.tag)<EOL><DEDENT>elif line:<EOL><INDENT>self.logger.warning("<STR_LIT>", line)<EOL><DEDENT><DEDENT>if jobid is None:<EOL><INDENT>self.logger.error("<STR_LIT>", self.tag)<EOL>return -<NUM_LIT:1><EOL><DEDENT>else:<EOL><INDENT>return int(jobid)<EOL><DEDENT>
Schedule the sbatch file using the sbatch command
        :returns the slurm job id