| Index: chrome/common/extensions/docs/server2/rietveld_patcher.py
|
| diff --git a/chrome/common/extensions/docs/server2/rietveld_patcher.py b/chrome/common/extensions/docs/server2/rietveld_patcher.py
|
| index dd085fca4d343cfdcba341d4dd079e332cbeddf8..941fda4b5a62d5e9ae7f0fc9c0cc932eace52b83 100644
|
| --- a/chrome/common/extensions/docs/server2/rietveld_patcher.py
|
| +++ b/chrome/common/extensions/docs/server2/rietveld_patcher.py
|
| @@ -25,51 +25,6 @@ class RietveldPatcherError(Exception):
|
| self.message = message
|
|
|
|
|
| -def _GetAsyncFetchCallback(issue, patchset, files, fetcher):
|
| - tarball = fetcher.FetchAsync('tarball/%s/%s' % (issue, patchset))
|
| -
|
| - def resolve():
|
| - tarball_result = tarball.Get()
|
| - if tarball_result.status_code != 200:
|
| - raise RietveldPatcherError(
|
| - 'Failed to download tarball for issue %s patchset %s. Status: %s' %
|
| - (issue, patchset, tarball_result.status_code))
|
| -
|
| - try:
|
| - tar = tarfile.open(fileobj=StringIO(tarball_result.content))
|
| - except tarfile.TarError as e:
|
| - raise RietveldPatcherError(
|
| - 'Error loading tarball for issue %s patchset %s.' % (issue, patchset))
|
| -
|
| - value = {}
|
| - for path in files:
|
| - tar_path = 'b/%s' % path
|
| -
|
| - patched_file = None
|
| - try:
|
| - patched_file = tar.extractfile(tar_path)
|
| - data = patched_file.read()
|
| - except tarfile.TarError as e:
|
| - # Show appropriate error message in the unlikely case that the tarball
|
| - # is corrupted.
|
| - raise RietveldPatcherError(
|
| - 'Error extracting tarball for issue %s patchset %s file %s.' %
|
| - (issue, patchset, tar_path))
|
| - except KeyError as e:
|
| - raise FileNotFoundError(
|
| - 'File %s not found in the tarball for issue %s patchset %s' %
|
| - (tar_path, issue, patchset))
|
| - finally:
|
| - if patched_file:
|
| - patched_file.close()
|
| -
|
| - value[path] = data
|
| -
|
| - return value
|
| -
|
| - return resolve
|
| -
|
| -
|
| class RietveldPatcher(Patcher):
|
| ''' Class to fetch resources from a patchset in Rietveld.
|
| '''
|
| @@ -141,10 +96,47 @@ class RietveldPatcher(Patcher):
|
| def Apply(self, paths, file_system, version=None):
|
| if version is None:
|
| version = self.GetVersion()
|
| - return Future(callback=_GetAsyncFetchCallback(self._issue,
|
| - version,
|
| - paths,
|
| - self._fetcher))
|
| +
|
| + def apply_(tarball_result):
|
| + if tarball_result.status_code != 200:
|
| + raise RietveldPatcherError(
|
| + 'Failed to download tarball for issue %s patchset %s. Status: %s' %
|
| + (self._issue, version, tarball_result.status_code))
|
| +
|
| + try:
|
| + tar = tarfile.open(fileobj=StringIO(tarball_result.content))
|
| + except tarfile.TarError as e:
|
| + raise RietveldPatcherError(
|
| + 'Error loading tarball for issue %s patchset %s.' % (self._issue,
|
| + version))
|
| +
|
| + value = {}
|
| + for path in paths:
|
| + tar_path = 'b/%s' % path
|
| +
|
| + patched_file = None
|
| + try:
|
| + patched_file = tar.extractfile(tar_path)
|
| + data = patched_file.read()
|
| + except tarfile.TarError as e:
|
| + # Show appropriate error message in the unlikely case that the tarball
|
| + # is corrupted.
|
| + raise RietveldPatcherError(
|
| + 'Error extracting tarball for issue %s patchset %s file %s.' %
|
| + (self._issue, version, tar_path))
|
| + except KeyError as e:
|
| + raise FileNotFoundError(
|
| + 'File %s not found in the tarball for issue %s patchset %s' %
|
| + (tar_path, self._issue, version))
|
| + finally:
|
| + if patched_file:
|
| + patched_file.close()
|
| +
|
| + value[path] = data
|
| +
|
| + return value
|
| + return self._fetcher.FetchAsync('tarball/%s/%s' % (self._issue,
|
| + version)).Then(apply_)
|
|
|
| def GetIdentity(self):
|
| return self._issue
|
|
|