Revision ad9ada51 snf-pithos-backend/pithos/backends/modular.py

b/snf-pithos-backend/pithos/backends/modular.py
863 863
        if src_version_id is None:
864 864
            src_version_id = pre_version_id
865 865
        self._put_metadata_duplicate(
866
            src_version_id, dest_version_id, domain, meta, replace_meta)
866
            src_version_id, dest_version_id, domain, node, meta, replace_meta)
867 867

  
868 868
        del_size = self._apply_versioning(account, container, pre_version_id,
869 869
                                          update_statistics_ancestors_depth=1)
......
1277 1277
        dest_version_id, mtime = self.node.version_create(
1278 1278
            node, hash, size, type, src_version_id, user, uuid, checksum,
1279 1279
            cluster, update_statistics_ancestors_depth)
1280

  
1281
        self.node.attribute_unset_is_latest(node, dest_version_id)
1282

  
1280 1283
        return pre_version_id, dest_version_id
1281 1284

  
1282
    def _put_metadata_duplicate(self, src_version_id, dest_version_id, domain, meta, replace=False):
1285
    def _put_metadata_duplicate(self, src_version_id, dest_version_id, domain,
1286
                                node, meta, replace=False):
1283 1287
        if src_version_id is not None:
1284 1288
            self.node.attribute_copy(src_version_id, dest_version_id)
1285 1289
        if not replace:
1286 1290
            self.node.attribute_del(dest_version_id, domain, (
1287 1291
                k for k, v in meta.iteritems() if v == ''))
1288
            self.node.attribute_set(dest_version_id, domain, (
1292
            self.node.attribute_set(dest_version_id, domain, node, (
1289 1293
                (k, v) for k, v in meta.iteritems() if v != ''))
1290 1294
        else:
1291 1295
            self.node.attribute_del(dest_version_id, domain)
1292
            self.node.attribute_set(dest_version_id, domain, ((
1296
            self.node.attribute_set(dest_version_id, domain, node, ((
1293 1297
                k, v) for k, v in meta.iteritems()))
1294 1298

  
1295 1299
    def _put_metadata(self, user, node, domain, meta, replace=False,
......
1300 1304
            user, node,
1301 1305
            update_statistics_ancestors_depth=update_statistics_ancestors_depth)
1302 1306
        self._put_metadata_duplicate(
1303
            src_version_id, dest_version_id, domain, meta, replace)
1307
            src_version_id, dest_version_id, domain, node, meta, replace)
1304 1308
        return src_version_id, dest_version_id
1305 1309

  
1306 1310
    def _list_limits(self, listing, marker, limit):

Also available in: Unified diff