def run_master_slave_scan(plugin_name, user_setting, request_data):
    """
            run cluster scan as master&slave role
    : param plugin_name: plugin name
    : param user_setting: user setting
    : request_data: request query from Media server
    :return: meta_data_list
    """
    cluster_node = get_online_node()
    cluster_node.append({
        'IP': '127.0.0.1',
        'port': get_config(APP_CONFIG)['PORT'],
        'token': get_config(APP_CONFIG)['CLUSTER_TOKEN']
    })
    return run_cluster_scan(cluster_node, plugin_name, user_setting,
                            request_data)
Ejemplo n.º 2
0
def send_email(to, subject, text):
    try:
        config = get_config(APP_CONFIG)['EMAIL']
        mail_info = {
            "from": config['EMAIL_FROM'],
            "to": to,
            "host": config['EMAIL_HOST'],
            "username": config['EMAIL_USERNAME'],
            "password": config['EMAIL_PASSWORD'],
            "subject": subject,
            "text": text,
            "encoding": "utf-8"
        }
        smtp = SMTP_SSL(mail_info["host"])
        smtp.set_debuglevel(1)
        smtp.ehlo(mail_info["host"])
        smtp.login(mail_info["username"], mail_info["password"])
        msg = MIMEText(mail_info["text"], "plain", mail_info["encoding"])
        msg["Subject"] = Header(mail_info["subject"], mail_info["encoding"])
        msg["from"] = mail_info["from"]
        msg["to"] = mail_info["to"]
        smtp.sendmail(mail_info["from"], mail_info["to"], msg.as_string())
        smtp.quit()
    except Exception as e:
        log('info', 'Email send error: %s' % e)
Ejemplo n.º 3
0
def install_app_require():
    """
        use pip to install packages stated in requirements.json
    :return:
    """
    requirements = get_config(REQUIREMENTS_CONFIG)["requirements"]
    for requirement in requirements:
        install_package(requirement["name"], requirement["version"])
def decode_jwt(token):
    """
        decode and get payload form jwt
    :param token: str jwt
    :return: dict payload
    """
    try:
        return jwt.decode(token, get_config(APP_CONFIG)['JWT_SECRET_KEY'], algorithms=['HS256'])
    except jwt.PyJWTError:
        return None
Ejemplo n.º 5
0
def check_enable_sign_up():
    """
        check if the server enable user sign up
    : return: respond model with boolean
    """
    enable_sign_up = get_config(APP_CONFIG)['ENABLE_SIGN_UP']
    respond_model = RespondModel()
    respond_model.data = {"enable_sign_up": enable_sign_up}
    respond_model.message = 'success'
    respond_model.code = 20000
    return respond_model.dump_json(), 200
Ejemplo n.º 6
0
def sha1_encode(code):
    """
        sha1 encode
    :param code: code
    :return: str code
    """
    code = code + get_config(APP_CONFIG)['SHA1_SECRET_KEY']
    sha1_obj = sha1()
    sha1_obj.update(code.encode())
    ret = sha1_obj.hexdigest()
    return ret
def get_app_info():
    """
        get installed python package information
    :return: str info
    """
    requirements = get_config(REQUIREMENTS_CONFIG)["requirements"]
    pip_version = os.popen('pip -V').read().split(' ')[1]
    python_version = sys.version[0:5]
    info = {"pip_version": pip_version, "python_version": python_version}
    for requirement in requirements:
        version = get_package_info(requirement['name'])
        info[requirement['name']] = version
    return info
Ejemplo n.º 8
0
def install_plugin_require():
    """
        use pip to install packages stated in plugins' requirements.json
    :return:
    """
    plugins_name = get_all_plugin_name()
    for plugin in plugins_name.split(','):
        config = get_config('app/plugins/%s/requirements.json' % plugin)
        if config:
            requirements = config.get('requirements')
            if requirements:
                for requirement in requirements:
                    install_package(requirement.get("name"),
                                    requirement.get("version"))
Ejemplo n.º 9
0
def generate_jwt(user_info):
    """
        generate json web token by user_info
    :param user_info: dict user info
    :return: str json web token
    """
    iat = time.time()
    token_dict = {
        'iat': iat,
        'nbf': iat,
        'exp': iat + 300,
        'user_info': user_info
    }
    headers = {
        'alg': "HS256",
    }
    jwt_token = jwt.encode(token_dict,
                           get_config(APP_CONFIG)['JWT_SECRET_KEY'],
                           algorithm="HS256",
                           headers=headers).decode('ascii')
    return jwt_token
Ejemplo n.º 10
0
install_app_require()

from app.core.service.modules_alert_service import scheduler_check_modules_update, init_modules_history
from app.tools.config_tools import APP_CONFIG, get_config
from app.tools.router_tools import register_blueprints
from app.tools.init_db_tools import init_db_and_data

from flask import Flask
from flask_cors import *
from apscheduler.schedulers.background import BackgroundScheduler

# init database and data
init_db_and_data()

app = Flask(__name__, static_folder='front-end/dist/', static_url_path='')
app_config = get_config(APP_CONFIG)
CORS(app, supports_credentials=True)

# register blueprints
register_blueprints(app, 'app.core.api', 'api')

# init modules history
init_modules_history()

# scheduler task
scheduler = BackgroundScheduler()
scheduler.add_job(scheduler_check_modules_update, 'interval', seconds=1800)
scheduler.start()

# region start
if __name__ == "__main__":
def validate_master(token):
    """
        validate master credential
    """
    cluster_token = get_config(APP_CONFIG)['CLUSTER_TOKEN']
    return token == cluster_token
Ejemplo n.º 12
0
# -*- coding:utf-8 -*-
import pymongo

from app.tools.config_tools import get_config, APP_CONFIG

connection = None
database = None
APP_CONF = get_config(APP_CONFIG)


def get_connection():
    """
        get mongo connection
    :return: mongo connection
    """
    global connection
    if connection is None:
        connection = pymongo.MongoClient(host=APP_CONF['DB']['DB_HOST'],
                                         port=APP_CONF['DB']['DB_PORT'],
                                         username=APP_CONF['DB']['DB_USER'],
                                         password=APP_CONF['DB']['DB_PWD'])
    return connection


def get_database():
    """
        get mongo database object
    :return: mongo database object
    """
    global database
    if database is None: