Merge lp:~ubuntuone-control-tower/ubuntu/lucid/ubuntuone-client/trunk into lp:ubuntu/lucid/ubuntuone-client
- Lucid (10.04)
- trunk
- Merge into lucid
Proposed by
dobey
on 2010-04-01
| Status: | Merged |
|---|---|
| Merged at revision: | not available |
| Proposed branch: | lp:~ubuntuone-control-tower/ubuntu/lucid/ubuntuone-client/trunk |
| Merge into: | lp:ubuntu/lucid/ubuntuone-client |
| Diff against target: |
331 lines (+86/-17) 7 files modified
bin/ubuntuone-preferences (+6/-4) configure (+10/-10) configure.ac (+1/-1) debian/changelog (+9/-0) debian/ubuntuone-client.install (+2/-0) tests/syncdaemon/test_vm.py (+51/-0) ubuntuone/syncdaemon/volume_manager.py (+7/-2) |
| To merge this branch: | bzr merge lp:~ubuntuone-control-tower/ubuntu/lucid/ubuntuone-client/trunk |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| Ubuntu branches | 2010-04-01 | Pending | |
|
Review via email:
|
|||
Commit Message
Description of the Change
To post a comment you must log in.
lp:~ubuntuone-control-tower/ubuntu/lucid/ubuntuone-client/trunk
updated
on 2010-04-01
- 26. By Sebastien Bacher on 2010-04-01
-
releasing version 1.1.91-0ubuntu1
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
| 1 | === modified file 'bin/ubuntuone-preferences' |
| 2 | --- bin/ubuntuone-preferences 2010-03-31 23:46:58 +0000 |
| 3 | +++ bin/ubuntuone-preferences 2010-04-01 20:36:38 +0000 |
| 4 | @@ -210,8 +210,8 @@ |
| 5 | self.status_label = gtk.Label("") |
| 6 | self.attach(self.status_label, 0, 3, 2, 3) |
| 7 | |
| 8 | - self.description = gtk.Label(_("The devices connected with your" |
| 9 | - " pseronal cloud network" |
| 10 | + self.description = gtk.Label(_("The devices connected to with your" |
| 11 | + " personal cloud network" |
| 12 | " are listed below")) |
| 13 | self.description.set_alignment(0., .5) |
| 14 | self.description.set_line_wrap(True) |
| 15 | @@ -597,7 +597,7 @@ |
| 16 | """Handle the dialog's response.""" |
| 17 | self.hide() |
| 18 | self.devices.handle_bw_controls_changed() |
| 19 | - gtk.main_quit() |
| 20 | + gobject.timeout_add_seconds(5, gtk.main_quit) |
| 21 | |
| 22 | def _format_for_gb_display(self, bytes): |
| 23 | """Format bytes into reasonable gb display.""" |
| 24 | @@ -957,6 +957,7 @@ |
| 25 | sw.show() |
| 26 | self.devices = DevicesWidget(self.__bus, self.keyring) |
| 27 | sw.add_with_viewport(self.devices) |
| 28 | + self.devices.list_devices() |
| 29 | self.devices.show_all() |
| 30 | |
| 31 | # Services tab |
| 32 | @@ -1058,7 +1059,8 @@ |
| 33 | self.dialog.request_quota_info() |
| 34 | self.dialog.request_account_info() |
| 35 | self.dialog.devices.get_devices() |
| 36 | - self.dialog.present_with_time(int(time.time())) |
| 37 | + if self.dialog.visible: |
| 38 | + self.dialog.present_with_time(int(time.time())) |
| 39 | |
| 40 | def got_newcredentials(self, realm, consumer_key): |
| 41 | """Show our dialog, since we can do stuff now.""" |
| 42 | |
| 43 | === modified file 'configure' |
| 44 | --- configure 2010-03-31 23:46:58 +0000 |
| 45 | +++ configure 2010-04-01 20:36:38 +0000 |
| 46 | @@ -1,6 +1,6 @@ |
| 47 | #! /bin/sh |
| 48 | # Guess values for system-dependent variables and create Makefiles. |
| 49 | -# Generated by GNU Autoconf 2.65 for ubuntuone-client 1.1.90. |
| 50 | +# Generated by GNU Autoconf 2.65 for ubuntuone-client 1.1.91. |
| 51 | # |
| 52 | # |
| 53 | # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, |
| 54 | @@ -698,8 +698,8 @@ |
| 55 | # Identity of this package. |
| 56 | PACKAGE_NAME='ubuntuone-client' |
| 57 | PACKAGE_TARNAME='ubuntuone-client' |
| 58 | -PACKAGE_VERSION='1.1.90' |
| 59 | -PACKAGE_STRING='ubuntuone-client 1.1.90' |
| 60 | +PACKAGE_VERSION='1.1.91' |
| 61 | +PACKAGE_STRING='ubuntuone-client 1.1.91' |
| 62 | PACKAGE_BUGREPORT='' |
| 63 | PACKAGE_URL='' |
| 64 | |
| 65 | @@ -1476,7 +1476,7 @@ |
| 66 | # Omit some internal or obsolete options to make the list less imposing. |
| 67 | # This message is too long to be a string in the A/UX 3.1 sh. |
| 68 | cat <<_ACEOF |
| 69 | -\`configure' configures ubuntuone-client 1.1.90 to adapt to many kinds of systems. |
| 70 | +\`configure' configures ubuntuone-client 1.1.91 to adapt to many kinds of systems. |
| 71 | |
| 72 | Usage: $0 [OPTION]... [VAR=VALUE]... |
| 73 | |
| 74 | @@ -1547,7 +1547,7 @@ |
| 75 | |
| 76 | if test -n "$ac_init_help"; then |
| 77 | case $ac_init_help in |
| 78 | - short | recursive ) echo "Configuration of ubuntuone-client 1.1.90:";; |
| 79 | + short | recursive ) echo "Configuration of ubuntuone-client 1.1.91:";; |
| 80 | esac |
| 81 | cat <<\_ACEOF |
| 82 | |
| 83 | @@ -1660,7 +1660,7 @@ |
| 84 | test -n "$ac_init_help" && exit $ac_status |
| 85 | if $ac_init_version; then |
| 86 | cat <<\_ACEOF |
| 87 | -ubuntuone-client configure 1.1.90 |
| 88 | +ubuntuone-client configure 1.1.91 |
| 89 | generated by GNU Autoconf 2.65 |
| 90 | |
| 91 | Copyright (C) 2009 Free Software Foundation, Inc. |
| 92 | @@ -1938,7 +1938,7 @@ |
| 93 | This file contains any messages produced by compilers while |
| 94 | running configure, to aid debugging if configure makes a mistake. |
| 95 | |
| 96 | -It was created by ubuntuone-client $as_me 1.1.90, which was |
| 97 | +It was created by ubuntuone-client $as_me 1.1.91, which was |
| 98 | generated by GNU Autoconf 2.65. Invocation command line was |
| 99 | |
| 100 | $ $0 $@ |
| 101 | @@ -2748,7 +2748,7 @@ |
| 102 | |
| 103 | # Define the identity of the package. |
| 104 | PACKAGE='ubuntuone-client' |
| 105 | - VERSION='1.1.90' |
| 106 | + VERSION='1.1.91' |
| 107 | |
| 108 | |
| 109 | cat >>confdefs.h <<_ACEOF |
| 110 | @@ -12972,7 +12972,7 @@ |
| 111 | # report actual input values of CONFIG_FILES etc. instead of their |
| 112 | # values after options handling. |
| 113 | ac_log=" |
| 114 | -This file was extended by ubuntuone-client $as_me 1.1.90, which was |
| 115 | +This file was extended by ubuntuone-client $as_me 1.1.91, which was |
| 116 | generated by GNU Autoconf 2.65. Invocation command line was |
| 117 | |
| 118 | CONFIG_FILES = $CONFIG_FILES |
| 119 | @@ -13038,7 +13038,7 @@ |
| 120 | cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 |
| 121 | ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" |
| 122 | ac_cs_version="\\ |
| 123 | -ubuntuone-client config.status 1.1.90 |
| 124 | +ubuntuone-client config.status 1.1.91 |
| 125 | configured by $0, generated by GNU Autoconf 2.65, |
| 126 | with options \\"\$ac_cs_config\\" |
| 127 | |
| 128 | |
| 129 | === modified file 'configure.ac' |
| 130 | --- configure.ac 2010-03-31 23:46:58 +0000 |
| 131 | +++ configure.ac 2010-04-01 20:36:38 +0000 |
| 132 | @@ -1,7 +1,7 @@ |
| 133 | dnl Process this file with autoconf to produce a configure script. |
| 134 | AC_PREREQ(2.53) |
| 135 | |
| 136 | -AC_INIT([ubuntuone-client], [1.1.90]) |
| 137 | +AC_INIT([ubuntuone-client], [1.1.91]) |
| 138 | AC_CONFIG_SRCDIR([config.h.in]) |
| 139 | |
| 140 | AM_INIT_AUTOMAKE([1.10 foreign]) |
| 141 | |
| 142 | === modified file 'contrib/__init__.pyc' |
| 143 | Binary files contrib/__init__.pyc 2010-03-31 23:46:58 +0000 and contrib/__init__.pyc 2010-04-01 20:36:38 +0000 differ |
| 144 | === modified file 'contrib/dbus_util.pyc' |
| 145 | Binary files contrib/dbus_util.pyc 2010-03-31 23:46:58 +0000 and contrib/dbus_util.pyc 2010-04-01 20:36:38 +0000 differ |
| 146 | === modified file 'contrib/mocker.pyc' |
| 147 | Binary files contrib/mocker.pyc 2010-03-31 23:46:58 +0000 and contrib/mocker.pyc 2010-04-01 20:36:38 +0000 differ |
| 148 | === modified file 'contrib/testing/__init__.pyc' |
| 149 | Binary files contrib/testing/__init__.pyc 2010-03-31 23:46:58 +0000 and contrib/testing/__init__.pyc 2010-04-01 20:36:38 +0000 differ |
| 150 | === modified file 'contrib/testing/testcase.pyc' |
| 151 | Binary files contrib/testing/testcase.pyc 2010-03-31 23:46:58 +0000 and contrib/testing/testcase.pyc 2010-04-01 20:36:38 +0000 differ |
| 152 | === modified file 'debian/changelog' |
| 153 | --- debian/changelog 2010-04-01 00:03:14 +0000 |
| 154 | +++ debian/changelog 2010-04-01 20:36:38 +0000 |
| 155 | @@ -1,3 +1,12 @@ |
| 156 | +ubuntuone-client (1.1.91-0ubuntu1) UNRELEASED; urgency=low |
| 157 | + |
| 158 | + * New upstream release. |
| 159 | + - Fix to avoid AttributeError on exit (LP: #553318) |
| 160 | + - Fix typo and string change in prefs app (LP: #553324) |
| 161 | + - Add missing autostart files to packages (LP: #534707) |
| 162 | + |
| 163 | + -- Rodney Dawes <rodney.dawes@canonical.com> Thu, 01 Apr 2010 16:17:17 -0400 |
| 164 | + |
| 165 | ubuntuone-client (1.1.90-0ubuntu1) lucid; urgency=low |
| 166 | |
| 167 | * New upstream release. |
| 168 | |
| 169 | === modified file 'debian/ubuntuone-client.install' |
| 170 | --- debian/ubuntuone-client.install 2010-02-18 00:08:41 +0000 |
| 171 | +++ debian/ubuntuone-client.install 2010-04-01 20:36:38 +0000 |
| 172 | @@ -1,5 +1,7 @@ |
| 173 | +debian/tmp/etc/xdg/autostart |
| 174 | debian/tmp/usr/lib/ubuntuone-client/ubuntuone-syncdaemon |
| 175 | debian/tmp/usr/bin/u1sdtool |
| 176 | +debian/tmp/usr/bin/ubuntuone-launch |
| 177 | debian/tmp/usr/share/dbus-1/services/com.ubuntuone.SyncDaemon.service |
| 178 | debian/tmp/usr/share/man/man1/u1sdtool.* |
| 179 | debian/tmp/usr/share/locale |
| 180 | |
| 181 | === modified file 'tests/__init__.pyc' |
| 182 | Binary files tests/__init__.pyc 2010-03-31 23:46:58 +0000 and tests/__init__.pyc 2010-04-01 20:36:38 +0000 differ |
| 183 | === modified file 'tests/oauthdesktop/__init__.pyc' |
| 184 | Binary files tests/oauthdesktop/__init__.pyc 2010-03-31 23:46:58 +0000 and tests/oauthdesktop/__init__.pyc 2010-04-01 20:36:38 +0000 differ |
| 185 | === modified file 'tests/oauthdesktop/test_auth.pyc' |
| 186 | Binary files tests/oauthdesktop/test_auth.pyc 2010-03-31 23:46:58 +0000 and tests/oauthdesktop/test_auth.pyc 2010-04-01 20:36:38 +0000 differ |
| 187 | === modified file 'tests/oauthdesktop/test_config.pyc' |
| 188 | Binary files tests/oauthdesktop/test_config.pyc 2010-03-31 23:46:58 +0000 and tests/oauthdesktop/test_config.pyc 2010-04-01 20:36:38 +0000 differ |
| 189 | === modified file 'tests/oauthdesktop/test_key_acls.pyc' |
| 190 | Binary files tests/oauthdesktop/test_key_acls.pyc 2010-03-31 23:46:58 +0000 and tests/oauthdesktop/test_key_acls.pyc 2010-04-01 20:36:38 +0000 differ |
| 191 | === modified file 'tests/oauthdesktop/test_main.pyc' |
| 192 | Binary files tests/oauthdesktop/test_main.pyc 2010-03-31 23:46:58 +0000 and tests/oauthdesktop/test_main.pyc 2010-04-01 20:36:38 +0000 differ |
| 193 | === modified file 'tests/syncdaemon/__init__.pyc' |
| 194 | Binary files tests/syncdaemon/__init__.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/__init__.pyc 2010-04-01 20:36:38 +0000 differ |
| 195 | === modified file 'tests/syncdaemon/fsm/__init__.pyc' |
| 196 | Binary files tests/syncdaemon/fsm/__init__.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/fsm/__init__.pyc 2010-04-01 20:36:38 +0000 differ |
| 197 | === modified file 'tests/syncdaemon/fsm/test_fsm.pyc' |
| 198 | Binary files tests/syncdaemon/fsm/test_fsm.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/fsm/test_fsm.pyc 2010-04-01 20:36:38 +0000 differ |
| 199 | === modified file 'tests/syncdaemon/fsm/test_fsm_run.pyc' |
| 200 | Binary files tests/syncdaemon/fsm/test_fsm_run.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/fsm/test_fsm_run.pyc 2010-04-01 20:36:38 +0000 differ |
| 201 | === modified file 'tests/syncdaemon/fsm/test_run_hello.pyc' |
| 202 | Binary files tests/syncdaemon/fsm/test_run_hello.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/fsm/test_run_hello.pyc 2010-04-01 20:36:38 +0000 differ |
| 203 | === modified file 'tests/syncdaemon/test_action_predicates.pyc' |
| 204 | Binary files tests/syncdaemon/test_action_predicates.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_action_predicates.pyc 2010-04-01 20:36:38 +0000 differ |
| 205 | === modified file 'tests/syncdaemon/test_action_queue.pyc' |
| 206 | Binary files tests/syncdaemon/test_action_queue.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_action_queue.pyc 2010-04-01 20:36:38 +0000 differ |
| 207 | === modified file 'tests/syncdaemon/test_config.pyc' |
| 208 | Binary files tests/syncdaemon/test_config.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_config.pyc 2010-04-01 20:36:38 +0000 differ |
| 209 | === modified file 'tests/syncdaemon/test_dbus.pyc' |
| 210 | Binary files tests/syncdaemon/test_dbus.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_dbus.pyc 2010-04-01 20:36:38 +0000 differ |
| 211 | === modified file 'tests/syncdaemon/test_eq_inotify.pyc' |
| 212 | Binary files tests/syncdaemon/test_eq_inotify.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_eq_inotify.pyc 2010-04-01 20:36:38 +0000 differ |
| 213 | === modified file 'tests/syncdaemon/test_eventqueue.pyc' |
| 214 | Binary files tests/syncdaemon/test_eventqueue.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_eventqueue.pyc 2010-04-01 20:36:38 +0000 differ |
| 215 | === modified file 'tests/syncdaemon/test_eventsnanny.pyc' |
| 216 | Binary files tests/syncdaemon/test_eventsnanny.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_eventsnanny.pyc 2010-04-01 20:36:38 +0000 differ |
| 217 | === modified file 'tests/syncdaemon/test_fileshelf.pyc' |
| 218 | Binary files tests/syncdaemon/test_fileshelf.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_fileshelf.pyc 2010-04-01 20:36:38 +0000 differ |
| 219 | === modified file 'tests/syncdaemon/test_fsm.pyc' |
| 220 | Binary files tests/syncdaemon/test_fsm.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_fsm.pyc 2010-04-01 20:36:38 +0000 differ |
| 221 | === modified file 'tests/syncdaemon/test_hashqueue.pyc' |
| 222 | Binary files tests/syncdaemon/test_hashqueue.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_hashqueue.pyc 2010-04-01 20:36:38 +0000 differ |
| 223 | === modified file 'tests/syncdaemon/test_localrescan.pyc' |
| 224 | Binary files tests/syncdaemon/test_localrescan.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_localrescan.pyc 2010-04-01 20:36:38 +0000 differ |
| 225 | === modified file 'tests/syncdaemon/test_logger.pyc' |
| 226 | Binary files tests/syncdaemon/test_logger.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_logger.pyc 2010-04-01 20:36:38 +0000 differ |
| 227 | === modified file 'tests/syncdaemon/test_main.pyc' |
| 228 | Binary files tests/syncdaemon/test_main.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_main.pyc 2010-04-01 20:36:38 +0000 differ |
| 229 | === modified file 'tests/syncdaemon/test_states.pyc' |
| 230 | Binary files tests/syncdaemon/test_states.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_states.pyc 2010-04-01 20:36:38 +0000 differ |
| 231 | === modified file 'tests/syncdaemon/test_sync.pyc' |
| 232 | Binary files tests/syncdaemon/test_sync.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_sync.pyc 2010-04-01 20:36:38 +0000 differ |
| 233 | === modified file 'tests/syncdaemon/test_tools.pyc' |
| 234 | Binary files tests/syncdaemon/test_tools.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_tools.pyc 2010-04-01 20:36:38 +0000 differ |
| 235 | === modified file 'tests/syncdaemon/test_u1fsfsm.pyc' |
| 236 | Binary files tests/syncdaemon/test_u1fsfsm.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_u1fsfsm.pyc 2010-04-01 20:36:38 +0000 differ |
| 237 | === modified file 'tests/syncdaemon/test_u1sdtool.pyc' |
| 238 | Binary files tests/syncdaemon/test_u1sdtool.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_u1sdtool.pyc 2010-04-01 20:36:38 +0000 differ |
| 239 | === modified file 'tests/syncdaemon/test_vm.py' |
| 240 | --- tests/syncdaemon/test_vm.py 2010-03-31 23:46:58 +0000 |
| 241 | +++ tests/syncdaemon/test_vm.py 2010-04-01 20:36:38 +0000 |
| 242 | @@ -1707,6 +1707,57 @@ |
| 243 | self.assertEquals(30, self.vm.get_free_space(udf.volume_id)) |
| 244 | self.assertEquals(30, self.vm.get_free_space(root.volume_id)) |
| 245 | |
| 246 | + @defer.inlineCallbacks |
| 247 | + def test_UDF_cant_be_a_symlink(self): |
| 248 | + """Test that a UDF can't be a symlink.""" |
| 249 | + # initialize the root |
| 250 | + self.vm.handle_SYS_ROOT_RECEIVED('root_uuid') |
| 251 | + real_udf_path = os.path.join(self.home_dir, "my_udf") |
| 252 | + udf_path = os.path.join(self.home_dir, "MyUDF") |
| 253 | + # patch FakeAQ |
| 254 | + def create_udf(path, name, marker): |
| 255 | + """Fake create_udf""" |
| 256 | + self.main.event_q.push("AQ_CREATE_UDF_OK", **dict(volume_id=uuid.uuid4(), |
| 257 | + node_id=uuid.uuid4(), |
| 258 | + marker=marker)) |
| 259 | + self.main.action_q.create_udf = create_udf |
| 260 | + # create the symlink |
| 261 | + os.makedirs(real_udf_path) |
| 262 | + os.symlink(real_udf_path, udf_path) |
| 263 | + d = defer.Deferred() |
| 264 | + self._listen_for('VM_UDF_CREATE_ERROR', d.callback) |
| 265 | + self._listen_for('VM_UDF_CREATED', lambda r: d.errback(Exception(r))) |
| 266 | + self.vm.create_udf(udf_path) |
| 267 | + result = yield d |
| 268 | + self.assertEquals(0, len(list(self.vm.udfs.keys()))) |
| 269 | + self.assertEquals(result[0], udf_path) |
| 270 | + self.assertEquals(result[1], "UDFs can not be a symlink") |
| 271 | + |
| 272 | + @defer.inlineCallbacks |
| 273 | + def test_UDF_cant_be_inside_symlink(self): |
| 274 | + """Test that a UDF can't be inside a symlink.""" |
| 275 | + # initialize the root |
| 276 | + self.vm.handle_SYS_ROOT_RECEIVED('root_uuid') |
| 277 | + real_udf_path = os.path.join(self.home_dir, "udf_parent", "my_udf") |
| 278 | + udf_path = os.path.join(self.home_dir, "MyUDF") |
| 279 | + # patch FakeAQ |
| 280 | + def create_udf(path, name, marker): |
| 281 | + """Fake create_udf""" |
| 282 | + self.main.event_q.push("AQ_CREATE_UDF_OK", **dict(volume_id=uuid.uuid4(), |
| 283 | + node_id=uuid.uuid4(), |
| 284 | + marker=marker)) |
| 285 | + self.main.action_q.create_udf = create_udf |
| 286 | + # create the symlink |
| 287 | + os.makedirs(real_udf_path) |
| 288 | + os.symlink(real_udf_path, udf_path) |
| 289 | + d = defer.Deferred() |
| 290 | + self._listen_for('VM_UDF_CREATE_ERROR', d.callback) |
| 291 | + self._listen_for('VM_UDF_CREATED', lambda r: d.errback(Exception(r))) |
| 292 | + self.vm.create_udf(udf_path) |
| 293 | + result = yield d |
| 294 | + self.assertEquals(0, len(list(self.vm.udfs.keys()))) |
| 295 | + self.assertEquals(result[0], udf_path) |
| 296 | + self.assertEquals(result[1], "UDFs can not be a symlink") |
| 297 | |
| 298 | class MetadataTestCase(BaseTwistedTestCase): |
| 299 | md_version_None = False |
| 300 | |
| 301 | === modified file 'tests/syncdaemon/test_vm.pyc' |
| 302 | Binary files tests/syncdaemon/test_vm.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_vm.pyc 2010-04-01 20:36:38 +0000 differ |
| 303 | === modified file 'tests/test_login.pyc' |
| 304 | Binary files tests/test_login.pyc 2010-03-31 23:46:58 +0000 and tests/test_login.pyc 2010-04-01 20:36:38 +0000 differ |
| 305 | === modified file 'tests/test_preferences.pyc' |
| 306 | Binary files tests/test_preferences.pyc 2010-03-31 23:46:58 +0000 and tests/test_preferences.pyc 2010-04-01 20:36:38 +0000 differ |
| 307 | === modified file 'tests/u1sync/__init__.pyc' |
| 308 | Binary files tests/u1sync/__init__.pyc 2010-03-31 23:46:58 +0000 and tests/u1sync/__init__.pyc 2010-04-01 20:36:38 +0000 differ |
| 309 | === modified file 'tests/u1sync/test_init.pyc' |
| 310 | Binary files tests/u1sync/test_init.pyc 2010-03-31 23:46:58 +0000 and tests/u1sync/test_init.pyc 2010-04-01 20:36:38 +0000 differ |
| 311 | === modified file 'tests/u1sync/test_merge.pyc' |
| 312 | Binary files tests/u1sync/test_merge.pyc 2010-03-31 23:46:58 +0000 and tests/u1sync/test_merge.pyc 2010-04-01 20:36:38 +0000 differ |
| 313 | === modified file 'ubuntuone/syncdaemon/volume_manager.py' |
| 314 | --- ubuntuone/syncdaemon/volume_manager.py 2010-03-31 23:46:58 +0000 |
| 315 | +++ ubuntuone/syncdaemon/volume_manager.py 2010-04-01 20:36:38 +0000 |
| 316 | @@ -840,8 +840,13 @@ |
| 317 | def create_udf(self, path): |
| 318 | """Request the creation of a UDF to AQ.""" |
| 319 | self.log.debug('create udf: %r', path) |
| 320 | - # check if the path it's ok (outside root and isn't a ancestor or |
| 321 | - # child of another UDF) |
| 322 | + # check if path is the realpath, bail out if not |
| 323 | + if os.path.realpath(path) != path: |
| 324 | + self.m.event_q.push('VM_UDF_CREATE_ERROR', path, |
| 325 | + "UDFs can not be a symlink") |
| 326 | + return |
| 327 | + # check if the path it's ok (outside root and |
| 328 | + # isn't a ancestor or child of another UDF) |
| 329 | if self._is_nested_udf(path): |
| 330 | self.m.event_q.push('VM_UDF_CREATE_ERROR', path, |
| 331 | "UDFs can not be nested") |

