Fix udev monitor running

master3.3
Mike Hiretsky 12 years ago
parent 501cdeb951
commit 28b4f0ba30

@ -89,7 +89,6 @@ class cltCopy(scanDirectory):
if not path.exists(targetDir):
os.makedirs(targetDir)
copy2(pathname,pathJoin(self.target,pathname))
print "Copy",pathname,pathJoin(self.target,pathname)
except Exception,e:
raise InstallError(_("Failed to copy '%(src)s' to '%(dst)s'")%
{'src':pathname,'dst':pathJoin(self.target,pathname)})

@ -104,8 +104,8 @@ class catchExcept:
default = 'color:red;',
element = "error"))
view.groups.append(group)
for i in apply(traceback.format_exception, sys.exc_info()):
print i
#for i in apply(traceback.format_exception, sys.exc_info()):
# print i
return view
class Wsdl:
@ -332,7 +332,6 @@ class Wsdl:
"""
Setup network
"""
print "OINRD",info.os_install_net_route_data
return self.installCommon(sid,info,'configure_network',
self.configure_network_vars,
installFunc="setupSystem")

@ -104,6 +104,9 @@ class VariableOsDeviceDev(ReadonlyVariable,DeviceHelper):
master = None
def init(self):
pass
def get(self):
"""Get device /dev name"""
if self.master is None:
self.master,slave = pty.openpty()
self.monitor = Popen(["/sbin/udevadm","monitor","--kernel",
@ -113,8 +116,6 @@ class VariableOsDeviceDev(ReadonlyVariable,DeviceHelper):
fl = fcntl.fcntl(self.master,fcntl.F_GETFL)
fcntl.fcntl(self.master, fcntl.F_SETFL, fl | os.O_NONBLOCK)
def get(self):
"""Get device /dev name"""
def _getDiskName(devpath):
"""Get devname only for by udevadm that devpath is device (disk)"""
prop = getUdevDeviceInfo(devpath)
@ -132,21 +133,23 @@ class VariableOsDeviceDev(ReadonlyVariable,DeviceHelper):
def close(self):
try:
self.monitor.kill()
self.monitor.wait()
if self.monitor:
self.monitor.kill()
self.monitor.wait()
except:
pass
def refresh(self):
try:
res = os.read(self.master,65535)
if res:
while len(res) == 65535:
res = os.read(self.master,65535)
self.parent.Invalidate(self.name)
self.parent.Invalidate('os_install_disk_uuid')
self.parent.Invalidate('os_disk_dev')
getUdevDeviceInfo.clearCache()
if self.monitor:
res = os.read(self.master,65535)
if res:
while len(res) == 65535:
res = os.read(self.master,65535)
self.parent.Invalidate(self.name)
self.parent.Invalidate('os_install_disk_uuid')
self.parent.Invalidate('os_disk_dev')
getUdevDeviceInfo.clearCache()
except OSError as e:
pass

Loading…
Cancel
Save