Esempio n. 1
0
def init_droidpot(debug=False, quiet=False, new_module=[]):
    """
    Initilize droidpot. Checks environment, set console log level,
    initilize managers and start django web interface
    :param debug: debug mode
    :param quiet: quiet mode
    :return: nil
    """
    try:
        if new_module:
            #adding new module
            MODULE_TYPE = 0
            MODULE_NAME = 1
            if new_module[MODULE_TYPE] ==  "monitor":
                print "Creating monitor module %s ..."%new_module[MODULE_NAME]
                create_monitor_module(new_module[MODULE_NAME])
                exit(0)
            elif new_module[MODULE_TYPE] == "profile":
                print "Creating profile module %s ..."%new_module[MODULE_NAME]
                create_profile_module(new_module[MODULE_NAME])
                exit(0)
            elif new_module[MODULE_TYPE] == "processing":
                print "Creating processing module %s ..."%new_module[MODULE_NAME]
                create_processing_module(new_module[MODULE_NAME])
                exit(0)
            else:
                print "error. exiting..."
                exit(1)
            '''
            elif new_module[MODULE_TYPE] == "reporting":
                print "Creating reporting module %s ..."%new_module[MODULE_NAME]
                create_reporting_module(new_module[MODULE_NAME])
                exit(0)
            '''




        logo()
        init_logging()
        check_ini_files()
        #check_device_compatibility()
        check_root()
        check_modules()
        log.info("Modules loaded successfully")
        if debug:
            log.setLevel(logging.DEBUG)
        if quiet:
            log.setLevel(logging.WARN)

        log.info("Starting Django web interface")
        subprocess.call(["python", "web/manage.py", "migrate","--verbosity", "0"])
        subprocess.call(["python", "web/manage.py", "runserver"])

    except InitilizeError as ie:

        exit(1)
    except KeyboardInterrupt:
        exit(0)
Esempio n. 2
0
def create_app(config):
    #create_structure()

    # Define the WSGI application object
    app = Flask(__name__)
    app.config['MAX_CONTENT_LENGTH'] = 200 * 1024 * 1024  # 200MB

    # Configurations
    app.config.from_object(settings[config])
    settings[config].init_app(app)

    if not app.testing:
        logo()
        check_version()
    check_configs()
    if app.testing:
        init_logging('info')
    else:
        init_logging('debug')
    #log.setLevel(logging.DEBUG)
    init_modules()
    # Init All Flask Add-ons
    bootstrap.init_app(app)
    #pagedown.init_app(app)
    db.init_app(app)
    mail.init_app(app)
    if app.config['USE_LDAP'] == 'yes':
        # LDAP Login
        # TODO : Test out LDAP
        app.add_url_rule('/login', 'login', ldap.login, methods=['GET', 'POST'])
        ldap.init_app(app)
    else:
        login_manager.login_view = 'auth.login'
        login_manager.init_app(app)

    if not app.debug and not app.testing and not app.config['SSL_DISABLE']:
        try:
            from flask.ext.sslify import SSLify
            sslify = SSLify(app)
        except ImportError:
            from flask.ext.sslify import SSLify
            raise MaliceDependencyError("Unable to import Flask-SSLify "
                                  "(install with `pip install Flask-SSLify`)")

    # Register blueprint(s)
    from .malice import malice as malice_blueprint
    app.register_blueprint(malice_blueprint)

    from .mod_auth import mod_auth as auth_module
    app.register_blueprint(auth_module, url_prefix='/auth')

    # from app.mod_api.controller import mod_api as api_module
    # app.register_blueprint(api_module, url_prefix='/api/v1')

    return app
Esempio n. 3
0
def create_app(config):
    logo()
    check_configs()
    check_version()

    init_modules()

    # create_structure()
    # Define the WSGI application object
    app = Flask(__name__)
    # Configurations
    app.config.from_object(settings[config])

    # if True:
    if not app.config['DEBUG'] and not app.config['TESTING']:
        # configure logging for production

        # email errors to the administrators
        if app.config.get('MAIL_ERROR_RECIPIENT') is not None:
            import logging
            from logging.handlers import SMTPHandler

            credentials = None
            secure = None
            if app.config.get('MAIL_USERNAME') is not None:
                credentials = (app.config['MAIL_USERNAME'], app.config['MAIL_PASSWORD'])
                if app.config['MAIL_USE_TLS'] is not None:
                    secure = ()
            mail_handler = SMTPHandler(
                mailhost=(app.config['MAIL_SERVER'], app.config['MAIL_PORT']),
                fromaddr=app.config['DEFAULT_MAIL_SENDER'],
                toaddrs=[app.config['MAIL_ERROR_RECIPIENT']],
                subject='[Malice] Application Error',
                credentials=credentials,
                secure=secure)
            mail_handler.setLevel(logging.ERROR)
            app.logger.addHandler(mail_handler)

        # send standard logs to syslog
        import logging
        from logging.handlers import SysLogHandler

        syslog_handler = SysLogHandler()
        syslog_handler.setLevel(logging.WARNING)
        app.logger.addHandler(syslog_handler)

    # pagedown.init_app(app)
    db.init_app(app)
    mail.init_app(app)

    if app.config['USE_LDAP']:
        # LDAP Login
        # TODO : Test out LDAP
        app.add_url_rule('/login', 'login', ldap.login, methods=['GET', 'POST'])
        ldap.init_app(app)
    else:
        login_manager.init_app(app)

    # Register blueprint(s)
    from .malice import malice as malice_blueprint
    app.register_blueprint(malice_blueprint)

    from app.mod_users.routes import mod_user as user_module
    app.register_blueprint(user_module, url_prefix='/auth')

    # from app.mod_api.controller import mod_api as api_module
    # app.register_blueprint(api_module, url_prefix='/api/v1')

    from app.emails import start_email_thread

    @app.before_first_request
    def before_first_request():
        start_email_thread()


    # from werkzeug.contrib.fixers import ProxyFix
    # app.wsgi_app = ProxyFix(app.wsgi_app)
    return app
Esempio n. 4
0
#coding:utf-8
import os
from lib.common.logo import logo
from lib.common.constants import PD_UPDATE_ROOT
from lib.PD_update.md5_update import md5_update
from lib.common.prepare import make_new_floder
def create_diectory():
    '''创建所需文件夹'''
    if os.path.exists(os.path.join(PD_UPDATE_ROOT,"data")):
        pass
    else:
        os.makedirs(os.path.join(PD_UPDATE_ROOT,"data"))
        
if __name__=="__main__":
    logo()
    make_new_floder()
    md5_update()