if DBus exposed Folders.delete is called with a non-existent/invalid folder id, the error/failure signal isn't broadcasted via DBus
Here is the log of a test:
guillermo@naug:~/$ DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-kHzQHKyGAY,guid=6899de014c95a809a352e0f94bf55de7 dbus-send --print-reply --session --dest=com.ubuntuone.SyncDaemon --type=method_call /folders com.ubuntuone.SyncDaemon.Folders.delete string:''
2010-05-20 13:09:58,989 - ubuntuone.SyncDaemon.DBus - DEBUG - Folders.delete: dbus.String(u'') 2010-05-20 13:09:58,990 - ubuntuone.SyncDaemon.VM - INFO - delete_volume: dbus.String(u'') 2010-05-20 13:09:58,990 - ubuntuone.SyncDaemon.ActionQueue - DEBUG - DeleteVolume share:--- node:--- DeleteVolume() queueing in the %s META_QUEUE 2010-05-20 13:09:58,991 - ubuntuone.SyncDaemon.EQ - DEBUG - push_event: SYS_META_QUEUE_WAITING, args:(), kw:{} 2010-05-20 13:09:58,991 - ubuntuone.SyncDaemon.StateManager - DEBUG - received event 'SYS_META_QUEUE_WAITING' 2010-05-20 13:09:58,991 - ubuntuone.SyncDaemon.StateManager - DEBUG - sending event to QueueManager 2010-05-20 13:09:58,991 - ubuntuone.SyncDaemon.QueueManager - DEBUG - Changing state IDLE -> WORKING_ON_METADATA 2010-05-20 13:09:58,992 - ubuntuone.SyncDaemon.QueueManager - DEBUG - In WORKING_ON_METADATA: running META_QUEUE 2010-05-20 13:09:58,992 - ubuntuone.SyncDaemon.ActionQueue - DEBUG - DeleteVolume share:--- node:--- DeleteVolume() starting 2010-05-20 13:09:58,992 - ubuntuone.SyncDaemon.ActionQueue - DEBUG - DeleteVolume share:--- node:--- DeleteVolume() running 2010-05-20 13:09:58,994 - ubuntuone.SyncDaemon.EQ - DEBUG - push_event: SYS_STATE_CHANGED, args:(), kw:{'state': QUEUE_MANAGER (error=False connected=True online=True) Queue: WORKING_ON_METADATA Connection: With User With Network} method return sender=:1.0 -> dest=:1.15 reply_serial=2 guillermo@naug:~/canonical/ubuntuone/current$ 2010-05-20 13:09:59,056 - ubuntuone.SyncDaemon.ActionQueue - WARNING - DeleteVolume share:--- node:--- DeleteVolume() failure NO_PERMISSION 2010-05-20 13:09:59,056 - ubuntuone.SyncDaemon.ActionQueue - DEBUG - DeleteVolume share:--- node:--- DeleteVolume() cleanup 2010-05-20 13:09:59,057 - ubuntuone.SyncDaemon.EQ - DEBUG - push_event: AQ_DELETE_VOLUME_ERROR, args:(), kw:{'error': 'NO_PERMISSION', 'volume_id': ''} 2010-05-20 13:09:59,057 - ubuntuone.SyncDaemon.EQ - DEBUG - push_event: VM_VOLUME_DELETE_ERROR, args:('', 'NO_PERMISSION'), kw:{} 2010-05-20 13:09:59,057 - ubuntuone.SyncDaemon.DBus - ERROR - Unable to handle VM_VOLUME_DELETE_ERROR for volume_id=u'' as it's not a share or UDF
The DBusInterface should hanlde this case and broadcast the error/faiure signal, as the client will probably wait for a success/failure response.
if DBus exposed Folders.delete is called with a non-existent/ invalid folder id, the error/failure signal isn't broadcasted via DBus
Here is the log of a test:
guillermo@naug:~/$ DBUS_SESSION_ BUS_ADDRESS= unix:abstract= /tmp/dbus- kHzQHKyGAY, guid=6899de014c 95a809a352e0f94 bf55de7 dbus-send --print-reply --session --dest= com.ubuntuone. SyncDaemon --type=method_call /folders com.ubuntuone. SyncDaemon. Folders. delete string:''
2010-05-20 13:09:58,989 - ubuntuone. SyncDaemon. DBus - DEBUG - Folders.delete: dbus.String(u'') SyncDaemon. VM - INFO - delete_volume: dbus.String(u'') SyncDaemon. ActionQueue - DEBUG - DeleteVolume share:--- node:--- DeleteVolume() queueing in the %s META_QUEUE SyncDaemon. EQ - DEBUG - push_event: SYS_META_ QUEUE_WAITING, args:(), kw:{} SyncDaemon. StateManager - DEBUG - received event 'SYS_META_ QUEUE_WAITING' SyncDaemon. StateManager - DEBUG - sending event to QueueManager SyncDaemon. QueueManager - DEBUG - Changing state IDLE -> WORKING_ON_METADATA SyncDaemon. QueueManager - DEBUG - In WORKING_ ON_METADATA: running META_QUEUE SyncDaemon. ActionQueue - DEBUG - DeleteVolume share:--- node:--- DeleteVolume() starting SyncDaemon. ActionQueue - DEBUG - DeleteVolume share:--- node:--- DeleteVolume() running SyncDaemon. EQ - DEBUG - push_event: SYS_STATE_CHANGED, args:(), kw:{'state': QUEUE_MANAGER (error=False connected=True online=True) Queue: WORKING_ON_METADATA Connection: With User With Network} naug:~/ canonical/ ubuntuone/ current$ 2010-05-20 13:09:59,056 - ubuntuone. SyncDaemon. ActionQueue - WARNING - DeleteVolume share:--- node:--- DeleteVolume() failure NO_PERMISSION SyncDaemon. ActionQueue - DEBUG - DeleteVolume share:--- node:--- DeleteVolume() cleanup SyncDaemon. EQ - DEBUG - push_event: AQ_DELETE_ VOLUME_ ERROR, args:(), kw:{'error': 'NO_PERMISSION', 'volume_id': ''} SyncDaemon. EQ - DEBUG - push_event: VM_VOLUME_ DELETE_ ERROR, args:('', 'NO_PERMISSION'), kw:{} SyncDaemon. DBus - ERROR - Unable to handle VM_VOLUME_ DELETE_ ERROR for volume_id=u'' as it's not a share or UDF
2010-05-20 13:09:58,990 - ubuntuone.
2010-05-20 13:09:58,990 - ubuntuone.
2010-05-20 13:09:58,991 - ubuntuone.
2010-05-20 13:09:58,991 - ubuntuone.
2010-05-20 13:09:58,991 - ubuntuone.
2010-05-20 13:09:58,991 - ubuntuone.
2010-05-20 13:09:58,992 - ubuntuone.
2010-05-20 13:09:58,992 - ubuntuone.
2010-05-20 13:09:58,992 - ubuntuone.
2010-05-20 13:09:58,994 - ubuntuone.
method return sender=:1.0 -> dest=:1.15 reply_serial=2
guillermo@
2010-05-20 13:09:59,056 - ubuntuone.
2010-05-20 13:09:59,057 - ubuntuone.
2010-05-20 13:09:59,057 - ubuntuone.
2010-05-20 13:09:59,057 - ubuntuone.
The DBusInterface should hanlde this case and broadcast the error/faiure signal, as the client will probably wait for a success/failure response.