Revision 07867f70
b/snf-pithos-backend/pithos/backends/lib/sqlalchemy/node.py | ||
---|---|---|
631 | 631 |
c = c.where(self.versions.c.mtime < before) |
632 | 632 |
s = s.where(and_(v.c.serial.in_(c), |
633 | 633 |
v.c.cluster == cluster)) |
634 |
s = s.order_by(v.c.node) |
|
634 | 635 |
r = self.conn.execute(s) |
635 | 636 |
rproxy = r.fetchall() |
636 | 637 |
r.close() |
b/snf-pithos-backend/pithos/backends/modular.py | ||
---|---|---|
785 | 785 |
if delimiter: |
786 | 786 |
prefix = src_name + delimiter if not src_name.endswith(delimiter) else src_name |
787 | 787 |
src_names = self._list_objects_no_limit(user, src_account, src_container, prefix, delimiter=None, virtual=True, domain=None, keys=[], shared=False, until=None, size_range=None, all_props=True, public=False) |
788 |
src_names.sort(key=lambda x: x[2]) # order by nodes |
|
788 | 789 |
paths = [elem[0] for elem in src_names] |
789 | 790 |
nodes = [elem[2] for elem in src_names] |
790 | 791 |
# TODO: Will do another fetch of the properties in duplicate version... |
... | ... | |
794 | 795 |
src_version_id = prop[self.SERIAL] |
795 | 796 |
hash = prop[self.HASH] |
796 | 797 |
vtype = prop[self.TYPE] |
798 |
size = prop[self.SIZE] |
|
797 | 799 |
dest_prefix = dest_name + delimiter if not dest_name.endswith(delimiter) else dest_name |
798 | 800 |
vdest_name = path.replace(prefix, dest_prefix, 1) |
799 | 801 |
dest_version_ids.append(self._update_object_hash(user, dest_account, dest_container, vdest_name, size, vtype, hash, None, dest_domain, dest_meta, replace_meta, permissions, src_node=node, src_version_id=src_version_id, is_copy=is_copy)) |
b/snf-pithos-tools/pithos/tools/test.py | ||
---|---|---|
1432 | 1432 |
|
1433 | 1433 |
def test_copy_dir(self): |
1434 | 1434 |
self.client.create_folder(self.containers[0], 'dir') |
1435 |
objects = ('object1', 'subdir/object2', 'dirs')
|
|
1436 |
for name in objects[:-1]:
|
|
1437 |
self.upload_random_data(self.containers[0], 'dir/%s' % name) |
|
1435 |
objects = ('object1.jpg', 'subdir/object2.pdf', 'dirs')
|
|
1436 |
for name, i in zip(objects[:-1], range(1, len(objects[:-1])+1)):
|
|
1437 |
self.upload_random_data(self.containers[0], 'dir/%s' % name, length=i*1024)
|
|
1438 | 1438 |
self.upload_random_data(self.containers[0], 'dirs') |
1439 | 1439 |
|
1440 | 1440 |
self.client.copy_object(self.containers[0], 'dir', self.containers[1], 'dir-backup', delimiter='/') |
... | ... | |
1485 | 1485 |
|
1486 | 1486 |
def test_move_dir(self): |
1487 | 1487 |
self.client.create_folder(self.containers[0], 'dir') |
1488 |
objects = ('object1', 'subdir/object2', 'dirs')
|
|
1488 |
objects = ('object1.jpg', 'subdir/object2.pdf', 'dirs')
|
|
1489 | 1489 |
meta = {} |
1490 |
for name in objects[:-1]:
|
|
1491 |
self.upload_random_data(self.containers[0], 'dir/%s' % name) |
|
1490 |
for name, i in zip(objects[:-1], range(1, len(objects[:-1])+1)):
|
|
1491 |
self.upload_random_data(self.containers[0], 'dir/%s' % name, length=i*1024)
|
|
1492 | 1492 |
meta[name] = self.client.retrieve_object_metadata(self.containers[0], 'dir/%s' % name) |
1493 | 1493 |
self.upload_random_data(self.containers[0], 'dirs') |
1494 | 1494 |
|
... | ... | |
1799 | 1799 |
|
1800 | 1800 |
def test_delete_dir(self): |
1801 | 1801 |
self.client.create_folder(self.containers[0], 'dir') |
1802 |
objects = ('object1', 'subdir/object2', 'dirs')
|
|
1802 |
objects = ('object1.jpg', 'subdir/object2.pdf', 'dirs')
|
|
1803 | 1803 |
for name in objects[:-1]: |
1804 | 1804 |
self.upload_random_data(self.containers[0], 'dir/%s' % name) |
1805 | 1805 |
self.upload_random_data(self.containers[0], 'dirs') |
Also available in: Unified diff