Merge lp:~verterok/ubuntuone-client/fix-664019 into lp:ubuntuone-client

Proposed by Guillermo Gonzalez
Status: Merged
Approved by: Facundo Batista
Approved revision: 735
Merged at revision: 740
Proposed branch: lp:~verterok/ubuntuone-client/fix-664019
Merge into: lp:ubuntuone-client
Diff against target: 107 lines (+39/-32)
2 files modified
tests/syncdaemon/test_vm.py (+35/-31)
ubuntuone/syncdaemon/volume_manager.py (+4/-1)
To merge this branch: bzr merge lp:~verterok/ubuntuone-client/fix-664019
Reviewer Review Type Date Requested Status
Facundo Batista (community) Approve
Lucio Torre (community) Approve
Review via email: mp+38959@code.launchpad.net

Commit message

Trigger a rescan_from_scratch on SV_VOLUME_CREATED in order to get the contents (instead of just the volume).

Description of the change

correclty handle SV_VOLUME_CREATED event and trigger a rescan_from_scratch on the volume in order to get the contents (instead of just the volume)

To post a comment you must log in.
Revision history for this message
Lucio Torre (lucio.torre) wrote :

good one

review: Approve
Revision history for this message
Facundo Batista (facundo) wrote :

Nice!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'tests/syncdaemon/test_vm.py'
--- tests/syncdaemon/test_vm.py 2010-09-27 21:18:52 +0000
+++ tests/syncdaemon/test_vm.py 2010-10-20 17:51:09 +0000
@@ -1759,12 +1759,12 @@
1759 self.assertTrue(called)1759 self.assertTrue(called)
1760 self.assertTrue(self.handler.check_warning("missing volume id"))1760 self.assertTrue(self.handler.check_warning("missing volume id"))
17611761
1762 @defer.inlineCallbacks
1762 def _test_handle_SV_VOLUME_CREATED(self, auto_subscribe):1763 def _test_handle_SV_VOLUME_CREATED(self, auto_subscribe):
1763 """Test for handle_SV_VOLUME_CREATED."""1764 """Test for handle_SV_VOLUME_CREATED."""
1764 user_conf = config.get_user_config()1765 user_conf = config.get_user_config()
1765 user_conf.set_udf_autosubscribe(auto_subscribe)1766 user_conf.set_udf_autosubscribe(auto_subscribe)
1766 # start the test1767 # start the test
1767 d = defer.Deferred()
1768 udf_id = uuid.uuid4()1768 udf_id = uuid.uuid4()
1769 udf_volume = volumes.UDFVolume(udf_id, 'udf_uuid', None, 10, u'~/ñoño')1769 udf_volume = volumes.UDFVolume(udf_id, 'udf_uuid', None, 10, u'~/ñoño')
1770 share_id = uuid.uuid4()1770 share_id = uuid.uuid4()
@@ -1774,39 +1774,43 @@
1774 True, 'View')1774 True, 'View')
1775 # initialize the the root1775 # initialize the the root
1776 self.vm._got_root('root_uuid')1776 self.vm._got_root('root_uuid')
1777
1778 d = defer.Deferred()
1777 self._listen_for('VM_UDF_CREATED', d.callback)1779 self._listen_for('VM_UDF_CREATED', d.callback)
1778 def check_udf(info):1780 rescan_cb = defer.Deferred()
1779 """The udf creation callback"""1781 self.patch(self.main.action_q, 'rescan_from_scratch', rescan_cb.callback)
1780 udf = info[0]1782
1781 self.assertEquals(udf.volume_id, str(udf_id))
1782 self.assertIn(str(udf_id), self.vm.udfs)
1783 if auto_subscribe:
1784 self.assertTrue(udf.subscribed)
1785 self.assertTrue(os.path.exists(udf.path))
1786 else:
1787 self.assertFalse(udf.subscribed)
1788 self.assertFalse(os.path.exists(udf.path))
1789 # subscribe a new listener
1790 d = defer.Deferred()
1791 self._listen_for('VM_SHARE_CREATED', d.callback)
1792 # fire SV_VOLUME_CREATED with a share
1793 with environ('HOME', self.home_dir):
1794 self.vm.handle_SV_VOLUME_CREATED(share_volume)
1795 return d
1796
1797 def check_share(info):
1798 """The share creation callback."""
1799 share_id = info[0]
1800 share = self.vm.get_volume(share_id)
1801 self.assertEquals(share.volume_id, str(share_id))
1802 self.assertIn(str(share_id), self.vm.shares)
1803
1804 d.addCallback(check_udf)
1805 d.addCallback(check_share)
1806 # use a custom home
1807 with environ('HOME', self.home_dir):1783 with environ('HOME', self.home_dir):
1808 self.vm.handle_SV_VOLUME_CREATED(udf_volume)1784 self.vm.handle_SV_VOLUME_CREATED(udf_volume)
1809 return d1785 info = yield d
1786 udf = info[0]
1787 self.assertEquals(udf.volume_id, str(udf_id))
1788 self.assertIn(str(udf_id), self.vm.udfs)
1789 if auto_subscribe:
1790 self.assertTrue(udf.subscribed)
1791 self.assertTrue(os.path.exists(udf.path))
1792 # check that rescan_from_scratch is called
1793 vol_id = yield rescan_cb
1794 self.assertEqual(vol_id, udf.volume_id)
1795 else:
1796 self.assertFalse(udf.subscribed)
1797 self.assertFalse(os.path.exists(udf.path))
1798 # subscribe a new listener
1799 d = defer.Deferred()
1800 self._listen_for('VM_SHARE_CREATED', d.callback)
1801 rescan_cb = defer.Deferred()
1802 self.patch(self.main.action_q, 'rescan_from_scratch', rescan_cb.callback)
1803 # fire SV_VOLUME_CREATED with a share
1804 with environ('HOME', self.home_dir):
1805 self.vm.handle_SV_VOLUME_CREATED(share_volume)
1806 info = yield d
1807 share_id = info[0]
1808 share = self.vm.get_volume(share_id)
1809 self.assertEquals(share.volume_id, str(share_id))
1810 self.assertIn(str(share_id), self.vm.shares)
1811 # check that rescan_from_scratch is called
1812 vol_id = yield rescan_cb
1813 self.assertEqual(vol_id, share.volume_id)
18101814
1811 def test_handle_SV_VOLUME_CREATED_subscribe(self):1815 def test_handle_SV_VOLUME_CREATED_subscribe(self):
1812 """Test SV_VOLUME_CREATED with udf auto_subscribe """1816 """Test SV_VOLUME_CREATED with udf auto_subscribe """
18131817
=== modified file 'ubuntuone/syncdaemon/volume_manager.py'
--- ubuntuone/syncdaemon/volume_manager.py 2010-09-27 21:18:52 +0000
+++ ubuntuone/syncdaemon/volume_manager.py 2010-10-20 17:51:09 +0000
@@ -1235,7 +1235,10 @@
12351235
1236 def handle_SV_VOLUME_CREATED(self, volume):1236 def handle_SV_VOLUME_CREATED(self, volume):
1237 """Handle SV_VOLUME_CREATED event."""1237 """Handle SV_VOLUME_CREATED event."""
1238 self._handle_new_volume(volume)1238 vol = self._handle_new_volume(volume)
1239 if vol and vol.active:
1240 self.m.action_q.rescan_from_scratch(vol.volume_id)
1241
12391242
1240 def handle_SV_VOLUME_DELETED(self, volume_id):1243 def handle_SV_VOLUME_DELETED(self, volume_id):
1241 """Handle SV_VOLUME_DELETED event."""1244 """Handle SV_VOLUME_DELETED event."""

Subscribers

People subscribed via source and target branches