modified: ri_data.py
add mothod of Raid.get_size
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
#!/usr/bin/python
|
||||
|
||||
import re
|
||||
import sys
|
||||
import commands
|
||||
from xml.dom import minidom
|
||||
from xml.dom.ext import PrettyPrint
|
||||
from ri_tk_cmd import raid_calc_size
|
||||
|
||||
# xml file names
|
||||
install_xml = '../xml/install.xml'
|
||||
@@ -49,15 +49,14 @@ class Partition:
|
||||
self.size = sz
|
||||
self.type = tp
|
||||
self.filesystem = fs
|
||||
self.flags = fg
|
||||
self.israid = fg
|
||||
self.from_os = fr
|
||||
Partition.dict[dev] = self
|
||||
|
||||
@staticmethod
|
||||
def init_from_os():
|
||||
''' create a Partition instance from hardware info'''
|
||||
device_list=[]
|
||||
Partition.unit='GB'
|
||||
Partition.unit='MB'
|
||||
cmd_cat = 'cat /proc/partitions'
|
||||
|
||||
st,o = commands.getstatusoutput(cmd_cat)
|
||||
@@ -123,10 +122,10 @@ class Partition:
|
||||
s[sz_i:tp_i].strip().rstrip(Partition.unit), # size
|
||||
s[tp_i:fs_i].strip(), # type
|
||||
re.search('swap', s[fs_i:flg_i]) and 'swap' or s[fs_i:flg_i].strip(), # file system
|
||||
re.search('raid',s[flg_i:]) and 'yes' or 'no' # flags
|
||||
re.search('raid',s[flg_i:]) and 'yes' or 'no', # flags
|
||||
"yes" #from os
|
||||
)
|
||||
|
||||
|
||||
@staticmethod
|
||||
def init_from_xml(node):
|
||||
''' create Partition instances from xml node '''
|
||||
@@ -138,7 +137,7 @@ class Partition:
|
||||
p.attributes['size'].value.encode('ascii'),\
|
||||
p.attributes['type'].value.encode('ascii'),\
|
||||
p.attributes['file-system'].value.encode('ascii'),\
|
||||
p.attributes['flags'].value.encode('ascii'),\
|
||||
p.attributes['israid'].value.encode('ascii'),\
|
||||
p.attributes['from_os'].value.encode('ascii'))
|
||||
|
||||
|
||||
@@ -158,28 +157,30 @@ p_node - xml node (parent node)'''
|
||||
size_attr = doc.createAttribute('size')
|
||||
type_attr = doc.createAttribute('type')
|
||||
fs_attr = doc.createAttribute('file-system')
|
||||
flags_attr = doc.createAttribute('flags')
|
||||
israid_attr = doc.createAttribute('israid')
|
||||
from_attr = doc.createAttribute('from_os')
|
||||
dev_attr.value = p.device
|
||||
start_attr.value = p.start
|
||||
size_attr.value = p.size
|
||||
type_attr.value = p.type
|
||||
fs_attr.value = p.filesystem
|
||||
flags_attr.value = p.flags
|
||||
israid_attr.value = p.israid
|
||||
from_attr.value = p.from_os
|
||||
pt.setAttributeNode(dev_attr)
|
||||
pt.setAttributeNode(start_attr)
|
||||
pt.setAttributeNode(size_attr)
|
||||
pt.setAttributeNode(type_attr)
|
||||
pt.setAttributeNode(fs_attr)
|
||||
pt.setAttributeNode(flags_attr)
|
||||
pt.setAttributeNode(israid_attr)
|
||||
pt.setAttributeNode(from_attr)
|
||||
pts.appendChild(pt)
|
||||
p_node.appendChild(pts)
|
||||
# ri_tk_cmd.py use
|
||||
@staticmethod
|
||||
def get_size(dev):
|
||||
return Partition.dict[dev].size
|
||||
if Partition.dict.has_key(dev):
|
||||
return Partition.dict[dev].size
|
||||
return
|
||||
|
||||
class Raid:
|
||||
''' raid information '''
|
||||
@@ -292,9 +293,20 @@ p_node - xml node (parent node) '''
|
||||
#ri_tk_cmd.py use
|
||||
@staticmethod
|
||||
def get_size(dev):
|
||||
active=Raid.dict[dev].active
|
||||
sz=sys.maxint
|
||||
level=Raid.dict[dev].level
|
||||
return raid_calc_size(level,active)
|
||||
active=Raid.dict[dev].active_components
|
||||
for d in active:
|
||||
if float(Partition.dict[d].size) < float(sz):
|
||||
sz=float(Partition.dict[d].size)
|
||||
if level == '0':
|
||||
sz=sz*len(active)
|
||||
return str(sz)
|
||||
elif level == '1':
|
||||
return str(sz)
|
||||
elif level == '5':
|
||||
sz=sz*(len(active)-1)
|
||||
return str(sz)
|
||||
|
||||
@staticmethod
|
||||
def get_next_device():
|
||||
@@ -353,6 +365,8 @@ class MountPoint:
|
||||
for dev in s1-s2:
|
||||
del MountPoint.dict[dev]
|
||||
|
||||
#MountPoint.dict.keys().sort()
|
||||
#print "keys=",MountPoint.dict.keys()
|
||||
|
||||
@staticmethod
|
||||
def init_from_xml(node):
|
||||
|
||||
Reference in New Issue
Block a user