浏览代码

bug fix: edge case, no processes

Steve Nyemba 4 年之前
父节点
当前提交
de829d7ffe
共有 2 个文件被更改,包括 8 次插入5 次删除
  1. 1 1
      setup.py
  2. 7 4
      smart/top/__init__.py

+ 1 - 1
setup.py

@@ -7,7 +7,7 @@ def read(fname):
     return open(os.path.join(os.path.dirname(__file__), fname)).read() 
 args    = {
     "name":"smart-top",
-    "version":"1.0.2",
+    "version":"1.0.4",
     "author":"The Phi Technology LLC","author_email":"info@the-phi.com",
     "license":"MIT",
     "packages":["smart","smart.top","smart.folder","smart.logger"]}

+ 7 - 4
smart/top/__init__.py

@@ -74,6 +74,7 @@ def read(**args) :
         
         d = datetime.datetime.now().strftime('%m-%d-%Y')
         t = datetime.datetime.now().strftime('%H:%M:%S')
+        n = os.uname()[1]
         m = [item for item in m if len(item) != len (m[0])]
         m = "\n".join(m[1:])    
         df = pd.read_csv(StringIO(m),sep=xchar)
@@ -93,15 +94,17 @@ def read(**args) :
             r = pd.DataFrame()
             for name in names :
                 tmp = df[df.name == name.strip()]
-                if tmp.shape[0] :
-                    r = r.append(tmp)
+                if not tmp.shape[0] :
+                    tmp = {"pid":None,"user":None,"mem":0,"cpu":0,"status":"-100","started":None,"name":name,"cmd":None,"args":None,"date":d,"time":t,"node":n}
+                r = r.append(tmp)
+
         df = r
         #
         # For security reasons lets has the args columns with an MD5 or sha256
         #
         
-        
-        df.args = [hashlib.md5(str(value).encode('utf-8')).hexdigest() for value in df.args.tolist()]
+        if 'args' in df : 
+            df.args = [hashlib.md5(str(value).encode('utf-8')).hexdigest() for value in df.args.tolist()]
         STATUS = {'R':'RUNNING','Z':'DEAD','D':'STASIS','S':'SLEEP','Sl':'SLEEP','Ss':'SLEEP','W':'PAGING','T':'DEAD'}
         df.status = df.status.apply(lambda value: STATUS.get(value,'UNKNOWN'))
         if 'cols' in args :