Beispiel #1
0
 def shutdown( self ): #Exit le serveur proprement apres avoir stoppe le reste
     ret = "Shutting down"
     self.clientsocket.send(str(len(ret)))
     if (len(self.clientsocket.recv(8))):
         self.clientsocket.send(ret)
     self.stopAll()
     print ret
     exiting()
     return ""
Beispiel #2
0
 def __init__( self, conf ):
     self.initSignals()
     self.conf = conf
     try:
         self.checkConf(self.conf)
     except NameError as e:
         print e.message
         exiting()
     self.initConn()
     self.initLogFile(self.conf)
Beispiel #3
0
    def makeLoop( self ):
        try:
            while (42):
                if not 'programs' in self.conf:
                    raise NameError("No 'programs' in configuration")
                self.serverListen()
                self.managePrograms()

        except KeyboardInterrupt:
            exiting()
Beispiel #4
0
def getConfig( args, errorConfig=True ):
    conf = {}
    configurationFiles = []
    if args.configuration_file:
        for _file in args.configuration_file:
            try:
                openConf = yaml.load(open(_file, 'r'))
            except IOError:
                print "Error opening configuration files while reloading\n"
                exiting()
            except:
                print "Error parsing configuration files (indentation)\n"
                exiting()
            configurationFiles.append(os.path.abspath(_file))
            for (key, value) in openConf.items():
                if not key in conf:
                    conf[key] = value
                else:
                    conf[key].update(value)
    else:
        try:
            _file = open(CONF_FILE, 'r')
            configurationFiles.append(os.path.abspath(CONF_FILE))
            conf = yaml.load(_file)
        except IOError:
            if errorConfig:
                print Scolors.RED + "Taskmaster can't find any configuration file" + Scolors.ENDC
                exiting()
        except:
            print "Error parsing configuration files (indentation)\n"
            exiting()
    conf["originalWD"] = os.getcwd()
    conf["args"] = args
    conf["configurationFiles"] = configurationFiles
    return conf
Beispiel #5
0
def getConfig(args, errorConfig=True):
    conf = {}
    configurationFiles = []
    if args.configuration_file:
        for _file in args.configuration_file:
            try:
                openConf = yaml.load(open(_file, 'r'))
            except IOError:
                print "Error opening configuration files while reloading\n"
                exiting()
            except:
                print "Error parsing configuration files (indentation)\n"
                exiting()
            configurationFiles.append(os.path.abspath(_file))
            for (key, value) in openConf.items():
                if not key in conf:
                    conf[key] = value
                else:
                    conf[key].update(value)
    else:
        try:
            _file = open(CONF_FILE, 'r')
            configurationFiles.append(os.path.abspath(CONF_FILE))
            conf = yaml.load(_file)
        except IOError:
            if errorConfig:
                print Scolors.RED + "Taskmaster can't find any configuration file" + Scolors.ENDC
                exiting()
        except:
            print "Error parsing configuration files (indentation)\n"
            exiting()
    conf["originalWD"] = os.getcwd()
    conf["args"] = args
    conf["configurationFiles"] = configurationFiles
    return conf
Beispiel #6
0
def main():
    # daemon = MyDaemon('../server/')

    try:
        prompt = Scolors.BLUE + "TaskY~> " + Scolors.ENDC
        instruction = raw_input(prompt)
        while (42):
            if (check_instruction(instruction)):
                print instruction + ": " + Scolors.RED + "invalid command" + Scolors.ENDC
            instruction = raw_input(prompt)
    except KeyboardInterrupt:
        exiting()
    except:
        print "Socket Timeout"
        exiting()
Beispiel #7
0
def init_conn(clientsocket):
    try:
        # clientsocket.connect(('localhost', 8965))
        clientsocket.settimeout(3)
        # if not os.path.isfile(UNIX_SOCKET_PATH):
        #     raise socket_error("djsa")
        clientsocket.connect(UNIX_SOCKET_PATH)
        # clientsocket.connect("/tmp/conn")
    except socket_error as serr:
        # if serr.errno != errno.ECONNREFUSED:
        # Not the error we are looking for, re-raise
        # raise serr
        print Scolors.RED + "Can't connect to server." + Scolors.ENDC
        exiting()
    return clientsocket
Beispiel #8
0
def init_conn(clientsocket):
    try:
        # clientsocket.connect(('localhost', 8965))
        clientsocket.settimeout(3)
        # if not os.path.isfile(UNIX_SOCKET_PATH):
        #     raise socket_error("djsa")
        clientsocket.connect(UNIX_SOCKET_PATH)
        # clientsocket.connect("/tmp/conn")
    except socket_error as serr:
        # if serr.errno != errno.ECONNREFUSED:
            # Not the error we are looking for, re-raise
            # raise serr
        print Scolors.RED + "Can't connect to server." + Scolors.ENDC
        exiting()
    return clientsocket
Beispiel #9
0
def main():
    # daemon = MyDaemon('../server/')


    try:
        prompt = Scolors.BLUE + "TaskY~> " + Scolors.ENDC
        instruction = raw_input(prompt)
        while (42):
            if (check_instruction(instruction)):
                print instruction + ": " + Scolors.RED + "invalid command" + Scolors.ENDC
            instruction = raw_input(prompt)
    except KeyboardInterrupt:
        exiting()
    except :
        print "Socket Timeout"
        exiting()
Beispiel #10
0
 def reloadConfig( self, signum, frame ):
     verbose = "Reloading configuration:\n"
     newConf = {}
     if 'configurationFiles' not in self.conf:
         raise NameError("Config error no file(s) for configuration")
     for _file in self.conf['configurationFiles']:
         try:
             openConf = yaml.load(open(_file, 'r'))
             verbose += "\treloading " + _file + '\n'
         except IOError:
             if errorConfig:
                 self.printToLogfile("Error opening configuration files while reloading\n")
             exiting()
         except:
             self.printToLogfile("Error opening configuration files while reloading\n")
             print "Error parsing configuration files (indentation)\n"
             exiting()
         for (key, value) in openConf.items():
             if not key in newConf:
                 newConf[key] = value
             else:
                 newConf[key].update(value)
     newConf['configurationFiles'] = self.conf['configurationFiles']
     newConf['originalWD'] = self.conf['originalWD']
     newConf['args'] = self.conf['args']
     self.reloadLogFile(newConf)
     try:
         self.checkConf(newConf)
     except NameError as e:
         print e.message
         exiting()
     self.reloadProcess(newConf)
     self.conf = newConf
     self.printToLogfile(verbose)
     if self.conf["args"].verbose:
         print verbose
     return verbose