class ProjectConfiguration:
    '''Load options, own all project step functions'''
    
    def __init__(self, options):
        '''Provide initial full steps, input options contains basic parameters'''
        self.options=options
        self.set_output_folder()
        self.set_logserver()
        self.set_configfile()
    
    def set_output_folder(self):
        '''Set output folder
           Input: options.outputpath
           Output: self.outputdir, ChorusGlobals.outputdir'''
        self.outputdir = Utils.create_folder(self.options.outputpath, "Output", True)
        ChorusGlobals.set_outputdir(self.outputdir)
        print "Set output directory to %s" % self.outputdir
        
    def set_configfile(self):
        configfile = ConfigFile(self.options.configfile,self.options.configpath)
        configfile.get_env(self.options.env)
        self.parameters = configfile.parameters
        self.config = configfile.config
        ChorusGlobals.set_parameters(self.parameters)
        ChorusGlobals.set_configinfo(self.config)

    def set_logserver(self, name = LogType.ChorusCore, level=Level.debug,
                formatter=Formatter.Console):
        self.logserver=LogServer(name, level, formatter, colorconsole = self.options.color)
        ChorusGlobals.set_logserver(self.logserver)
        ChorusGlobals.set_logger(self.logserver.get_logger())
class ProjectConfiguration:
    '''Load options, own all project step functions'''
    def init_options(self):
        self.parser = optparse.OptionParser()
        self.parser.add_option("-c","--config",dest="configfile",
                               default="default.cfg",
                               help="config file name, e.g: test.cfg")
        self.parser.add_option("-p","--path",dest="configpath",
                               default="",
                               help="config file path, default: Config/, e.g. test")
        self.parser.add_option("-o","--output",dest="outputpath",
                               default="",
                               help="output file path, default: Output/, e.g: Output")
        self.parser.add_option("--color",dest="color",
                               default=False, action="store_true",
                               help="provide a colorful console with different log level")
        self.parser.add_option("-e","--env",dest="env",
                               default=None, 
                               help="choose environment to run the test in config file")
    
    def setup(self, argv=[]):
        if not hasattr(self,"parser"):
            self.init_options()
        self.options, argv = self.parser.parse_args(list(argv))
        self.set_output_folder()
        self.set_logserver()
        self.set_configfile()
    
    def set_output_folder(self):
        '''Set output folder
           Input: options.outputpath
           Output: self.outputdir, ChorusGlobals.outputdir'''
        self.outputdir = Utils.create_folder(self.options.outputpath, "Output", True)
        ChorusGlobals.set_outputdir(self.outputdir)
        print "Set output directory to %s" % self.outputdir
        
    def set_configfile(self):
        configfile = ConfigFile(self.options.configfile,self.options.configpath)
        configfile.get_env(self.options.env)
        self.parameters = configfile.parameters
        self.config = configfile.config
        ChorusGlobals.set_parameters(self.parameters)
        ChorusGlobals.set_configinfo(self.config)

    def set_logserver(self, name = LogType.ChorusCore, level=Level.debug,
                formatter=Formatter.Console):
        self.logserver=LogServer(name, level, formatter, colorconsole = self.options.color)
        ChorusGlobals.set_logserver(self.logserver)
        ChorusGlobals.set_logger(self.logserver.get_logger())
Example #3
0
from Game import Game
from GamePlayer import GamePlayer
from GameServer import GameServer
from GameMap import GameMap
from Player import Player

# Load Log Server
from LogServer import LogServer

# Load Twisted
from twisted.internet import reactor
from twisted.internet.task import LoopingCall
from twisted.web import static, server

# Create the log server for UDP connections
logserver = LogServer()
logserver.config = config

# Install SIGINT handler
reactor.addSystemEventTrigger('before', 'shutdown', logserver.shutdown)

# Setup Log Server
reactor.listenUDP(27501, logserver)

# Set Up Garbage Collector for log server
gc = LoopingCall(logserver.gc)
gc.start(config.getint('timers', 'idle_server_search_interval'))

