From 67ef638925ea01149d312ac21a09000b21c3b8fc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=A1=D0=B0=D0=BC=D0=BE=D1=83=D0=BA=D0=B8=D0=BD=20=D0=90?= =?UTF-8?q?=D0=BB=D0=B5=D0=BA=D1=81=D0=B5=D0=B9?= Date: Tue, 22 Jun 2010 11:48:39 +0400 Subject: [PATCH] Added os_net_interfaces --- pym/cl_datavars.py | 3 ++- pym/cl_fill.py | 19 +++++++++++++------ pym/cl_overriding.py | 4 ++-- pym/cl_string.py | 7 ++++--- pym/cl_vars.py | 3 +++ 5 files changed, 24 insertions(+), 12 deletions(-) diff --git a/pym/cl_datavars.py b/pym/cl_datavars.py index 27a35b2..51bdbcf 100644 --- a/pym/cl_datavars.py +++ b/pym/cl_datavars.py @@ -621,13 +621,14 @@ storage of variables templates")%location) br = cl_utils.fillstr("-",mlen_name) + " " +\ cl_utils.fillstr("-",mlen_mode) + " " + cl_utils.fillstr("-",10) cl_overriding.printSUCCESS(_("The list of variables:")) - cl_overriding.printSUCCESS(_("var name").center(mlen_name)+ " " +\ + cl_overriding.printSUCCESS(_("Variable name").center(mlen_name)+ " " +\ _("Mode") + " " +_("Value")) cl_overriding.printSUCCESS(br) for i in plist: p_val=var[i].value if var[i].official: continue + #print ( i, mlen_name, var[i].mode.lower(), mlen_mode, p_val) columnWrite( i, mlen_name, var[i].mode.lower(), mlen_mode, p_val) cl_overriding.printSUCCESS(br) diff --git a/pym/cl_fill.py b/pym/cl_fill.py index b79b7ae..f0cdf51 100644 --- a/pym/cl_fill.py +++ b/pym/cl_fill.py @@ -204,11 +204,14 @@ class clLocale: else: return langs[0] -def getdirlist(s_path): +def getDirList(path): #Получить список директорий по указаному пути - fdir=filecmp.dircmp(s_path, s_path) - dir_list=fdir.common_dirs - return dir_list + dirs = [] + if os.path.exists(path): + dirs = filter(lambda x: os.path.isdir(os.path.join(path,x)), + os.listdir(path)) + return dirs + class fillVars(glob_attr): @@ -348,7 +351,7 @@ class fillVars(glob_attr): def get_os_net_ip(self): """все ip компьютера, разделитель запятая""" IPs = [] - netInterfaces=getdirlist("/sys/class/net/") + netInterfaces=self.Get("os_net_interfaces") for i in netInterfaces: res = self._runos("/sbin/ifconfig %s"%i) if not res: @@ -361,6 +364,10 @@ class fillVars(glob_attr): IPs.append(ip) return ",".join(IPs) + def get_os_net_interfaces(self): + """Существующие сетевые интерфейсы""" + return filter(lambda x: x!="lo", getDirList("/sys/class/net")) + # Разрешенные сети (в данном случае все сети) def get_os_net_allow(self): """Разрешенные сети разделитель запятая""" @@ -383,7 +390,7 @@ class fillVars(glob_attr): %(x>>24, x>>16&255, x>>8&255, x&255, nMask(maskNumb)) networks=[] - netInterfaces=getdirlist("/sys/class/net/") + netInterfaces=self.Get("os_net_interfaces") flagError = False for i in netInterfaces: res = self._runos("/sbin/ifconfig %s"%i) diff --git a/pym/cl_overriding.py b/pym/cl_overriding.py index 0ace480..ab35b15 100644 --- a/pym/cl_overriding.py +++ b/pym/cl_overriding.py @@ -59,7 +59,7 @@ def exit(codeExit): def printERROR(errMessage): """Вывод ошибки""" - if errMessage: + if errMessage or errMessage=="": if type(errMessage)!=str: errMessage = str(errMessage) errMessage += "\n" @@ -68,7 +68,7 @@ def printERROR(errMessage): def printSUCCESS(message,printBR=True): """Вывод сообщения о успехе""" - if message: + if message or message=="": if type(message)!=str: message = str(message) if printBR: diff --git a/pym/cl_string.py b/pym/cl_string.py index ba6488a..44eaf02 100644 --- a/pym/cl_string.py +++ b/pym/cl_string.py @@ -204,12 +204,13 @@ def columnWrite(*cols): # если это последний параметр, и для него не указана ширина if q == len(cols)-1: # выводим его полностью несмотря на ширину окна - cl_overriding.printSUCCESS(cols[q].encode('utf8'),printBR=False) + cl_overriding.printSUCCESS(cols[q].encode('utf8'), + printBR=False) cols[q] = '' else: # вывести часть строки не больше указанной ширины колонки cl_overriding.printSUCCESS(\ - (cols[q][:cols[q+1]].ljust(cols[q+1])).encode('utf8'),\ + (cols[q][:cols[q+1]].ljust(cols[q+1])).encode('utf8') + " ", printBR=False) # остальную часть строки оставить на следующую итерацию cols[q] = cols[q][cols[q+1]:] @@ -220,7 +221,7 @@ def columnWrite(*cols): # следующая пара q += 2 # колонки отображены - print + cl_overriding.printSUCCESS('') def justify(s,width): '''Выровнить текст по ширине diff --git a/pym/cl_vars.py b/pym/cl_vars.py index cff41bc..c69b7f8 100644 --- a/pym/cl_vars.py +++ b/pym/cl_vars.py @@ -32,6 +32,9 @@ class Data: # ip на всех интерфейсах os_net_ip ={} + # Существующие сетевые интерфейсы + os_net_interfaces={'official':True} + #короткое название системы (CLD) os_linux_shortname={}