in pygenie/jobs/running.py [0:0]
def _update_stderr(self, **kwargs):
"""Get new stderr part and update cached stderr."""
stderr_part = ''
if self.__reload_stderr:
headers = {'Range': 'bytes={}-'.format(len(self._cached_stderr))} \
if self._cached_stderr else None
logger.debug('getting stderr (headers -> %s)', headers)
try:
stderr_part = self._adapter.get_stderr(
self._job_id,
headers=headers,
**kwargs
)
except GenieHTTPError as e:
# HACK: assumes we are getting this because
# stderr hasn't changed so we are exceeding
# total size. Would be more corrct to parse
# and check the Content-Range header from
# the response and potentially retry with
# a different range
if e.response is not None and e.response.status_code == 416:
stderr_part = ""
else:
raise
if self._cached_stderr is None:
self._cached_stderr = stderr_part
else:
self._cached_stderr += stderr_part
if self.is_done:
self.__reload_stderr = False
return stderr_part