Author: aschnell Date: Tue Dec 6 14:15:20 2011 New Revision: 66987 URL: http://svn.opensuse.org/viewcvs/yast?rev=66987&view=rev Log: - add nofail for volumes using iSCSI disks (bnc#734786) Modified: trunk/storage/package/yast2-storage.changes trunk/storage/storage/src/include/ep-hd-lib.ycp trunk/storage/storage/src/include/ep-lvm-lib.ycp trunk/storage/storage/src/include/ep-raid-dialogs.ycp trunk/storage/storage/src/modules/FileSystems.ycp Modified: trunk/storage/package/yast2-storage.changes URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/package/yast2-storage.changes?rev=66987&r1=66986&r2=66987&view=diff ============================================================================== --- trunk/storage/package/yast2-storage.changes (original) +++ trunk/storage/package/yast2-storage.changes Tue Dec 6 14:15:20 2011 @@ -1,4 +1,9 @@ ------------------------------------------------------------------- +Tue Dec 06 14:08:41 CET 2011 - aschnell@suse.de + +- add nofail for volumes using iSCSI disks (bnc#734786) + +------------------------------------------------------------------- Fri Nov 25 12:25:53 UTC 2011 - coolo@suse.com - add libtool as buildrequire to avoid implicit dependency Modified: trunk/storage/storage/src/include/ep-hd-lib.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/storage/src/include/ep-hd-lib.ycp?rev=66987&r1=66986&r2=66987&view=diff ============================================================================== --- trunk/storage/storage/src/include/ep-hd-lib.ycp (original) +++ trunk/storage/storage/src/include/ep-hd-lib.ycp Tue Dec 6 14:15:20 2011 @@ -220,6 +220,8 @@ "cyl_count" : disk["cyl_count"]:0, "slots" : slots ]; + data["using_devices"] = [ disk_device ]; + if (DlgCreatePartition(data)) { string device = data["device"]:"error"; Modified: trunk/storage/storage/src/include/ep-lvm-lib.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/storage/src/include/ep-lvm-lib.ycp?rev=66987&r1=66986&r2=66987&view=diff ============================================================================== --- trunk/storage/storage/src/include/ep-lvm-lib.ycp (original) +++ trunk/storage/storage/src/include/ep-lvm-lib.ycp Tue Dec 6 14:15:20 2011 @@ -207,6 +207,7 @@ data["max_size_k"] = (target_map[device, "pe_free"]:0 * target_map[device, "pesize"]:0) / 1024; data["max_stripes"] = size(MergeDevices((map<string, any>) target_map[device]:$[])); + data["using_devices"] = [ device ]; symbol Commit() { Modified: trunk/storage/storage/src/include/ep-raid-dialogs.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/storage/src/include/ep-raid-dialogs.ycp?rev=66987&r1=66986&r2=66987&view=diff ============================================================================== --- trunk/storage/storage/src/include/ep-raid-dialogs.ycp (original) +++ trunk/storage/storage/src/include/ep-raid-dialogs.ycp Tue Dec 6 14:15:20 2011 @@ -188,6 +188,8 @@ integer size_k = 0; Storage::ComputeMdSize(tosymbol(raid_type), devices, size_k); data["size_k"] = size_k; + + data["using_devices"] = devices; } y2milestone("MiniWorkflowStepRaidTypeDevices data:%1 ret:%2", data, widget); Modified: trunk/storage/storage/src/modules/FileSystems.ycp URL: http://svn.opensuse.org/viewcvs/yast/trunk/storage/storage/src/modules/FileSystems.ycp?rev=66987&r1=66986&r2=66987&view=diff ============================================================================== --- trunk/storage/storage/src/modules/FileSystems.ycp (original) +++ trunk/storage/storage/src/modules/FileSystems.ycp Tue Dec 6 14:15:20 2011 @@ -1356,29 +1356,46 @@ } } - any dp = LibStorage::ContVolInfo::new("LibStorage::ContVolInfo"); string dev = part["device"]:""; - LibStorage::StorageInterface::getContVolInfo(sint, dev, dp); - integer t = LibStorage::ContVolInfo::swig_ctype_get(dp); - if( t == LibStorage::DISK() && part["mount"]:""!="/" ) + + if (part["mount"]:"" != "/") + { + boolean need_nofail = false; + + list<string> devs = part["using_devices"]:[dev]; + y2milestone("DefaultFstabOptions devs:%1", devs); + + list<string> usedby_devices = []; + if (LibStorage::StorageInterface::getRecursiveUsedBy(sint, devs, true, usedby_devices) == 0) { - any infos = LibStorage::DiskInfo::new("LibStorage::DiskInfo"); - string disk = LibStorage::ContVolInfo::swig_cdevice_get(dp); - y2milestone( "DefaultFstabOptions disk:%1", disk ); - integer r = LibStorage::StorageInterface::getDiskInfo(sint, disk, infos); - if( r==0 ) - { - integer t = LibStorage::DiskInfo::swig_transport_get(infos); - list<integer> hotpl = [ LibStorage::USB(), LibStorage::FCOE(), LibStorage::ISCSI() ]; - y2milestone( "DefaultFstabOptions transport:%1 list:%2", t, hotpl ); - if( contains( hotpl, t )) + // USB since those might actually not be present during boot + // iSCSI since the boot scripts need it + list<integer> hotplug_transports = [ LibStorage::USB(), LibStorage::ISCSI() ]; + + foreach (string usedby_device, usedby_devices, { + + any dp = LibStorage::ContVolInfo::new("LibStorage::ContVolInfo"); + if (LibStorage::StorageInterface::getContVolInfo(sint, usedby_device, dp) == 0 && + LibStorage::ContVolInfo::swig_ctype_get(dp) == LibStorage::DISK()) { - if( size(fst_default)>0 ) + string disk = LibStorage::ContVolInfo::swig_cdevice_get(dp); + any infos = LibStorage::DiskInfo::new("LibStorage::DiskInfo"); + if (LibStorage::StorageInterface::getDiskInfo(sint, disk, infos) == 0 && + contains(hotplug_transports, LibStorage::DiskInfo::swig_transport_get(infos))) + { + need_nofail = true; + } + } + }); + + if (need_nofail) + { + if (!isempty(fst_default)) fst_default = fst_default + ","; fst_default = fst_default + "nofail"; - } } } + } if( substring(fst_default,0,1)=="," ) fst_default = substring(fst_default,1); -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org