def main(): run_count = 0 run_error_threshold = 15 usage = 'usage: %prog [-d] [-v] [-c CONFIG]' parser = optparse.OptionParser(usage=usage, version="%prog " + VERSION) parser.add_option("-d", "--debug", help="Enable debug output.", action="store_true", dest="debug", default=False) parser.add_option("-c", "--config", dest="configfile", default="/etc/eko/eko.conf", metavar="CONFIG", help="Path to configuration file.") (options, args) = parser.parse_args() if options.configfile is not None: configfile = options.configfile else: configfile = '/etc/eko/eko.cfg' loglvl_console = logging.DEBUG if options.debug else logging.INFO logger = LogHelper.getLoggerInstance(verbose_level=loglvl_console) try: board_rev = Beagleboard.get_board_revision() logger.info("Beagleboard Revision 0x%02x" % board_rev) except: logger.exception("Unable to test board revision, defaulting to XM rev C") # create datalogger instance and run it while True: try: logger.info("Executing main code with config %s. Attempt #%d." % (configfile, run_count)) datalogger = DataLogger(configfile) time.sleep(5) datalogger.run() except KeyboardInterrupt: sys.exit(0) except: run_count += 1 if run_count > run_error_threshold: logger.critical("Too many crashes, exiting.") sys.exit(-1) logger.exception("DataLogger crashed! Attempting to retry.")
from ConfigParser import ConfigParser import eko.Util.LogHelper as LogHelper import eko.Util.DBSetup as DBSetup import os.path from os import makedirs from eko.Sensors.Dispatcher import EkoDispatcher import eko.SystemInterface.OSTools as OSTools import eko.SystemInterface.Beagleboard as Beagleboard logger = LogHelper.getLoggerInstance() logger.setLevel(logging.DEBUG) if __name__=="__main__": if not os.path.exists('/data/configdumps'): makedirs('/data/configdumps') if len(sys.argv) < 2: print 'USAGE: configsingle.py [PATH TO CONFIG FILES]' sys.exit(0) cfgpath = sys.argv[1] dispatch = EkoDispatcher(datapath='/data/configdumps', sensorcfgpath=cfgpath) dispatch.import_configs() logger.info("Dispatching all sensor config operations.") dispatch.dispatch_all()
import eko.Util.LogHelper as LogHelper import eko.Util.DBSetup as DBSetup from eko.Sensors.Dispatcher import EkoDispatcher import eko.SystemInterface.OSTools as OSTools import eko.SystemInterface.Beagleboard as Beagleboard from eko.ThirdParty import ping import eko.WebService.ClientMessages as CMsgs from eko_logger_alwayson_net import DataLogger logger = LogHelper.getLoggerInstance(verbose_level=logging.DEBUG) logger.setLevel(logging.DEBUG) def upload_data(): datalogger=DataLogger('/etc/eko/eko.cfg') datalogger.upload_data_messages() datalogger.upload_kiosk_messages() datalogger._download_server_messages() datalogger.upload_logs() def insert_kiosk_messages(): CMsgs.add_clientmessage('ABCDEF\nLoremIpsum', '1234', 'Test', datetime.utcnow()) CMsgs.add_clientmessage('Gazzzz\nLoremIpsum', '2', 'Test', datetime.utcnow()) CMsgs.add_clientmessage('ABCDEF\Booo', '3', 'cxcx', datetime.utcnow()) CMsgs.add_clientmessage('Lolololol\nLoremIpsum', '5', '3', datetime.utcnow()) return