Revision 43f798ab kamaki/clients/pithos/__init__.py

b/kamaki/clients/pithos/__init__.py
66 66
    :returns: (str) a range string cut-off for the start-end range
67 67
        an empty response means this window is out of range
68 68
    """
69
    assert start >= 0, '_range_up was called with start < 0'
70
    assert end >= start, '_range_up was called with end < start'
71
    assert end <= max_value, '_range_up was called with max_value < end'
69
    assert start >= 0, '_range_up called w. start(%s) < 0' % start
70
    assert end >= start, '_range_up called w. end(%s) < start(%s)' % (
71
        end, start)
72
    assert end <= max_value, '_range_up called w. max_value(%s) < end(%s)' % (
73
        max_value, end)
72 74
    if not a_range:
73 75
        return '%s-%s' % (start, end)
74 76
    selected = []
......
729 731
            self._cb_next(len(blockids) - len(unsaved))
730 732
            if unsaved:
731 733
                key = unsaved[0]
732
                self._watch_thread_limit(flying.values())
733
                self._thread2file(
734
                    flying, blockid_dict, local_file, offset,
735
                    **restargs)
736
                end = total_size - 1 if (
737
                    key + blocksize > total_size) else key + blocksize - 1
738
                data_range = _range_up(key, end, total_size, filerange)
739
                if not data_range:
740
                    self._cb_next()
741
                    continue
742
                restargs['async_headers'] = {'Range': 'bytes=%s' % data_range}
743
                flying[key] = self._get_block_async(obj, **restargs)
744
                blockid_dict[key] = unsaved
734
                if key:
735
                    self._watch_thread_limit(flying.values())
736
                    self._thread2file(
737
                        flying, blockid_dict, local_file, offset,
738
                        **restargs)
739
                    end = total_size - 1 if (
740
                        key + blocksize > total_size) else key + blocksize - 1
741
                    data_range = _range_up(key, end, total_size, filerange)
742
                    if not data_range:
743
                        self._cb_next()
744
                        continue
745
                    restargs[
746
                        'async_headers'] = {'Range': 'bytes=%s' % data_range}
747
                    flying[key] = self._get_block_async(obj, **restargs)
748
                    blockid_dict[key] = unsaved
745 749

  
746 750
        for thread in flying.values():
747 751
            thread.join()

Also available in: Unified diff