From 58c97661a8eea453963cb5de73320a9557ab1ef2 Mon Sep 17 00:00:00 2001 From: tv Date: Mon, 29 Sep 2008 15:54:47 +0000 Subject: (is_proper_device,firstCheck) use HAL in order to detect discs avaible for backup, thus not detecting some internal SATA discs (#41107) git-svn-id: http://svn.mandriva.com/svn/soft/draksnapshot/trunk@247021 99302b65-d5f7-0310-b3dd-f8cd6f4e3d94 --- NEWS | 4 ++++ draksnapshot-applet | 12 +++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 2b43893..1ecc938 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,7 @@ +- applet: + o use HAL in order to detect discs avaible for backup, + thus not detecting some internal SATA discs (#41107) + Version 0.14 - 26 September 2008, Thierry Vignaud - applet: diff --git a/draksnapshot-applet b/draksnapshot-applet index 655886c..a8b8082 100755 --- a/draksnapshot-applet +++ b/draksnapshot-applet @@ -208,13 +208,19 @@ sub configure() { } sub is_proper_device { - my ($device) = @_; - $device->QueryCapability('volume') && !$device->GetProperty('volume.is_disc') && + my ($device, $o_is_first_check) = @_; + my $device_name = $device->QueryCapability('block') && $device->GetProperty('block.device'); + return if !$device_name; + my $bool = $device->QueryCapability('volume') && !$device->GetProperty('volume.is_disc') && $device->GetProperty('volume.is_mounted'); + return $o_is_first_check ? $bool && $device_name && cat_('/media/.hal-mtab') =~ m!^$device_name\s!sg : $bool; } sub firstCheck() { - my @discs = grep { $_->{usb_bus} && detect_devices::may_be_a_hd($_) } detect_devices::getSCSI(); + my $hal = $dbus->get_service($hal_dn); + my $manager = $hal->get_object($manager_path, $hal_manager); + + my @discs = grep { is_proper_device($_, 1) } map { $hal->get_object($_, "$hal_dn.Device") } @{$manager->GetAllDevices}; # find root fs: my $root; -- cgit v1.2.1