diff --git a/python/mine/ri_cmd.py b/python/mine/ri_cmd.py
index 1e60ef8..59eab62 100644
--- a/python/mine/ri_cmd.py
+++ b/python/mine/ri_cmd.py
@@ -53,6 +53,9 @@ def mount_list_init():
for m in ri_data.MountPoint.list:
# get size from Partition info
sz = ri_data.Partition.get_size(m.device)
+ if not sz:
+ sz = ri_data.Raid.get_size(m.device)
+ print m.device, m.directory, m.filesystem, m.format, sz
s = m.device.ljust(10) + m.directory.ljust(10) + m.filesystem.ljust(10) + m.format.ljust(4) + sz.ljust(6)
l.append(s)
display.var_dict['mount.list'].set(value=tuple([str(i) for i in l]))
diff --git a/python/mine/ri_data.py b/python/mine/ri_data.py
index 4cdeb0b..49db81c 100644
--- a/python/mine/ri_data.py
+++ b/python/mine/ri_data.py
@@ -120,10 +120,11 @@ p_node - xml node (parent node)'''
class Raid:
''' raid information '''
list = []
- def __init__(self, raid_dev, raid_type, raw_devs):
+ def __init__(self, raid_dev, raid_type, raid_size, raw_devs):
''' Raid init function '''
self.raid_device = raid_dev
self.raid_type = raid_type
+ self.raid_size = raid_size
self.raw_devices = raw_devs
Raid.list.append(self)
@@ -149,7 +150,7 @@ class Raid:
raw_devs =[]
for ss in dev_res[3].split():
raw_devs.append(ss[:ss.index('[')])
- Raid(raid_dev, raid_type, raw_devs)
+ Raid(raid_dev, raid_type, '-1', raw_devs)
@staticmethod
def init_from_xml(node):
@@ -158,11 +159,12 @@ class Raid:
if e.nodeType == e.ELEMENT_NODE and e.nodeName == 'raid':
raid_dev = e.attributes['raid-device'].value
raid_type = e.attributes['raid-type'].value
+ raid_size = e.attributes['raid-size'].value
raw_devs = []
for sub_e in e.childNodes:
if sub_e.nodeType == sub_e.ELEMENT_NODE and sub_e.nodeName == 'raw-device':
raw_devs.append(sub_e.firstChild.data.encode('ascii'))
- Raid(raid_dev, raid_type, raw_devs)
+ Raid(raid_dev, raid_type, raid_size, raw_devs)
@staticmethod
def to_xml(doc, p_node):
@@ -181,6 +183,10 @@ p_node - xml node (parent node) '''
rd_type_attr.value = r.raid_type
rd.setAttributeNode(rd_type_attr)
+ rd_size_attr = doc.createAttribute('raid-size')
+ rd_size_attr.value = r.raid_size
+ rd.setAttributeNode(rd_size_attr)
+
for raw_dev in r.raw_devices:
raw_dev_e = doc.createElement('raw-device')
raw_dev_tn = doc.createTextNode(raw_dev)
@@ -190,7 +196,13 @@ p_node - xml node (parent node) '''
raids.appendChild(rd)
p_node.appendChild(raids)
-
+
+ @staticmethod
+ def get_size(dev):
+ for r in Raid.list:
+ if r.raid_device == dev:
+ return r.raid_size
+
class MountPoint:
''' mount-points '''
list=[]
diff --git a/python/mine/ri_tk.py b/python/mine/ri_tk.py
index 7959272..75c6ed4 100644
--- a/python/mine/ri_tk.py
+++ b/python/mine/ri_tk.py
@@ -118,8 +118,22 @@ def create_widget_sub(w, p_win):
return w_win
+# When creating widget, I have to create each sub widget.
+# while destroying a widget, only destroy one. Tk functions will
+# destroy all descendant.
+# so init is a little different from quit.
+def process_action_quit(w):
+ ''' process action quit '''
+ if 'action' in dir(w) and 'quit' in w.action.dict:
+ getattr(sys.modules['ri_cmd'], w.action.dict['quit'])()
+
+ if 'widgets' in dir(w):
+ for sub_w in w.widgets:
+ process_action_quit(sub_w)
+
def destroy_widget(w):
''' w - Widget instance '''
+ process_action_quit(w)
w.tk_widget.destroy()
def create_message_box(w):
diff --git a/python/mine/ri_widget.py b/python/mine/ri_widget.py
index 144fc50..ce4ba81 100644
--- a/python/mine/ri_widget.py
+++ b/python/mine/ri_widget.py
@@ -92,21 +92,7 @@ class Widget:
Widget.current_widget = self
display.create_widget(self)
- # When creating widget, I have to create each sub widget.
- # while destroying a widget, only destroy one. Tk functions will
- # destroy all descendant.
- # so init is a little different from quit.
- def process_action_quit(self):
- ''' process action quit '''
- if 'action' in dir(self) and 'quit' in self.action.dict:
- getattr(sys.modules['ri_cmd'], self.action.dict['quit'])()
-
- if 'widgets' in dir(self):
- for sub_w in self.widgets:
- sub_w.process_action_quit()
-
def hide(self):
- self.process_action_quit()
display.destroy_widget(self)
class MessageBox:
diff --git a/python/mine/test.py b/python/mine/test.py
index ad55cf1..845e98f 100644
--- a/python/mine/test.py
+++ b/python/mine/test.py
@@ -35,8 +35,8 @@ else:
xmldoc = minidom.parse(itf_xml)
ri_data.install_xml = ins_xml
-ri_data.init_from_xml()
-#ri_data.init()
+#ri_data.init_from_xml()
+ri_data.init()
ri_widget.construct(xmldoc.firstChild)
ri_seq.construct(xmldoc.firstChild)
diff --git a/xml/install_ng.xml b/xml/install_ng.xml
index 7b6435f..321983f 100644
--- a/xml/install_ng.xml
+++ b/xml/install_ng.xml
@@ -49,6 +49,7 @@
raid5
+