'Automatically make and combine multiple calls to list_parts.
Call list_parts as necessary, combining the results in case multiple
calls were required to get data on all available parts.'

def list_all_parts(self, upload_id):

    result = self.layer1.list_parts(self.name, upload_id)
    marker = result['Marker']
    while marker:
        additional_result = self.layer1.list_parts(self.name, upload_id, marker=marker)
        result['Parts'].extend(additional_result['Parts'])
        marker = additional_result['Marker']
    result['Marker'] = None
    return result
