def __init__(self):
     self.run = True
     set_signals(self.shutdown_listener)
     self.args, self.config = program_setup(self.PROGRAM_NAME,
                                            self.PROGRAM_DESCRIPTION)
     self.work_load_stat = WorkLoadStatistic(config=self.config,
                                             component=self.COMPONENT)
Exemple #2
0
def main(command_line_options=sys.argv):
    _, config = program_setup(PROGRAM_NAME, PROGRAM_DESCRIPTION, command_line_options=command_line_options)

    logging.info('Trying to start Mongo Server and initializing users...')
    mongo_manger = MongoMgr(config=config, auth=False)
    mongo_manger.init_users()
    mongo_manger.shutdown()

    return 0
Exemple #3
0
def test_program_setup():
    tmp_dir = TemporaryDirectory(prefix='fact_test_')
    log_file_path = tmp_dir.name + '/folder/log_file'
    args, config = program_setup('test', 'test description', command_line_options=['script_name', '--config_file', argument_mock.config_file, '--log_file', log_file_path])
    assert args.debug is False
    assert config['Logging']['logFile'] == log_file_path
    assert os.path.exists(log_file_path)

    tmp_dir.cleanup()
Exemple #4
0
    def __init__(self):
        self.run = True
        # Check whether the process was started by start_fact.py
        parent = ' '.join(psutil.Process(os.getppid()).cmdline())
        started_by_start_fact_py = 'start_fact.py' in parent or 'start_all_installed_fact_components' in parent

        if started_by_start_fact_py:
            signal.signal(signal.SIGUSR1, self.shutdown_listener)
            signal.signal(signal.SIGINT, lambda *_: None)
            os.setpgid(os.getpid(), os.getpid())  # reset pgid to self so that "complete_shutdown" doesn't run amok
        else:
            signal.signal(signal.SIGINT, self.shutdown_listener)

        self.args, self.config = program_setup(self.PROGRAM_NAME, self.PROGRAM_DESCRIPTION, self.COMPONENT)
        self.work_load_stat = WorkLoadStatistic(config=self.config, component=self.COMPONENT)
def main(command_line_options=sys.argv):
    _, config = program_setup(PROGRAM_NAME,
                              PROGRAM_DESCRIPTION,
                              command_line_options=command_line_options)

    logging.info('Trying to start Mongo Server and initializing users...')
    mongo_manger = MongoMgr(config=config, auth=False)

    db_service_frontend_editing = FrontendEditingDbInterface(config)
    convert_comments_to_new_format(db_service_frontend_editing)
    convert_release_dates_to_date_object_format(db_service_frontend_editing)
    add_parent_firmware_list_to_file_object(db_service_frontend_editing)

    mongo_manger.shutdown()

    return 0
Exemple #6
0
def main(command_line_options=sys.argv):
    args, config = program_setup(PROGRAM_NAME,
                                 PROGRAM_DESCRIPTION,
                                 command_line_options=command_line_options)

    logging.info('Try to start Mongo Server...')
    mongo_server = MongoMgr(config=config)

    updater = StatisticUpdater(config=config)
    updater.update_all_stats()
    updater.shutdown()

    if args.testing:
        logging.info('Stopping Mongo Server...')
        mongo_server.shutdown()

    return 0
Exemple #7
0
def main(command_line_options=None):
    command_line_options = sys.argv if command_line_options is None else command_line_options
    args, config = program_setup(PROGRAM_NAME, PROGRAM_DESCRIPTION, command_line_options=command_line_options)

    logging.info('Try to start Mongo Server...')
    mongo_server = MongoMgr(config=config)

    logging.info('updating data... this may take several hours depending on the size of your database')

    start_time = time()
    return_code = _create_variety_data(config)
    process_time = time() - start_time

    logging.info('generation time: {}'.format(time_format(process_time)))

    if args.testing:
        logging.info('Stopping Mongo Server...')
        mongo_server.shutdown()

    return return_code

def shutdown(signum, _):
    global run
    logging.info('received {signum}. shutting down {name}...'.format(signum=signum, name=PROGRAM_NAME))
    run = False


if __name__ == '__main__':
    if was_started_by_start_fact():
        signal.signal(signal.SIGUSR1, shutdown)
        signal.signal(signal.SIGINT, lambda *_: None)
        os.setpgid(os.getpid(), os.getpid())  # reset pgid to self so that "complete_shutdown" doesn't run amok
    else:
        signal.signal(signal.SIGINT, shutdown)
    args, config = program_setup(PROGRAM_NAME, PROGRAM_DESCRIPTION)
    analysis_service = AnalysisScheduler(config=config)
    tagging_service = TaggingDaemon(analysis_scheduler=analysis_service)
    unpacking_service = UnpackingScheduler(config=config, post_unpack=analysis_service.start_analysis_of_object, analysis_workload=analysis_service.get_scheduled_workload)
    compare_service = CompareScheduler(config=config)
    intercom = InterComBackEndBinding(config=config, analysis_service=analysis_service, compare_service=compare_service, unpacking_service=unpacking_service)
    work_load_stat = WorkLoadStatistic(config=config)

    run = True
    while run:
        work_load_stat.update(unpacking_workload=unpacking_service.get_scheduled_workload(), analysis_workload=analysis_service.get_scheduled_workload())
        if any((unpacking_service.check_exceptions(), compare_service.check_exceptions(), analysis_service.check_exceptions())):
            break
        sleep(5)
        if args.testing:
            break
Exemple #9
0
 def __init__(self):
     _, config = program_setup(self.PROGRAM_NAME, self.PROGRAM_DESCRIPTION,
                               self.COMPONENT)
     self.mongo_server = MongoMgr(config=config)
     super().__init__()
Exemple #10
0
    execute_shell_command('{} -f {}/install/radare/docker-compose.yml up -d'.format(COMPOSE_VENV / 'bin' / 'docker-compose', get_src_dir()))


def stop_docker():
    execute_shell_command('{} -f {}/install/radare/docker-compose.yml down'.format(COMPOSE_VENV / 'bin' / 'docker-compose', get_src_dir()))


if __name__ == '__main__':
    if was_started_by_start_fact():
        signal.signal(signal.SIGUSR1, shutdown)
        signal.signal(signal.SIGINT, lambda *_: None)
    else:
        signal.signal(signal.SIGINT, shutdown)

    run = True  # pylint: disable=invalid-name
    ARGS, CONFIG = program_setup(PROGRAM_NAME, PROGRAM_DESCRIPTION)

    start_docker()

    work_load_stat = WorkLoadStatistic(config=CONFIG, component='frontend')

    with tempfile.NamedTemporaryFile() as fp:
        fp.write(pickle.dumps(ARGS))
        fp.flush()
        uwsgi_process = start_uwsgi_server(fp.name)

        while run:
            work_load_stat.update()
            sleep(5)
            if ARGS.testing:
                break