Author: aschnell Date: Fri Jul 11 16:06:43 2008 New Revision: 49003 URL: http://svn.opensuse.org/viewcvs/yast?rev=49003&view=rev Log: - make add/remove functions take list of devices Modified: branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm-lib.ycp branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid-lib.ycp Modified: branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm-lib.ycp URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm-lib.ycp?rev=49003&r1=49002&r2=49003&view=diff ============================================================================== --- branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm-lib.ycp (original) +++ branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm-lib.ycp Fri Jul 11 16:06:43 2008 @@ -8,18 +8,30 @@ textdomain "storage"; - boolean AddPv(string id, string current_vg) + boolean AddPvs(string vg_name, list<string> devs) { - Storage::SetPartitionId( id, Partitions::fsid_lvm ); - Storage::SetPartitionFormat(id, false, `none); - return Storage::ExtendLvmVg( current_vg, id ); + boolean ret = true; + + foreach(string dev, devs, { + Storage::SetPartitionId(dev, Partitions::fsid_lvm); + Storage::SetPartitionFormat(dev, false, `none); + ret = ret && Storage::ExtendLvmVg(vg_name, dev); + }); + + return ret; } - boolean RemovePv(string id, string current_vg) + boolean RemovePvs(string vg_name, list<string> devs) { - Storage::UnchangePartitionId( id ); - return Storage::ReduceLvmVg( current_vg, id ); + boolean ret = true; + + foreach(string dev, devs, { + Storage::UnchangePartitionId(dev); + ret = ret && Storage::ReduceLvmVg(vg_name, dev); + }); + + return ret; } @@ -46,9 +58,7 @@ if (Storage::CreateLvmVgWithDevs(vg_name, pe_size, true, [])) { list<string> devices = data["devices"]:[]; - foreach(string device, devices, { - AddPv(device, vg_name); - }); + AddPvs(vg_name, devices); UpdateNavigationTree(nil); TreePanel::Create(); @@ -83,16 +93,12 @@ if (size(devices_added) > 0 || size(devices_removed) > 0) { - foreach(string dev, devices_added, { - AddPv(dev, vgname); - }); - - foreach(string dev, devices_removed, { - RemovePv(dev, vgname); - // TODO: handle error - }); + AddPvs(vgname, devices_added); - data["devices"] = devices_new; + if (!RemovePvs(vgname, devices_removed)) + { + Error(_("Failed to remove some physical devices. TODO")); + } UpdateNavigationTree(nil); TreePanel::Create(); Modified: branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid-lib.ycp URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid-lib.ycp?rev=49003&r1=49002&r2=49003&view=diff ============================================================================== --- branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid-lib.ycp (original) +++ branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid-lib.ycp Fri Jul 11 16:06:43 2008 @@ -8,18 +8,30 @@ textdomain "storage"; - boolean AddDevice(integer raid_nr, string dev) + boolean AddDevices(integer raid_nr, list<string> devs) { - Storage::SetPartitionId(dev, Partitions::fsid_raid); - Storage::SetPartitionFormat(dev, false, `none); - return Storage::ExtendMd(raid_nr, dev); + boolean ret = true; + + foreach(string dev, devs, { + Storage::SetPartitionId(dev, Partitions::fsid_raid); + Storage::SetPartitionFormat(dev, false, `none); + ret = ret && Storage::ExtendMd(raid_nr, dev); + }); + + return ret; } - boolean RemoveDevice(integer raid_nr, string dev) + boolean RemoveDevices(integer raid_nr, list<string> devs) { - Storage::UnchangePartitionId(dev); - return Storage::ShrinkMd(raid_nr, dev); + boolean ret = true; + + foreach(string dev, devs, { + Storage::UnchangePartitionId(dev); + ret = ret && Storage::ShrinkMd(raid_nr, dev); + }); + + return ret; } @@ -51,9 +63,7 @@ if (Storage::CreateMdWithDevs(nr, raid_type, [])) { list<string> devices = data["devices"]:[]; - foreach(string dev, devices, { - AddDevice(nr, dev); - }); + AddDevices(nr, devices); integer chunk_size_k = data["chunk_size_k"]:4; Storage::ChangeMdChunk(nr, chunk_size_k); @@ -139,13 +149,12 @@ if (size(devices_added) > 0 || size(devices_removed) > 0) { - foreach(string dev, devices_added, { - AddDevice(raid_nr, dev); - }); - - foreach(string dev, devices_removed, { - RemoveDevice(raid_nr, dev); - }); + AddDevices(raid_nr, devices_added); + + if (!RemoveDevices(raid_nr, devices_removed)) + { + Error(_("Failed to remove some devices. TODO")); + } UpdateNavigationTree(nil); TreePanel::Create(); -- To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org For additional commands, e-mail: yast-commit+help@opensuse.org