Changeset 6622


Ignore:
Timestamp:
Jan 17, 2018, 5:25:29 PM (21 months ago)
Author:
kbut
Message:

Fix timeout. Clean code

Location:
admin-center/trunk/fuentes/admin-center.install/usr/share
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • admin-center/trunk/fuentes/admin-center.install/usr/share/admin-center/lib/utils.js

    r4734 r6622  
    470470
    471471
    472 UtilsClass.prototype.n4dSecure=function n4dSecure(credentials, n4dclass, n4dmethod, arglist, callback, timeout=1){
     472UtilsClass.prototype.n4dSecure=function n4dSecure(credentials, n4dclass, n4dmethod, arglist, callback, timeout=10){
    473473   var self=this;
    474474
     
    547547
    548548
    549 UtilsClass.prototype.n4d=function n4d(credentials, n4dclass, n4dmethod, arglist, callback, timeout=1){
     549UtilsClass.prototype.n4d=function n4d(credentials, n4dclass, n4dmethod, arglist, callback, timeout=10){
    550550   var self=this;
    551551
  • admin-center/trunk/fuentes/admin-center.install/usr/share/admin-center/n4d.php

    r6116 r6622  
    7474           
    7575      curl_close($ch);
    76      
    77       if ((gettype($ch)!="unknown type")&&curl_errno($ch)) {
    78         $xml_snippet=simplexml_load_string($data);
    79         $json=json_encode($xml_snippet);
    80         echo (AESEncrypt($json));
    81       } else {
    82           $xmlobj=xmlrpc_decode($data);
    83           if (gettype($xmlobj)=="string") error_log($xmlobj);
    84          
    85           $json=json_encode($xmlobj);
    86           if ($json=="") {
    87             $json=$xmlobj;}
    88             # Store in session user groups
    89             if ($method=="validate_user")
    90               $_SESSION['groups']=$xmlobj[1];
    91              
     76      $request_error = curl_errno($ch);
     77      if( $request_error > 0 ){
     78        echo(AESEncrypt(json_encode(array('status'=> False, 'msg' => 'Curl error ' . strval($request_error)))));
     79      }
     80      else{
     81        if ( (gettype($ch)!="unknown type") && $request_error ) {
     82          $xml_snippet=simplexml_load_string($data);
     83          $json=json_encode($xml_snippet);
    9284          echo (AESEncrypt($json));
     85        }
     86        else {
     87            $xmlobj=xmlrpc_decode($data);
     88            if (gettype($xmlobj)=="string") error_log($xmlobj);
     89           
     90            $json=json_encode($xmlobj);
     91            if ($json=="") {
     92              $json=$xmlobj;}
     93              # Store in session user groups
     94              if ($method=="validate_user")
     95                $_SESSION['groups']=$xmlobj[1];
     96               
     97            echo (AESEncrypt($json));
     98        }
    9399      }
    94100  } catch (Exception $e){
    95101    error_log("$e->getMessage()");
    96     echo 'FATAL exception: ',  $e->getMessage(), "\n";
     102    echo(AESEncrypt(json_encode(array('status'=> False, 'msg' => $e->getMessage()))));
    97103    } 
    98104}
  • admin-center/trunk/fuentes/admin-center.install/usr/share/n4d/python-plugins/TaskMan.py

    r2002 r6622  
    55import websocket
    66
    7 #import threading
    8 #import tempfile
     7import threading
     8import tempfile
    99
    1010import os
     
    1212import shutil
    1313import ntpath
    14 
    15 
    1614
    1715class TaskMan():
     
    2321    '''
    2422    def __init__(self):
    25         self.tasks={};                              # Task Dictionary
    26         self.wsManager=WSManager();                 # Websocket manager (server)
    27         self.ws=websocket.WebSocket();                  # websocket client (for write)
    28         self.port=self.wsManager.getWs()["wsport"];     # Getting websocket port
    29         self.ws.connect("ws://127.0.0.1:"+str(self.port));   #  "One websocket to dominate all" (Lord of the WebSockets)
    30        
    31    
     23        self.tasks={}                              # Task Dictionary
     24        self.wsManager=WSManager()                 # Websocket manager (server)
     25        self.ws=websocket.WebSocket()                  # websocket client (for write)
     26        self.port=self.wsManager.getWs()["wsport"]     # Getting websocket port
     27        self.ws.connect("ws://127.0.0.1:"+str(self.port))   #  "One websocket to dominate all" (Lord of the WebSockets)
     28
    3229    def getWS(self):
    3330        try:
    3431            if(self.port):
    35                 return {'status':True, 'ws':'ws://127.0.0.1:'+str(self.port)};
     32                return {'status':True, 'ws':'ws://127.0.0.1:'+str(self.port)}
    3633            else:
    3734                return {'status':False, 'msg':'self.port does not exists'}
     
    4239   
    4340
    44     def newTask(self, command):
     41    def newTask(self, command, cancelCommand=''):
    4542        '''
    4643        creates a new task, identified by an id got from current time, and runs it
     
    4946            # Checking if there is any task running           
    5047            for task in self.tasks:
    51                 status=self.getTaskStatus(task)["taskStatus"];
     48                status=self.getTaskStatus(task)["taskStatus"]
    5249                if status=="RUNNING":
    5350                    return {"status": False, "msg":"SERVER_BUSY"}
     
    5552            # If there is not any task running, let's continue
    5653           
    57             id=int(round(time.time()*10))       # generating new id from sys time
    58             newtask=Task(id, command)           # Create new task object (frow library actasks)           
    59             self.tasks[str(id)]=newtask         # Adding to task dictionary           
    60             newtask.runTask();                  # running Task
     54            id = int(round(time.time()*10))               # generating new id from sys time
     55            newtask = Task(id, command, cancelCommand)    # Create new task object (frow library actasks)           
     56            self.tasks[str(id)] = newtask                 # Adding to task dictionary           
     57            newtask.runTask()                           # running Task
    6158
    6259            # Prepare thread (for multicasting, it will reads task log and redirects to websocket)
    63             multicast_thread=threading.Thread(target=self.multicast, args=([newtask]))
    64            
     60            multicast_thread = threading.Thread(target=self.multicast, args=([newtask]))
    6561            multicast_thread.daemon = True
    6662            multicast_thread.start()
    6763                       
    6864            return {"status": True, "msg":str(id)}
    69            
    70             pass       
    7165        except Exception as e:
    7266            return {"status": False, "msg":str(e)}
     
    106100        '''
    107101        try:
    108             pipe=self.tasks[taskid].getFilePipe();
     102            pipe=self.tasks[taskid].getFilePipe()
    109103            if not os.path.exists("/tmp/taskslog"):
    110104                os.makedirs("/tmp/taskslog")
    111             shutil.copy(pipe, "/tmp/taskslog/");
    112            
     105            shutil.copy(pipe, "/tmp/taskslog/")
    113106            return {"status":True, "file":ntpath.basename(pipe)}
    114107       
    115108        except Exception as e:
    116109            return {"status": False, "msg":str(e)}
    117        
    118110
    119111    def cancelTask(self, taskid):
    120112        print "REMOVING ", str(taskid)
    121         return self.tasks[taskid].stop();
    122         pass
    123        
    124        
     113        return self.tasks[taskid].stop()
     114
    125115    def listenTask(self, taskid):
    126116        '''
     
    131121            print (self.tasks[taskid].get())
    132122            #return {"status": True, "msg":self.tasks[taskid].get()}
    133            
    134            
    135             pass
    136            
    137123        except Exception as e:
    138124            return {"status": False, "msg":str(e)}       
    139125
    140    
    141126    def multicast(self, task):
    142127        try:
     
    149134                    time.sleep(1)
    150135                else:
    151                     break;
     136                    break
    152137                    #return False
    153138            pipe = open(task.filepipe,'r')
     
    156141                line = pipe.readline()
    157142                if line:
    158                     self.ws.send(str({"id": str(task.taskid), "line":line}));
     143                    self.ws.send(str({"id": str(task.taskid), "line":line}))
    159144                while task.status=="RUNNING" or line:
    160145                    line = pipe.readline()
    161146                    while (line):
    162                         self.ws.send(str({"id": str(task.taskid), "line":line}));
     147                        self.ws.send(str({"id": str(task.taskid), "line":line}))
    163148                        line=pipe.readline()
    164149                        task.seek = pipe.tell()
    165                    
    166150            except Exception as e:
    167151                print "[TASKMANAGER] Exception while reading pipe "+str(e)
    168                 pass
    169                        
    170                         ##if self.thread_jobs.has_key(job['job_id']):
    171                         ##      self.thread_jobs.pop(job['job_id'])
    172152        except Exception as e:
    173153            print "[TASKMANAGER] Exception while reading pipe "+str(e)
    174             pass
    175            
    176            
    177            
    178            
    179            
    180            
    181        
Note: See TracChangeset for help on using the changeset viewer.