stats = LoopingCall(logserver.stats)
stats.start(config.getint('timers', 'print_stats'))
 def set_logserver(self, name = LogType.ChorusCore, level=Level.debug,
             formatter=Formatter.Console):
     self.logserver=LogServer(name, level, formatter, colorconsole = self.options.color)
     ChorusGlobals.set_logserver(self.logserver)
     ChorusGlobals.set_logger(self.logserver.get_logger())
 def set_logserver(self, name = LogType.ChorusCore, level=Level.debug,
             formatter=Formatter.Console):
     self.logserver=LogServer(name, level, formatter, 
                              colorconsole = False if not hasattr(self,"options") else self.options.color)
     ChorusGlobals.set_logserver(self.logserver)
     ChorusGlobals.set_logger(self.logserver.get_logger())
class ProjectConfiguration:
    '''Load options, own all project step functions'''
    def init_options(self):
        self.parser = optparse.OptionParser()
        self.parser.add_option("-c","--config",dest="configfile",
                               default="default.cfg",
                               help="config file name, e.g: test.cfg")
        self.parser.add_option("-p","--path",dest="configpath",
                               default="",
                               help="config file path, default: Config/, e.g. test")
        self.parser.add_option("-o","--output",dest="outputpath",
                               default="",
                               help="output file path, default: Output/, e.g: Output")
        self.parser.add_option("--color",dest="color",
                               default=False, action="store_true",
                               help="provide a colorful console with different log level")
        self.parser.add_option("-e","--env",dest="env",
                               default=None, 
                               help="choose environment to run the test in config file")
        self.parser.add_option("-d","--directory", dest="directory",
                               default=None,
                               help="Current working directory full path, which contains the Config/Testsuite/Baseline folder, if you are in the default directory, you can omit this option")
        self.parser.add_option("--order", dest="xml", 
                               default=None,
                               help="give a configuration XML file which define the test execution order. And other cofiguration in scipts/config file will be ignored")
        
    def setup(self, argv=[]):
        if not hasattr(self,"parser"):
            self.init_options()
        self.options, argv = self.parser.parse_args(list(argv))
        self.set_working_directory()
        self.set_output_folder()
        self.set_logserver()
        self.set_configfile()
        self.set_xml_file()
    
    def set_working_directory(self):
        if self.options.directory:
            if os.path.isdir(self.options.directory):
                os.chdir(self.options.directory)
        current_dir_abs = os.getcwd()
        sys.path.append(current_dir_abs)
    
    def set_output_folder(self):
        '''Set output folder
           Input: options.outputpath
           Output: self.outputdir, ChorusGlobals.outputdir'''
        self.outputdir = os.path.abspath(Utils.create_folder(self.options.outputpath, "Output", True))
        ChorusGlobals.set_outputdir(self.outputdir)
        print "Set output directory to %s" % self.outputdir
        
    def set_configfile(self):
        configfile = ConfigFile(self.options.configfile,self.options.configpath)
        configfile.get_env(self.options.env)
        self.parameters = configfile.parameters
        self.config = configfile.config
        ChorusGlobals.set_parameters(self.parameters)
        ChorusGlobals.set_configinfo(self.config)

    def set_logserver(self, name = LogType.ChorusCore, level=Level.debug,
                formatter=Formatter.Console):
        self.logserver=LogServer(name, level, formatter, 
                                 colorconsole = False if not hasattr(self,"options") else self.options.color)
        ChorusGlobals.set_logserver(self.logserver)
        ChorusGlobals.set_logger(self.logserver.get_logger())
    
    def set_xml_file(self):
        if self.options.xml:
            if os.path.isfile(self.options.xml):
                if str(self.options.xml).endswith(".xml"):
                    ChorusGlobals.set_xml_file(self.options.xml)
                    print "Load test execution infomation from file %s"%(str(self.options.xml))
                    return
                else:
                    print "The test execution configuration file should be an XML file"
            else:
                print "Can't find xml file %s" % (str(self.options.xml))
        ChorusGlobals.set_xml_file(None)
Example #7
0

class RandomSource:
    def __init__(self):
        pass

    def getRandomNumber(self, min, max):
        return random.randint(min, max)

    def getRandomFloat(self, min, max):
        return random.uniform(min, max)


printer = RandomSource()

server = LogServer("0.0.0.0", 8080)
server.registerDataSource("random-int", printer.getRandomNumber, 0, 100)
server.registerDataSource("random-int", printer.getRandomNumber, 100, 200)
server.registerDataSource("random-float", printer.getRandomFloat, 1.0, 2.0)
server.listen()

# Retrieve data from all "random-int" sources
"""
{
	"get-data": {
		"mode": "all",
		"sources": ["random-int"]
	}
}
"""