Byron Clark avatar Byron Clark committed 4fcccfb

Only store state on handleable devices.

Comments (0)

Files changed (1)

                                      bus_name='org.freedesktop.UDisks')
 
     def _mount_device(self, device):
-        if device.is_handleable() and not device.is_mounted():
-            filesystem = str(device.id_type())
-            options = []
+        if device.is_handleable():
             try:
-                device.mount(filesystem, options)
-                self.log.info('mounted device %s' % (device,))
-            except dbus.exceptions.DBusException, dbus_err:
-                self.log.error('failed to mount device %s: %s' % (device,
-                                                                  dbus_err))
-                return
-
-            mount_paths = ', '.join(device.mount_paths())
-            pynotify.Notification('Device mounted',
-                                  '%s mounted on %s' % (device.device_file(),
-                                                        mount_paths),
-                                  'drive-removable-media').show()
-
-        self._store_device_state(device)
+                if not device.is_mounted():
+                    filesystem = str(device.id_type())
+                    options = []
+                    try:
+                        device.mount(filesystem, options)
+                        self.log.info('mounted device %s' % (device,))
+                    except dbus.exceptions.DBusException, dbus_err:
+                        self.log.error('failed to mount device %s: %s' % (device,
+                                                                          dbus_err))
+                        return
+	
+                    mount_paths = ', '.join(device.mount_paths())
+	            pynotify.Notification('Device mounted',
+	                                  '%s mounted on %s' % (device.device_file(),
+	                                                        mount_paths),
+	                                  'drive-removable-media').show()
+            finally:
+                self._store_device_state(device)
 
     def _store_device_state(self, device):
         state = DeviceState(device.is_mounted(),
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.