Changeset 5240


Ignore:
Timestamp:
Jun 20, 2017, 6:12:15 PM (18 months ago)
Author:
hectorgh
Message:

adding new shutdowner functionality

Location:
lliurex-zero-shutdown/trunk/fuentes/lliurex-zero-shutdown.install-files
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • lliurex-zero-shutdown/trunk/fuentes/lliurex-zero-shutdown.install-files/etc/n4d/conf.d/Shutdowner

    r497 r5240  
    44class=Shutdowner
    55[METHODS]
     6is_cron_enabled=anonymous
     7update_shutdown_signal=adm,admins,teachers
     8manual_client_list_check=adm,admins,teachers
    69list_clients = admin,admins,adm,teachers
    710shutdownlist = admin,admins,adm,teachers
  • lliurex-zero-shutdown/trunk/fuentes/lliurex-zero-shutdown.install-files/usr/share/n4d/python-plugins/Shutdowner.py

    r497 r5240  
    33import os
    44import xmlrpclib
    5 
     5import copy
     6import time
    67
    78class Shutdowner:
     9       
    810        tcos_port="9779"
    911        clients_file="/run/clients"
     
    1214                pass
    1315        #def init
     16       
     17        def startup(self,options):
     18               
     19                self.internal_variable=copy.deepcopy(objects["VariablesManager"].get_variable("SHUTDOWNER"))
     20               
     21                if self.internal_variable==None:
     22                        try:
     23
     24                                self.initialize_variable()
     25                                objects["VariablesManager"].add_variable("SHUTDOWNER",copy.deepcopy(self.internal_variable),"","Shutdowner internal variable","lliurex-shutdowner")
     26                               
     27                        except Exception as e:
     28                                print e
     29
     30        #def startup
     31       
     32        def initialize_variable(self):
     33               
     34                self.internal_variable={}
     35                self.internal_variable["cron_enabled"]=False
     36                self.internal_variable["cron_content"]=None
     37                self.internal_variable["shutdown_signal"]=0
     38                self.internal_variable["cron_values"]={}
     39                self.internal_variable["cron_values"]["hour"]=0
     40                self.internal_variable["cron_values"]["minute"]=0
     41                self.internal_variable["cron_values"]["weekdays"]=[False,False,False,False,False]
     42               
     43        #def initialize_variable
     44       
     45        def manual_client_list_check(self):
     46               
     47                objects["VariablesManager"].manual_client_list_check()
     48               
     49                return True
     50               
     51        #def manual_client_list_check
     52       
     53        def is_cron_enabled(self):
     54               
     55                ret={}
     56                ret["status"]=self.internal_variable["cron_enabled"]
     57                ret["msg"]=self.internal_variable["cron_content"]
     58               
     59                return ret
     60               
     61        #def is_cron_enabled
     62       
     63
     64        def update_shutdown_signal(self):
     65               
     66                self.internal_variable["shutdown_signal"]=time.time()
     67                self.save_variable()
     68               
     69        #def update_shutdown_signal
     70
     71       
     72        def save_variable(self):
     73               
     74                objects["VariablesManager"].set_variable("SHUTDOWNER",copy.deepcopy(self.internal_variable))
     75               
     76        #def save_variable
     77       
    1478       
    1579        def list_clients(self):
     
    63127       
    64128       
    65         def shutdowncronlist(self,user,password,min,hour,monthday,month,weekday,aux_clients_file=clients_file+'_tmp'):
     129        def shutdowncronlist(self,user,password,minute,hour,monthday,month,weekday,aux_clients_file=clients_file+'_tmp'):
    66130       
    67131                try:
     
    73137                                        u=(user,password)
    74138                                        try:
    75                                                 c.shutdown_cron(u,"ShutdownerClient",min,hour,monthday,month,weekday)
     139                                                c.shutdown_cron(u,"ShutdownerClient",minute,hour,monthday,month,weekday)
    76140                                        except Exception as e:
    77141                                                print e,line.strip("\n")
     
    93157                                for line in f:
    94158                       
    95                                     c=xmlrpclib.ServerProxy("https://%s:9779"%line.strip("\n"))
    96                                     u=(user,password)
    97                                     try:
    98                                         c.noshutdown_cron(u,"ShutdownerClient")
    99                                     except Exception as e:
    100                                         print e,line.strip("\n")
     159                                        c=xmlrpclib.ServerProxy("https://%s:9779"%line.strip("\n"))
     160                                        u=(user,password)
     161                                        try:
     162                                                c.noshutdown_cron(u,"ShutdownerClient")
     163                                        except Exception as e:
     164                                                print e,line.strip("\n")
    101165                        COMMENT_END = "The PC's in your internal network have been updated, cron deactivated!"
    102166                        return [True,str(COMMENT_END)]
Note: See TracChangeset for help on using the changeset viewer.