~didrocks/ubuntuone-client/use_result_var

« back to all changes in this revision

Viewing changes to ubuntuone/platform/linux/tools.py

  • Committer: Bazaar Package Importer
  • Author(s): Rodney Dawes
  • Date: 2011-02-11 16:18:11 UTC
  • mto: This revision was merged to the branch mainline in revision 67.
  • Revision ID: james.westby@ubuntu.com-20110211161811-n18dj9lde7dxqjzr
Tags: upstream-1.5.4
ImportĀ upstreamĀ versionĀ 1.5.4

Show diffs side-by-side

added added

removed removed

Lines of Context:
236
236
        return d
237
237
 
238
238
    def wait_no_more_events(self, last_event_interval, verbose=False):
239
 
        """ Wait until no more events are fired by the syncdaemon. """
 
239
        """Wait until no more events are fired by the syncdaemon."""
240
240
        self.log.debug('wait_no_more_events')
241
241
        d = defer.Deferred()
 
242
 
242
243
        def check_last_event():
243
 
            """ Check if the daemon is connected and we didn't received event
244
 
            in the last_event_interval
 
244
            """Check time!
 
245
 
 
246
            Check if the daemon is connected and didn't received event
 
247
            in the last_event_interval.
245
248
            """
246
249
            current_time = time.time()
247
250
            if self.last_event and \
260
263
        if verbose:
261
264
            sys.stdout.write("Listening events")
262
265
            sys.stdout.flush()
 
266
 
263
267
        def event_handler(event_dict):
264
 
            """ update last_event and run checks """
 
268
            """Update last_event and run checks."""
265
269
            self.last_event = time.time()
266
270
            self.log.debug('wait_no_more_events - new event: %s - %s',
267
271
                           event_dict['event_name'], str(self.last_event))
272
276
                self.delayed_call.reset(last_event_interval)
273
277
 
274
278
        self.bus.add_signal_receiver(event_handler, signal_name='Event')
 
279
 
275
280
        def cleanup(result):
276
 
            """ remove the signal handler """
277
 
            self.bus.remove_signal_receiver(event_handler,
278
 
                                             signal_name='Event')
 
281
            """Remove the signal handler."""
 
282
            self.bus.remove_signal_receiver(event_handler, signal_name='Event')
279
283
            return result
280
284
        d.addBoth(cleanup)
 
285
 
281
286
        # in case the daemon already reached nirvana
282
287
        self.delayed_call = reactor.callLater(last_event_interval,
283
288
                                              check_last_event)
321
326
                                  error_handler=d.errback)
322
327
        return d
323
328
 
 
329
    @defer.inlineCallbacks
 
330
    def subscribe_share(self, share_id):
 
331
        """Subscribe to a share given its id."""
 
332
        self.log.debug('subscribe_share: %r', share_id)
 
333
        shares_client = DBusClient(self.bus, '/shares', DBUS_IFACE_SHARES_NAME)
 
334
 
 
335
        d = self.wait_for_signals('ShareSubscribed', 'ShareSubscribeError',
 
336
                                  dbus_iface=DBUS_IFACE_SHARES_NAME)
 
337
 
 
338
        call_done = defer.Deferred()
 
339
        shares_client.call_method('subscribe', share_id,
 
340
                                  reply_handler=call_done.callback,
 
341
                                  error_handler=call_done.errback)
 
342
        yield call_done
 
343
        yield d
 
344
 
 
345
    @defer.inlineCallbacks
 
346
    def unsubscribe_share(self, share_id):
 
347
        """Unsubscribe from a share given its id."""
 
348
        self.log.debug('unsubscribe_share: %r', share_id)
 
349
        shares_client = DBusClient(self.bus, '/shares', DBUS_IFACE_SHARES_NAME)
 
350
 
 
351
        d = self.wait_for_signals('ShareUnSubscribed', 'ShareUnSubscribeError',
 
352
                                  dbus_iface=DBUS_IFACE_SHARES_NAME)
 
353
 
 
354
        call_done = defer.Deferred()
 
355
        shares_client.call_method('unsubscribe', share_id,
 
356
                                  reply_handler=call_done.callback,
 
357
                                  error_handler=d.errback)
 
358
        yield call_done
 
359
        yield d
 
360
 
324
361
    def get_shares(self):
325
362
        """ Get the list of shares (accepted or not) """
326
363
        self.log.debug('get_shares')
806
843
    else:
807
844
        out.write("Shares list:\n")
808
845
    for share in shares:
809
 
        out.write(' id=%s name=%s accepted=%s access_level=%s from=%s\n' % \
 
846
        out.write(' id=%s name=%s accepted=%s subscribed=%s access_level=%s ' \
 
847
                  'from=%s\n' % \
810
848
                  (share['volume_id'], share['name'], bool(share['accepted']),
811
 
                   share['access_level'], share['other_username']))
 
849
                   bool(share['subscribed']), share['access_level'],
 
850
                   share['other_username']))
812
851
 
813
852
 
814
853
def show_path_info(result, path, out):