Changeset 6866


Ignore:
Timestamp:
Feb 19, 2018, 12:57:24 PM (18 months ago)
Author:
Juanma
Message:

refactorized

Location:
taskscheduler/trunk/fuentes
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • taskscheduler/trunk/fuentes/client-scheduler.install/usr/share/n4d/python-plugins/SchedulerClient.py

    r6824 r6866  
    1010from  datetime import date
    1111import xmlrpclib as xmlrpc
    12 
    13 
    1412
    1513class SchedulerClient():
     
    5452                        if prefix=='remote':
    5553                                n4d=xmlrpc.ServerProxy("https://server:9779")
    56                                 tasks=n4d.get_remote_tasks("","SchedulerServer").copy()
     54                                tasks=n4d.get_remote_tasks("","SchedulerServer")['data'].copy()
    5755                        else:
    5856                                n4d=xmlrpc.ServerProxy("https://localhost:9779")
    59                                 tasks=n4d.get_tasks("","SchedulerServer")['data'].copy()
     57                                tasks=n4d.get_local_tasks("","SchedulerServer")['data'].copy()
    6058
    6159                        #Delete files
     
    8078                                        self._debug("Scheduling %s"%name)
    8179                                        fname=name.replace(' ','_')
    82                                         if fname in task_names.keys():
    83                                                 task_names[fname].update(tasks[name][serial].copy())
    84                                         else:
    85                                                 task_names[fname]=tasks[name][serial].copy()
     80                                        task_names[fname]=tasks[name][serial].copy()
    8681                                        self._write_crontab_for_task(task_names,prefix)
    8782
     
    9893                        if task_data:
    9994                                if os.path.isfile(fname):
    100                                         mode="a"
     95                                        mode='a'
    10196                                else:
    102                                         mode="w"
     97                                        mode='w'
    10398                                with open(fname,mode) as data:
    104                                         if mode=="w":
     99                                        if mode=='w':
    105100                                                data.write('#Scheduler tasks\n')
    106101                                                data.write('SHELL=/bin/bash\n')
  • taskscheduler/trunk/fuentes/python3-taskscheduler.install/usr/share/taskscheduler/taskscheduler.py

    r6831 r6866  
    5353                self._debug("Retrieving task list remote=%s"%sw_remote)
    5454                if self.n4dserver:
    55                         result=self.n4dserver.get_remote_tasks("","SchedulerServer")
     55                        result=self.n4dserver.get_remote_tasks("","SchedulerServer")['data']
    5656                        if type(result)==type({}):
    5757                                tasks=result.copy()
    5858#               result=self.n4dclient.get_tasks("","SchedulerServer")['data']
    59                 result=self.n4dclient.get_local_tasks("","SchedulerServer")
     59                result=self.n4dclient.get_local_tasks("","SchedulerServer")['data']
    6060                if type(result)==type({}):
    6161                        if tasks:
  • taskscheduler/trunk/fuentes/scheduler-gui.install/usr/share/taskscheduler/bin/taskScheduler.py

    r6849 r6866  
    167167                self.tasks_tv.set_model(self.tasks_store_filter)
    168168                self.tasks_tv.connect("button-release-event",self.task_clicked)
     169                self.tasks_tv.connect("row-activated",self.task_clicked)
    169170                self.tasks_tv.connect("cursor-changed",self.task_clicked)
    170171
     
    476477        def _click_on_list(self,event):
    477478                action=''
    478                 try:
    479                         row=self.tasks_tv.get_path_at_pos(int(event.x),int(event.y))
    480                 except Exception as e:
    481                         self._debug(e)
    482                 if row:
    483                         if row[1]==self.col_remove:
    484                                 action='remove'
    485                         elif row[1]==self.col_edit:
    486                                 action='edit'
     479                row=None
     480
     481                if type(event)==type(Gtk.TreePath()):
     482                        action='edit'
     483                else:
     484                        try:
     485                                row=self.tasks_tv.get_path_at_pos(int(event.x),int(event.y))
     486                        except Exception as e:
     487                                self._debug(e)
     488                        if row:
     489                                if row[1]==self.col_remove:
     490                                        action='remove'
     491                                elif row[1]==self.col_edit:
     492                                        action='edit'
    487493                self._debug(action)
    488494                return action
    489495
    490         def task_clicked(self,treeview,event=None):
     496        def task_clicked(self,treeview,event=None,*args):
    491497                self._debug("task clicked %s"%event)
    492498                selection=self.tasks_tv.get_selection()
  • taskscheduler/trunk/fuentes/server-scheduler.install/usr/share/n4d/python-plugins/SchedulerServer.py

    r6844 r6866  
    1111class SchedulerServer():
    1212        def __init__(self):
    13                 self.dbg=1
     13                self.dbg=0
    1414                self.tasks_dir="/etc/scheduler/tasks.d"
    1515                self.schedTasksDir=self.tasks_dir+"/scheduled"
     
    2626        #def _debug
    2727
    28         def get_tasks(self):
     28        def get_tasks(self,*args):
    2929                return(self._read_wrkfiles(self.tasks_dir))
    3030        #def get_tasks
    3131
    32         def get_local_tasks(self):
     32        def get_local_tasks(self,*args):
    3333                local_tasks={}
    3434                tasks_data=self._read_wrkfiles(self.tasks_dir)['data'].copy()
    35 
     35                status=False
    3636                for task_name,serial_data in tasks_data.items():
    3737                        sw_continue=False
     
    4040                                        if data['spread']==False:
    4141                                                if task_name in local_tasks.keys():
    42 #                                                       remote_tasks[task_name].update({'r'+serial:tasks_data[task_name][serial]})
    4342                                                        local_tasks[task_name][serial]=tasks_data[task_name][serial]
     43                                                        status=True
    4444                                                else:
    4545                                                        local_tasks[task_name]={serial:tasks_data[task_name][serial]}
     46                                                        status=True
    4647                                else:
    4748                                        if task_name in local_tasks.keys():
    4849                                                local_tasks[task_name][serial]=tasks_data[task_name][serial]
     50                                                status=True
    4951                                        else:
    5052                                                local_tasks[task_name]={serial:tasks_data[task_name][serial]}
    51                 return local_tasks
    52 
    53         def get_remote_tasks(self):
     53                                                status=True
     54                return ({'status':status,'data':local_tasks})
     55
     56        def get_remote_tasks(self,*args):
    5457                remote_tasks={}
    5558                tasks_data=self._read_wrkfiles(self.tasks_dir)['data'].copy()
     59                status=False
    5660
    5761                for task_name,serial_data in tasks_data.items():
     
    6165                                        if data['spread']==True:
    6266                                                if task_name in remote_tasks.keys():
    63 #                                                       remote_tasks[task_name].update({'r'+serial:tasks_data[task_name][serial]})
    6467                                                        remote_tasks[task_name]['r'+serial]=tasks_data[task_name][serial]
     68                                                        status=True
    6569                                                else:
    6670                                                        remote_tasks[task_name]={'r'+serial:tasks_data[task_name][serial]}
    67                 return remote_tasks
     71                                                        status=True
     72                return ({'status':status,'data':remote_tasks})
    6873
    6974        def get_available_tasks(self):
     
    96101                if os.path.isfile(wrkfile):
    97102                        try:
    98 #                               with open(wrkfile,"rb") as fh:
    99 #                                       tasks=json.load(fh)
    100103                                tasks=json.loads(open(wrkfile,"rb").read())
    101104                        except Exception as e:
     
    106109        #def _read_tasks_file
    107110       
    108         def remove_task(self,task):
     111        def remove_task(self,task,*args):
     112                #Retrocompatibility
     113                if type(task)==type(""):
     114                        task_compat={}
     115                        if task=='remote':
     116                                task_compat['sw_remote']=True
     117                        else:
     118                                task_compat['sw_remote']=False
     119                        if args[0]:
     120                                task_compat['name']=args[0]
     121                        if args[1]:
     122                                task_compat['serial']=args[1]
     123                        if args[2]:
     124                                task_compat['cmd']=args[2]
     125                        task=task_compat
    109126                wrk_dir=self.tasks_dir
    110127                self._debug("Removing task from system")
     
    119136                                self._debug("Task deleted")
    120137                                sw_del=True
     138                        elif task['serial'][0]=='r':
     139                                serial=task['serial'].strip('r')
     140                                if serial in tasks[task['name']].keys():
     141                                        if tasks[task['name']][serial]['spread']:
     142                                                del tasks[task['name']][serial]
     143                                                self._debug("Task deleted")
     144                                                sw_del=True
     145
    121146
    122147                if sw_del:
Note: See TracChangeset for help on using the changeset viewer.