Author: aschnell
Date: Sun Jun 22 23:25:11 2008
New Revision: 48483
URL: http://svn.opensuse.org/viewcvs/yast?rev=48483&view=rev
Log:
- work on "resizing" vgs and raids
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/include/ep-raid-dialogs.ycp
branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid.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=48483&r1=48482&r2=48483&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 Sun Jun 22 23:25:11 2008
@@ -12,8 +12,6 @@
{
y2milestone("MiniWorkflowStepVg data:%1", data);
- symbol mode = data["mode"]:`none;
-
string vgname = "";
integer pesize = 4*1024*1024;
list<string> pvs = [];
@@ -23,22 +21,19 @@
map target_map = Storage::GetTargetMap();
- list<map> all_pvs = filter(map pv, get_possible_pvs(target_map), { return pv["used_by"]:"" == ""; });
+ list<map> free_pvs = filter(map pv, get_possible_pvs(target_map), { return pv["used_by"]:"" == ""; });
term contents = `VBox();
- if (mode == `create)
- {
- list<term> pesizes_list = maplist(integer i, Integer::RangeFrom(19, 26), {
- return `item(`id(2 << i), Storage::ByteToHumanStringWithPrecision(2 << i, 2, true));
- });
+ list<term> pesizes_list = maplist(integer i, Integer::RangeFrom(19, 26), {
+ return `item(`id(2 << i), Storage::ByteToHumanStringWithPrecision(2 << i, 2, true));
+ });
- contents = add(contents, `Left(`InputField(`id("vgname"), "Volume Group Name")));
- contents = add(contents, `Left(`ComboBoxSelected(`id("pesize"), `opt(`editable), _("&Physical Extent Size"), pesizes_list, `id(pesize))));
- }
+ contents = add(contents, `Left(`InputField(`id("vgname"), "Volume Group Name")));
+ contents = add(contents, `Left(`ComboBoxSelected(`id("pesize"), `opt(`editable), _("&Physical Extent Size"), pesizes_list, `id(pesize))));
- contents = add(contents, DevicesSelectionBox::Create(all_pvs, [], fields,
+ contents = add(contents, DevicesSelectionBox::Create(free_pvs, [], fields,
_("Available Physical Volumes:"),
_("Selected Physical Volumes:")));
@@ -67,7 +62,7 @@
pesize = (integer) tmp;
pvs = maplist(map pv, DevicesSelectionBox::GetSelectedDevices(), {
- return pv["device"]:"";
+ return pv["device"]:"";
});
// TODO: checks
@@ -102,9 +97,71 @@
}
+ symbol MiniWorkflowStepResizeVg(map &data)
+ {
+ y2milestone("MiniWorkflowStepResizeVg data:%1", data);
+
+ string vgname = data["vgname"]:"error";
+ list<string> pvs = [];
+
+
+ list<symbol> fields = StorageSettings::FilterTable([ `device, `udev_path, `udev_id, `size ]);
+
+
+ map target_map = Storage::GetTargetMap();
+ list<map> free_pvs = filter(map pv, get_possible_pvs(target_map), { return pv["used_by"]:"" == ""; });
+ list<map> used_pvs = filter(map pv, get_possible_pvs(target_map), { return pv["used_by"]:"" == vgname; });
+
+
+ term contents = `VBox();
+
+ contents = add(contents, DevicesSelectionBox::Create(free_pvs, used_pvs, fields,
+ _("Available Physical Volumes:"),
+ _("Selected Physical Volumes:")));
+
+ MiniWorkflow::SetContents(Greasemonkey::Transform(contents), "help");
+
+ MiniWorkflow::SetLastStep(true);
+
+
+ symbol widget = nil;
+
+ repeat
+ {
+ widget = MiniWorkflow::UserInput();
+ DevicesSelectionBox::Handle(widget);
+
+ switch (widget)
+ {
+ case `next:
+ {
+ pvs = maplist(map pv, DevicesSelectionBox::GetSelectedDevices(), {
+ return pv["device"]:"";
+ });
+
+ // TODO: checks
+ }
+ break;
+ }
+ }
+ until (widget == `abort || widget == `back || widget == `next);
+
+ if (widget == `next)
+ {
+ data["pvs"] = pvs;
+
+ widget = `finish;
+ }
+
+ y2milestone("MiniWorkflowStepResizeVg data:%1 ret:%2", data, widget);
+
+ return widget;
+ }
+
+
void DlgCreateVolumeGroupNew()
{
- map data = $[ "mode" : `create ];
+ map data = $[];
map aliases = $[
"TheOne" : ``(MiniWorkflowStepVg(data))
@@ -128,19 +185,28 @@
}
- boolean DlgResizeVolumeGroup()
+ boolean DlgResizeVolumeGroup(string vgname)
{
- map data = $[ "mode" : `resize ];
+ map data = $[ "vgname" : vgname ];
map aliases = $[
- "TheOne" : ``(MiniWorkflowStepVg(data))
+ "TheOne" : ``(MiniWorkflowStepResizeVg(data))
];
map sequence = $[
"TheOne" : $[ `finish : `finish ]
];
- symbol widget = MiniWorkflow::Run(_("Add Volume Group"), lvm_icon, aliases, sequence, "TheOne");
+ symbol widget = MiniWorkflow::Run(_("Resize Volume Group"), lvm_icon, aliases, sequence, "TheOne");
+
+ if (widget == `finish)
+ {
+ if (true) // TODO
+ {
+ UpdateNavigationTree(nil);
+ TreePanel::Create();
+ }
+ }
return false;
}
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=48483&r1=48482&r2=48483&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 Sun Jun 22 23:25:11 2008
@@ -88,7 +88,7 @@
{
case `resize:
{
- DlgResizeVolumeGroup();
+ DlgResizeVolumeGroup(vgname);
break;
}
@@ -149,15 +149,15 @@
case `add:
DlgCreateLogicalVolume(substring(vg_device, 5));
break;
-
+
case `edit:
DlgEditLogicalVolume(lv_device);
break;
-
+
case `resize:
DlgResizeLogicalVolumeNew(lv_device);
break;
-
+
case `delete:
EpDeleteDevice(lv_device);
break;
Modified: branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid-dialogs.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid-dialogs.ycp?rev=48483&r1=48482&r2=48483&view=diff
==============================================================================
--- branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid-dialogs.ycp (original)
+++ branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid-dialogs.ycp Sun Jun 22 23:25:11 2008
@@ -21,7 +21,7 @@
map target_map = Storage::GetTargetMap();
- list<map> all_devices = filter(map device, get_possible_rds(target_map), { return device["used_by"]:"" == ""; });
+ list<map> free_devices = filter(map device, get_possible_rds(target_map), { return device["used_by"]:"" == ""; });
term contents = `VBox(
@@ -44,7 +44,7 @@
)))
);
- contents = add(contents, DevicesSelectionBox::Create(all_devices, [], fields,
+ contents = add(contents, DevicesSelectionBox::Create(free_devices, [], fields,
_("Available Devices:"),
_("Selected Devices:")));
@@ -135,6 +135,67 @@
}
+ symbol MiniWorkflowStepResizeRaid(map &data)
+ {
+ y2milestone("MiniWorkflowStepResizeRaid data:%1", data);
+
+ string device = data["device"]:"error";
+
+ list<string> devices = [];
+
+
+ list<symbol> fields = StorageSettings::FilterTable([ `device, `udev_path, `udev_id, `size ]);
+
+
+ map target_map = Storage::GetTargetMap();
+ list<map> free_devices = filter(map dev, get_possible_rds(target_map), { return dev["used_by"]:"" == ""; });
+ list<map> used_devices = filter(map dev, get_possible_rds(target_map), { return "/dev/" + dev["used_by"]:"" == device; });
+
+
+ term contents = `VBox();
+
+ contents = add(contents, DevicesSelectionBox::Create(free_devices, used_devices, fields,
+ _("Available Devices:"),
+ _("Selected Devices:")));
+
+ MiniWorkflow::SetContents(Greasemonkey::Transform(contents), "help");
+
+ MiniWorkflow::SetLastStep(false);
+
+
+ symbol widget = nil;
+
+ repeat
+ {
+ widget = MiniWorkflow::UserInput();
+ DevicesSelectionBox::Handle(widget);
+
+ switch (widget)
+ {
+ case `next:
+ {
+ devices = maplist(map device, DevicesSelectionBox::GetSelectedDevices(), {
+ return device["device"]:"";
+ });
+
+ // TODO: checks
+ }
+ break;
+ }
+ }
+ until (widget == `abort || widget == `back || widget == `next);
+
+ if (widget == `next)
+ {
+ data["devices"] = devices;
+ }
+
+ y2milestone("MiniWorkflowStepResizeRaid data:%1 ret:%2", data, widget);
+
+ return widget;
+ }
+
+
void DlgCreateRaidNew()
{
map data = $[];
@@ -169,4 +230,31 @@
TreePanel::Create();
}
}
+
+
+ boolean DlgResizeRaid(string device)
+ {
+ map data = $[ "device" : device ];
+
+ map aliases = $[
+ "TheOne" : ``(MiniWorkflowStepResizeRaid(data))
+ ];
+
+ map sequence = $[
+ "TheOne" : $[ `finish : `finish ]
+ ];
+
+ symbol widget = MiniWorkflow::Run(_("Resize RAID"), raid_icon, aliases, sequence, "TheOne");
+
+ if (widget == `finish)
+ {
+ if (true) // TODO
+ {
+ UpdateNavigationTree(nil);
+ TreePanel::Create();
+ }
+ }
+
+ return false;
+ }
}
Modified: branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid.ycp
URL: http://svn.opensuse.org/viewcvs/yast/branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid.ycp?rev=48483&r1=48482&r2=48483&view=diff
==============================================================================
--- branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid.ycp (original)
+++ branches/tmp/aschnell/part-redesign/storage/src/include/ep-raid.ycp Sun Jun 22 23:25:11 2008
@@ -67,7 +67,7 @@
list<symbol> fields = StorageSettings::FilterOverview([ `heading_device, `device, `size, `used_by,
`heading_md, `raid_type, `chunk_size,
- `heading_filesystem, `fs_type, `mount_point,
+ `heading_filesystem, `fs_type, `mount_point,
`mount_by, `uuid, `label, `encrypted ]);
UI::ReplaceWidget(`tab_panel,
@@ -76,6 +76,7 @@
StorageFields::Overview(fields, tg, part_device),
`HBox(
`PushButton(`id(`edit), _("Edit...")),
+ `PushButton(`id(`resize), _("Resize...")),
`PushButton(`id(`delete), _("Delete...")),
`HStretch()
)
@@ -92,7 +93,11 @@
{
case `edit:
break;
-
+
+ case `resize:
+ DlgResizeRaid(part_device);
+ break;
+
case `delete:
break;
}
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org