~didrocks/ubuntuone-client/dont-suffer-zg-crash

« back to all changes in this revision

Viewing changes to ubuntuone/syncdaemon/sync.py

  • Committer: Bazaar Package Importer
  • Author(s): Rodney Dawes
  • Date: 2011-01-25 16:42:52 UTC
  • mto: This revision was merged to the branch mainline in revision 64.
  • Revision ID: james.westby@ubuntu.com-20110125164252-rl1pybasx1nsqgoy
Tags: upstream-1.5.3
ImportĀ upstreamĀ versionĀ 1.5.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
453
453
        """Get the contents for the file."""
454
454
        self.key.set(server_hash=hash)
455
455
        self.key.sync()
456
 
        self.m.fs.create_partial(node_id=self.key['node_id'],
457
 
                                 share_id=self.key['share_id'])
458
 
        self.m.action_q.download(
459
 
            share_id=self.key['share_id'], node_id=self.key['node_id'],
460
 
            server_hash=hash,
461
 
            fileobj_factory=lambda: self.m.fs.get_partial_for_writing(
462
 
                node_id=self.key['node_id'],
463
 
                share_id=self.key['share_id'])
464
 
            )
 
456
        share_id = self.key['share_id']
 
457
        node_id = self.key['node_id']
 
458
        path = self.key['path']
 
459
        self.m.fs.create_partial(node_id=node_id, share_id=share_id)
 
460
        factory = lambda: self.m.fs.get_partial_for_writing(node_id=node_id,
 
461
                                                            share_id=share_id)
 
462
        self.m.action_q.download(share_id=share_id, node_id=node_id,
 
463
                                 server_hash=hash, path=path,
 
464
                                 fileobj_factory=factory)
465
465
 
466
466
    def reget_file(self, event, params, hash):
467
467
        """cancel and reget this download."""
485
485
        node_id = self.key['node_id']
486
486
 
487
487
        self.m.action_q.move(share_id, node_id, old_parent_id,
488
 
                             new_parent_id, new_name)
 
488
                             new_parent_id, new_name, path_from, path_to)
489
489
        self.m.fs.add_to_move_limbo(share_id, node_id, old_parent_id,
490
490
                                    new_parent_id, new_name)
491
491
        self.key.moved(share_id, path_to)
527
527
        self.key.sync()
528
528
        name = os.path.basename(path)
529
529
        marker = MDMarker(self.key.get_mdid())
530
 
        self.m.action_q.make_file(share_id, parent_id, name, marker)
 
530
        self.m.action_q.make_file(share_id, parent_id, name, marker, path)
531
531
 
532
532
    def release_marker_ok(self, event, parms, new_id, marker):
533
533
        """Release ok the received marker in AQ's DeferredMap."""
554
554
        name = os.path.basename(path)
555
555
        mdid = self.key.get_mdid()
556
556
        marker = MDMarker(mdid)
557
 
        self.m.action_q.make_dir(share_id, parent_id, name, marker)
 
557
        self.m.action_q.make_dir(share_id, parent_id, name, marker, path)
558
558
        self.m.lr.scan_dir(mdid, path)
559
559
 
560
560
    def new_local_dir_created(self, event, parms, new_id, marker):
572
572
 
573
573
    def reput_file_from_local(self, event, params, hash):
574
574
        """Re put the file from its local state."""
 
575
        self.m.action_q.cancel_upload(share_id=self.key['share_id'],
 
576
                            node_id=self.key['node_id'])
 
577
 
575
578
        local_hash = self.key['local_hash']
576
579
        previous_hash = self.key['server_hash']
577
580
        crc32 = self.key['crc32']
578
581
        size = self.key['size']
579
582
        share_id = self.key['share_id']
580
583
        node_id = self.key['node_id']
 
584
        path = self.key['path']
581
585
 
582
586
        self.m.action_q.upload(share_id, node_id, previous_hash, local_hash,
583
 
                               crc32, size, self.key.open_file)
 
587
                               crc32, size, path, self.key.open_file)
584
588
 
585
589
    def put_file(self, event, params, hash, crc32, size, stat):
586
590
        """Upload the file to the server."""
587
591
        previous_hash = self.key['server_hash']
 
592
        path = self.key['path']
588
593
        self.key.set(local_hash=hash, stat=stat, crc32=crc32, size=size)
589
594
        self.key.sync()
590
595
 
591
596
        self.m.action_q.upload(share_id=self.key['share_id'],
592
597
            node_id=self.key['node_id'], previous_hash=previous_hash,
593
 
            hash=hash, crc32=crc32, size=size,
 
598
            hash=hash, crc32=crc32, size=size, path=path,
594
599
            fileobj_factory=self.key.open_file)
595
600
 
596
601
    def converges_to_server(self, event, params, hash, crc32, size, stat):
617
622
                            node_id=self.key['node_id'])
618
623
        previous_hash = self.key['server_hash']
619
624
 
 
625
        path = self.key['path']
620
626
        self.key.set(local_hash=hash, stat=stat, crc32=crc32, size=size)
621
627
        self.key.sync()
622
628
        self.m.action_q.upload(share_id=self.key['share_id'],
623
629
            node_id=self.key['node_id'], previous_hash=previous_hash,
624
 
            hash=hash, crc32=crc32, size=size,
 
630
            hash=hash, crc32=crc32, size=size, path=path,
625
631
            fileobj_factory=self.key.open_file)
626
632
 
627
633
    def server_file_now_matches(self, event, params, hash):
679
685
        """local file was deleted."""
680
686
        self.m.action_q.unlink(self.key['share_id'],
681
687
                               self.key['parent_id'],
682
 
                               self.key['node_id'])
 
688
                               self.key['node_id'], path)
683
689
        self.key.delete_to_trash()
684
690
 
685
691
    def deleted_dir_while_downloading(self, event, params, path):
689
695
        self.key.remove_partial()
690
696
        self.m.action_q.unlink(self.key['share_id'],
691
697
                               self.key['parent_id'],
692
 
                               self.key['node_id'])
 
698
                               self.key['node_id'], path)
693
699
        self.key.delete_to_trash()
694
700
 
695
701
    def cancel_download_and_delete_on_server(self, event, params, path):
699
705
        self.key.remove_partial()
700
706
        self.m.action_q.unlink(self.key['share_id'],
701
707
                               self.key['parent_id'],
702
 
                               self.key['node_id'])
 
708
                               self.key['node_id'], path)
703
709
        self.key.delete_to_trash()
704
710
 
705
711
    def cancel_upload_and_delete_on_server(self, event, params, path):
708
714
                                      node_id=self.key['node_id'])
709
715
        self.m.action_q.unlink(self.key['share_id'],
710
716
                               self.key['parent_id'],
711
 
                               self.key['node_id'])
 
717
                               self.key['node_id'], path)
712
718
        self.key.delete_to_trash()
713
719
 
714
720
    def remove_trash(self, event, params, share_id, node_id):