Author: aschnell
Date: Tue Feb 19 17:44:46 2008
New Revision: 44651
URL: http://svn.opensuse.org/viewcvs/yast?rev=44651&view=rev
Log:
- added creation of volume groups
Modified:
branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm-dialogs.ycp
branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm.ycp
branches/tmp/aschnell/part-redesign/storage/src/modules/Storage.ycp
Modified: branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm-dialogs.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm-dialogs.ycp?rev=44651&r1=44650&r2=44651&view=diff
==============================================================================
--- branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm-dialogs.ycp (original)
+++ branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm-dialogs.ycp Tue Feb 19 17:44:46 2008
@@ -12,14 +12,13 @@
import "DualMultiSelectionBox";
- void hoho()
+ void DlgCreateVolumeGroupNew()
{
map tg = Storage::GetTargetMap();
list<map> candidates = get_possible_pvs(tg);
-
candidates = filter(map candidate, candidates, { return candidate["used_by"]:"" == ""; });
- list<term> unused_candidates = maplist(map candidate, candidates, {
+ list<term> candidates_list = maplist(map candidate, candidates, {
string device = candidate["device"]:"";
return `item(`id(device), device);
});
@@ -31,7 +30,7 @@
`InputField(`id("vgname"), "Volume Group Name:"),
`InputField(`id("pesize"), _("&Physical Extent Size:"), "4M"),
`CheckBox(`id("lvm1"), _("Use &Old LVM1 Compatible Metadata Format"), false),
- DualMultiSelectionBox::Create(unused_candidates),
+ DualMultiSelectionBox::Create(candidates_list),
`HBox(
`PushButton(`id(`help), "Help"),
`HStretch(),
@@ -41,17 +40,43 @@
)
);
+ string vgname = "";
+ string pesize = "";
+ boolean old_metadata = false;
+ list<string> pvs = [];
+
any widget = nil;
repeat
{
widget = UI::UserInput();
DualMultiSelectionBox::Handle(widget);
+
+ if (widget == `ok)
+ {
+ vgname = deletechars((string) UI::QueryWidget(`id("vgname"), `Value), " \t");
+ pesize = (string) UI::QueryWidget(`id("pesize"), `Value);
+ old_metadata = (boolean) UI::QueryWidget(`id("lvm1"), `Value);
+
+ list<term> tmp1 = DualMultiSelectionBox::GetSelectedItems();
+ list<map> candidates_selected = filter(map candidate, candidates, {
+ any id = `id(candidate["device"]:"");
+ return find (term t, tmp1, { return t[0]:nil == id; }) != nil;
+ });
+ pvs = maplist(map candidate, candidates, { return candidate["device"]:""; });
+
+ // TODO: checks
+ }
}
until (widget == `cancel || widget == `ok);
- y2milestone("haha %1", DualMultiSelectionBox::GetSelectedItems());
-
UI::CloseDialog();
+
+ if (widget == `ok)
+ {
+ Storage::CreateLvmVgWithDevs(vgname, pesize_str_to_byte (pesize), !old_metadata, pvs);
+ // TODO: update tree (with focus)
+ UpdateNavigationTree();
+ }
}
}
Modified: branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm.ycp?rev=44651&r1=44650&r2=44651&view=diff
==============================================================================
--- branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm.ycp (original)
+++ branches/tmp/aschnell/part-redesign/storage/src/include/ep-lvm.ycp Tue Feb 19 17:44:46 2008
@@ -8,9 +8,9 @@
{
textdomain "storage";
-
+
include "partitioning/ep-lvm-dialogs.ycp";
-
+
void CreateLvmPanel(any user_data)
{
@@ -34,7 +34,7 @@
{
if (widget == `create_vg)
{
- hoho();
+ DlgCreateVolumeGroupNew();
}
}
@@ -110,7 +110,6 @@
map tg = Storage::GetTargetMap();
map disk = tg[device]:$[];
- list pvs = disk["devices"]:[];
symbol predicate(map disk, map partition)
{
@@ -120,7 +119,7 @@
}
else
{
- if (contains(pvs, partition["device"]:""))
+ if ("/dev/" + partition["used_by"]:"" == device)
return `show;
else
return `ignore;
Modified: branches/tmp/aschnell/part-redesign/storage/src/modules/Storage.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/aschnell/part-redesign/storage/src/modules/Storage.ycp?rev=44651&r1=44650&r2=44651&view=diff
==============================================================================
--- branches/tmp/aschnell/part-redesign/storage/src/modules/Storage.ycp (original)
+++ branches/tmp/aschnell/part-redesign/storage/src/modules/Storage.ycp Tue Feb 19 17:44:46 2008
@@ -2806,6 +2806,18 @@
return( ret==0 );
}
+global boolean CreateLvmVgWithDevs( string name, integer pesize, boolean lvm2, list<string> devs )
+ {
+ y2milestone( "CreateLvmVgWithDevs name:%1 pesize:%2 lvm2:%3 devs:%4", name, pesize, lvm2, devs );
+ integer ret = 0;
+ ret = LibStorage::StorageInterface::createLvmVg( sint, name, pesize/1024,
+ !lvm2, devs );
+ if( ret<0 )
+ y2error( "CreateLvmVgWithDevs sint ret:%1", ret );
+ UpdateTargetMap();
+ return( ret==0 );
+ }
+
global boolean ExtendLvmVg( string name, string device )
{
y2milestone( "ExtendLvmVg name:%1 device:%2", name, device );
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org