def mount_cb(gio_volume: Gio.Volume, result: Gio.AsyncResult): logger.debug("in mount_cb") self.hide_spinner() try: gio_volume.mount_finish(result) except GLib.Error as e: if e.code == Gio.IOErrorEnum.FAILED_HANDLED: logger.warning("Couldn't unlock volume: %s:", e.message) return logger.exception(e) if "No key available with this passphrase" in e.message or \ "No device header detected with this passphrase" in e.message: title = _("Wrong passphrase or parameters") else: title = _("Error unlocking volume") # Translators: Don't translate {volume_name} or {error_message}, # they are placeholder and will be replaced. body = _("Couldn't unlock volume {volume_name}:\n{error_message}".format(volume_name=self.name, error_message=e.message)) self.manager.show_warning(title, body) return finally: self.manager.mount_op_lock.release() if open_after_unlock: # The GVolume now changed from the loop device to the dm device, so # by also updating the udisks object we change this volume from the # crypto backing loop device to the unlocked device-mapper device, # which we can then open self.udisks_object = self._find_udisks_object() self.open()
def on_volume_added(self, volume_monitor: Gio.VolumeMonitor, gio_volume: Gio.Volume): logger.debug( "in on_volume_added. volume: %s", gio_volume.get_identifier(Gio.VOLUME_IDENTIFIER_KIND_UNIX_DEVICE)) volume = Volume(self, gio_volume) if volume.is_tcrypt: self.add_volume(volume)
def on_volume_changed(self, volume_monitor: Gio.VolumeMonitor, gio_volume: Gio.Volume): logger.debug( "in on_volume_changed. volume: %s", gio_volume.get_identifier(Gio.VOLUME_IDENTIFIER_KIND_UNIX_DEVICE)) try: volume = Volume(self, gio_volume) if volume.is_tcrypt: self.update_volume(volume) except UdisksObjectNotFoundError: self.remove_volume(Volume(self, gio_volume, with_udisks=False))
def on_volume_removed(self, volume_monitor: Gio.VolumeMonitor, gio_volume: Gio.Volume): logger.debug( "in on_volume_removed. volume: %s", gio_volume.get_identifier(Gio.VOLUME_IDENTIFIER_KIND_UNIX_DEVICE)) self.remove_volume(Volume(self, gio_volume, with_udisks=False))