From 9322af8a4f2c2c020bd08d2932af463b7f76d329 Mon Sep 17 00:00:00 2001 From: fling Date: Sun, 17 Oct 2010 00:21:01 +0800 Subject: [PATCH] modified: ri_tk_cmd.py fix display index data of Mount.dict, top_windows, raid, etc. --- interface/ri_tk_cmd.py | 130 ++++++++++++++++------------------------- 1 file changed, 51 insertions(+), 79 deletions(-) diff --git a/interface/ri_tk_cmd.py b/interface/ri_tk_cmd.py index 072103c..9db87a8 100644 --- a/interface/ri_tk_cmd.py +++ b/interface/ri_tk_cmd.py @@ -38,29 +38,25 @@ def mount_list_modify(*args): def mp_top_init(): ''' mount dir top window initialize ''' ml_win = ri_widget.Widget.dict['mount.list'].tk_widget - idxs = ml_win.curselection() - key_sort_list=ri_data.MountPoint.dict.keys() - key_sort_list.sort() - if len(idxs) == 1: - idx = int(idxs[0]) - mp = ri_data.MountPoint.dict[key_sort_list[idx]] - dev = mp.device - dir = mp.directory - fs = mp.filesystem - fm = mp.format - sz = ri_data.Partition.dict.has_key(dev) and ri_data.Partition.dict[dev].size or ri_data.Raid.get_size(dev) - display.var_dict['mp_top_dev'].set(value=dev) - display.var_dict['mp_top_size'].set(value=sz) - display.var_dict['mp_top_dir'].set(value=dir) - if fm == 'yes': - ri_widget.Widget.dict['mp_top_format'].tk_widget.select() - else: - ri_widget.Widget.dict['mp_top_not_format'].tk_widget.select() + get_dev = ml_win.selection_get().split(' ')[0] + mp = ri_data.MountPoint.dict[get_dev] + dev = mp.device + dir = mp.directory + fs = mp.filesystem + fm = mp.format + sz = ri_data.Partition.dict.has_key(dev) and ri_data.Partition.dict[dev].size or ri_data.Raid.get_size(dev) + display.var_dict['mp_top_dev'].set(value=dev) + display.var_dict['mp_top_size'].set(value=sz) + display.var_dict['mp_top_dir'].set(value=dir) + if fm == 'yes': + ri_widget.Widget.dict['mp_top_format'].tk_widget.select() + else: + ri_widget.Widget.dict['mp_top_not_format'].tk_widget.select() - fs_values = eval(display.var_dict['mp_top_fs'].get()) - for i in range(len(fs_values)): - if fs == fs_values[i]: - ri_widget.Widget.dict['mp_top_fs'].tk_widget.selection_set(i) + fs_values = eval(display.var_dict['mp_top_fs'].get()) + for i in range(len(fs_values)): + if fs == fs_values[i]: + ri_widget.Widget.dict['mp_top_fs'].tk_widget.selection_set(i) def mp_top_ok(): ''' mount dir top window OK ''' @@ -75,13 +71,13 @@ def mp_top_ok(): fm = display.var_dict['mp_top_format'].get() idxs2 = ri_widget.Widget.dict['mp_top_fs'].tk_widget.curselection() for m in ri_data.Partition.dict.values(): - if m.device == dev2: - base_fs = m.filesystem + if m.device == dev2: + base_fs = m.filesystem if len(idxs2) and fm =='yes' : - idx2 = int(idxs2[0]) - fs = eval(display.var_dict['mp_top_fs'].get())[idx2] + idx2 = int(idxs2[0]) + fs = eval(display.var_dict['mp_top_fs'].get())[idx2] elif fm=='no': - fs = base_fs + fs = base_fs s2 = dev.ljust(10) + dir.ljust(10) + fs.ljust(10) + fm.ljust(4) + sz.ljust(6)+ri_data.Partition.unit l.append(s2) # make change in internal data structure @@ -283,6 +279,7 @@ def list_to_list(list_from, var_from, var_to): l_to.append(itm) else: l_to = [ itm ] + l_to.sort() display.var_dict[var_to].set(value=tuple(l_to)) def raid_raw_to_active(): @@ -303,31 +300,10 @@ def raid_spare_to_raw(): def raid_device_init(): ''' initialize raid device list ''' - raid_devs = [ r.device for r in ri_data.Raid.dict.values()] + raid_devs = [ d for d in ri_data.Raid.dict.keys()] + raid_devs.sort() display.var_dict['raid_devs'].set(value=tuple(raid_devs)) -def raid_calc_size(level, devs): - ''' calculate raid device size -level - raid level (0/1/5) -devs - raid component devices -''' - # all devs shall have same size. - unit=ri_data.Partition.unit - dev_size_list=[] - for p in ri_data.Partition.dict.values(): - if p.device in devs: - dev_size_list.append(float(p.size)) - dev_size_list.sort() - sz=float(dev_size_list[0]) - if level == '0': - sz=sz*len(devs) - return str(sz) - elif level == '1': - return str(sz) - elif level == '5': - sz=sz*(len(devs)-1) - return str(sz) - def raid_device_add(): ''' add a new raid device ''' if display.var_dict['raid_active_devs'].get()=='': @@ -365,40 +341,36 @@ def raid_device_add(): def raid_device_delete(): ''' delete a raid device, put its component devices into active/spare device list ''' win_dev = ri_widget.Widget.dict['raid_dev.list'].tk_widget - idxs = win_dev.curselection() - if len(idxs) == 1: - idx = int(idxs[0]) - r = ri_data.Raid.dict.values()[idx] - if r.from_os == 'yes': - ri_widget.MessageBox.dict["raid_delete_warning"].show() - return - if display.var_dict['raid_active_devs'].get() == '': - active=[] - else: - active = list(eval(display.var_dict['raid_active_devs'].get())) - if display.var_dict['raid_spare_devs'].get()=='': - spare=[] - else: - spare = list(eval(display.var_dict['raid_spare_devs'].get())) + get_dev=win_dev.selection_get() + r = ri_data.Raid.dict[get_dev] + if r.from_os == 'yes': + ri_widget.MessageBox.dict["raid_delete_warning"].show() + return + if display.var_dict['raid_active_devs'].get() == '': + active=[] + else: + active = list(eval(display.var_dict['raid_active_devs'].get())) + if display.var_dict['raid_spare_devs'].get()=='': + spare=[] + else: + spare = list(eval(display.var_dict['raid_spare_devs'].get())) - active.extend(r.active_components) - spare.extend(r.spare_components) - # do not touch level - display.var_dict['raid_active_devs'].set(value=tuple(active)) - display.var_dict['raid_spare_devs'].set(value=tuple(spare)) - del ri_data.Raid.dict.values()[idx] - raid_device_init() + active.extend(r.active_components) + spare.extend(r.spare_components) + # do not touch level + display.var_dict['raid_active_devs'].set(value=tuple(active)) + display.var_dict['raid_spare_devs'].set(value=tuple(spare)) + del ri_data.Raid.dict[get_dev] + raid_device_init() def raid_device_list_detail(*args): ''' show details of a raid device ''' win = ri_widget.Widget.dict['raid_dev.list'].tk_widget - idxs = win.curselection() - if len(idxs) == 1: - idx = int(idxs[0]) - r = ri_data.Raid.dict.values()[idx] - display.var_dict['raid_detail_active'].set(value='active: %s' %(str(r.active_components))) - display.var_dict['raid_detail_spare'].set(value='spare: %s' %(str(r.spare_components))) - display.var_dict['raid_detail_level'].set(value='level: %s' %(str(r.level))) + get_dev = win.selection_get() + r = ri_data.Raid.dict[get_dev] + display.var_dict['raid_detail_active'].set(value='active: %s' %(str(r.active_components))) + display.var_dict['raid_detail_spare'].set(value='spare: %s' %(str(r.spare_components))) + display.var_dict['raid_detail_level'].set(value='level: %s' %(str(r.level))) def install_information_init(): '''install information initialize'''