Ejemplo n.º 1
0
def add_redis():
    host = RequestUtil.get_parameter('host', '')
    port = RequestUtil.get_parameter('port', '6379')
    password = RequestUtil.get_parameter('password', '')

    try:
        rst = RedisMonitor().ping(host=host, port=port, password=password)
        if not rst.get('success', ''):
            # ping 失败
            return JsonUtil.object_2_json(rst)
    except:
        ResponseUtil.standard_response(0, 'Ping error!')

    # ping 通,添加
    md5 = StringUtil.md5(host + str(port))
    redis_info = RedisInfo.query.get(md5)
    if redis_info:
        redis_info.password = password
    else:
        redis_info = RedisInfo(md5=md5,
                               host=host,
                               port=port,
                               password=password)
    redis_info.save()
    return ResponseUtil.standard_response(1, redis_info.dict())
Ejemplo n.º 2
0
def api_history_list():
    # login user
    user_id = RequestUtil.get_login_user().get('id', '')

    webhook_id = RequestUtil.get_parameter('webhook_id', '')

    if not AuthUtil.has_readonly_auth(user_id, webhook_id):
        return ResponseUtil.standard_response(0, 'Permission deny!')

    page = RequestUtil.get_parameter('page', '1')
    try:
        page = int(page)
        if page < 1:
            page = 1
    except:
        page = 1

    page_size = 25
    paginations = History.query\
        .filter_by(webhook_id=webhook_id)\
        .order_by(History.id.desc())\
        .paginate(page, page_size, error_out=False)

    histories = [history.dict() for history in paginations.items]

    data = {
        'histories': histories,
        'has_prev': paginations.has_prev,
        'has_next': paginations.has_next,
        'page': paginations.page
    }

    return ResponseUtil.standard_response(1, data)
Ejemplo n.º 3
0
Archivo: api.py Proyecto: hustcc/TODO
def save(user_id):
    id = RequestUtil.get_parameter(request, 'id', None)
    title = RequestUtil.get_parameter(request, 'title', None)
    completed = RequestUtil.get_parameter(request, 'completed', None)
    if completed == 'true':
        completed = True
    else:
        completed = False
    if id:
        todo = Todo.query.filter_by(id=id).first()
    else:
        todo = Todo(user_id=user_id,
                    add_time=DateUtil.now_datetime())  # new todo

    if todo and todo.user_id == user_id:
        # update it.
        if title:
            todo.title = title
        if completed is not None:
            todo.completed = completed


#         print todo.dict()
        todo.save()
        return ResponseUtil.standard_response(1, todo.dict())
    else:
        return ResponseUtil.standard_response(0, 'save error.')
Ejemplo n.º 4
0
def api_server_new():
    # login user
    user_id = RequestUtil.get_login_user().get('id', '')

    ip = RequestUtil.get_parameter('ip', '')
    name = RequestUtil.get_parameter('name', ip)
    name = name and name or ip
    port = RequestUtil.get_parameter('port', 22)
    account = RequestUtil.get_parameter('account', '')
    pkey = RequestUtil.get_parameter('pkey', '')

    if not all((ip, name, port, account, pkey)):
        return ResponseUtil.standard_response(0, 'Form data can not be blank!')

    try:
        success, log = SshUtil.do_ssh_cmd(ip,
                                          port,
                                          account,
                                          pkey,
                                          'ls -lh',
                                          timeout=5)
        if success:
            server = Server(ip=ip,
                            port=port,
                            account=account,
                            pkey=pkey,
                            user_id=user_id,
                            name=name)

            server.save()

            return ResponseUtil.standard_response(1, server.dict())
    except Exception, e:
        print e
Ejemplo n.º 5
0
def redis_ping():
    try:
        host = RequestUtil.get_parameter(request, "host", "")
        port = int(RequestUtil.get_parameter(request, "port", "6379"))
        password = RequestUtil.get_parameter(request, "password", "")
        rst = RedisMonitor().ping(host=host, port=port, password=password)
    except:
        rst = {"success": 0, "data": "ping error"}
    return OtherUtil.object_2_dict(rst)
Ejemplo n.º 6
0
def redis_ping():
    try:
        host = RequestUtil.get_parameter(request, 'host', '')
        port = int(RequestUtil.get_parameter(request, 'port', '6379'))
        password = RequestUtil.get_parameter(request, 'password', '')
        rst = RedisMonitor().ping(host=host, port=port, password=password)
    except:
        rst = {'success': 0, 'data': 'ping error'}
    return OtherUtil.object_2_dict(rst)
Ejemplo n.º 7
0
def redis_ping():
    try:
        host = RequestUtil.get_parameter(request, 'host', '')
        port = int(RequestUtil.get_parameter(request, 'port', '6379'))
        password = RequestUtil.get_parameter(request, 'password', '')
        rst = RedisMonitor().ping(host = host, port = port, password = password)
    except:
        rst = {'success': 0, 'data': 'ping error'}
    return OtherUtil.object_2_dict(rst)
Ejemplo n.º 8
0
def redis_ping():
    try:
        host = RequestUtil.get_parameter('host', '')
        port = RequestUtil.get_parameter('port', '6379')
        password = RequestUtil.get_parameter('password', '')

        rst = RedisMonitor().ping(host=host, port=port, password=password)
    except:
        rst = {'success': 0, 'data': 'ping error!'}
    return JsonUtil.object_2_json(rst)
Ejemplo n.º 9
0
def add_redis():
    redis_host = RequestUtil.get_parameter(request, "host", "")
    redis_port = int(RequestUtil.get_parameter(request, "port", "6379"))
    redis_pass = RequestUtil.get_parameter(request, "password", "")
    email = RequestUtil.get_parameter(request, "email", "")

    rid = redisinfo_dbs.add_redis(redis_host, redis_port, redis_pass, email)

    if rid:
        rst = {"success": 1, "data": ""}
    else:
        rst = {"success": 0, "data": "add redis error"}
    return OtherUtil.object_2_dict(rst)
Ejemplo n.º 10
0
def add_redis():
    redis_host = RequestUtil.get_parameter(request, 'host', '')
    redis_port = int(RequestUtil.get_parameter(request, 'port', '6379'))
    redis_pass = RequestUtil.get_parameter(request, 'password', '')
    email = RequestUtil.get_parameter(request, 'email', '')

    rid = redisinfo_dbs.add_redis(redis_host, redis_port, redis_pass, email)

    if rid:
        rst = {'success': 1, 'data': ''}
    else:
        rst = {'success': 0, 'data': 'add redis error'}
    return OtherUtil.object_2_dict(rst)
Ejemplo n.º 11
0
def add_redis():
    redis_host = RequestUtil.get_parameter(request, 'host', '')
    redis_port = int(RequestUtil.get_parameter(request, 'port', '6379'))
    redis_pass = RequestUtil.get_parameter(request, 'password', '')
    email = RequestUtil.get_parameter(request, 'email', '')
    
    rid = redisinfo_dbs.add_redis(redis_host, redis_port, redis_pass, email)
    
    if rid:
        rst = {'success': 1, 'data': ''}
    else:
        rst = {'success': 0, 'data': 'add redis error'}
    return OtherUtil.object_2_dict(rst)
Ejemplo n.º 12
0
def flushall_redis():
    try:
        md5 = RequestUtil.get_parameter('md5', '')
        db = RequestUtil.get_parameter('db', '0')

        redis_info = RedisInfo.query.get(md5)
        if redis_info:
            r = RedisUtil.flushall(redis_info.host, redis_info.port,
                                   redis_info.password, db)
            if r:
                return ResponseUtil.standard_response(1, 'Success!')
            return ResponseUtil.standard_response(0, 'Flush db error!')
        return ResponseUtil.standard_response(0, 'Not Found!')
    except:
        return ResponseUtil.standard_response(0, 'Connect to redis error!')
Ejemplo n.º 13
0
def get_server_paramter():
    try:
        type = RequestUtil.get_parameter(request, "type", "")
        host = RequestUtil.get_parameter(request, "host", "1")
        port = int(RequestUtil.get_parameter(request, "port", "6379"))
        password = RequestUtil.get_parameter(request, "password", "")
        if type == "http":
            rst = HttpMonitor().get_info(url=host)
        elif type == "redis":
            rst = RedisMonitor().get_info(host=host, port=port, password=password)
        else:
            rst = {"success": 1, "data": 0}
    except:
        rst = {"success": 0, "data": ""}
    return OtherUtil.object_2_dict(rst)
Ejemplo n.º 14
0
def redis_info():
    md5 = RequestUtil.get_parameter('md5', '')
    redis_info = RedisInfo.query.get(md5)

    if redis_info:
        return ResponseUtil.standard_response(1, redis_info.dict())
    return ResponseUtil.standard_response(0, 'Not Found!')
Ejemplo n.º 15
0
def flushall_redis():
    try:
        redis_md5 = RequestUtil.get_parameter(request, 'md5', '')
        db = RequestUtil.get_parameter(request, 'db', 0)
        redis_info = redisinfo_dbs.get_redis(redis_md5)
        if redis_info:
            r = RedisUtil.flushall(redis_info['redis_host'], redis_info['redis_port'], redis_info['redis_pass'], db)
            if r:
                rst = {'success': 1, 'data': ''}
            else:
                rst = {'success': 0, 'data': 'flush db error!'}
        else:
            rst = {'success': 0, 'data': 'not exist redis informations'}
    except:
        rst = {'success': 0, 'data': 'connect to redis error'}
    return OtherUtil.object_2_dict(rst)
Ejemplo n.º 16
0
def api_webhook_retry():
    # login user
    user_id = RequestUtil.get_login_user().get('id', '')
    webhook_id = RequestUtil.get_parameter('webhook_id', '')

    data = {
        'src': 'Manually executed'
    }
    webhook = WebHook.query.get(webhook_id)
    if not webhook:
        return ResponseUtil.standard_response(0, 'WebHooknot exist!')

    if not AuthUtil.has_readonly_auth(user_id, webhook_id):
        return ResponseUtil.standard_response(0, 'Permission deny!')

#     if webhook.status not in ['3', '4', '5']:
#         return ResponseUtil.standard_response(0, 'Webhook is Executing!')

    history = History(webhook_id=webhook.id,
                      data=JsonUtil.object_2_json(data))
    history.updateStatus('1')
    # status is waiting
    webhook.updateStatus('1')
    # do the async task
    tasks.do_webhook_shell.delay(webhook.id, history.id, data, user_id=user_id)

    return ResponseUtil.standard_response(1, webhook.dict())
Ejemplo n.º 17
0
def del_redis():
    redis_md5 = RequestUtil.get_parameter(request, "md5", "")
    rid = redisinfo_dbs.delete_redis(redis_md5)
    if rid:
        rst = {"success": 1, "data": ""}
    else:
        rst = {"success": 0, "data": "del redis error"}
    return OtherUtil.object_2_dict(rst)
Ejemplo n.º 18
0
def get_server_paramter():
    try:
        type = RequestUtil.get_parameter(request, 'type', '')
        host = RequestUtil.get_parameter(request, 'host', '1')
        port = int(RequestUtil.get_parameter(request, 'port', '6379'))
        password = RequestUtil.get_parameter(request, 'password', '')
        if type == 'http':
            rst = HttpMonitor().get_info(url=host)
        elif type == 'redis':
            rst = RedisMonitor().get_info(host=host,
                                          port=port,
                                          password=password)
        else:
            rst = {'success': 1, 'data': 0}
    except:
        rst = {'success': 0, 'data': ''}
    return OtherUtil.object_2_dict(rst)
Ejemplo n.º 19
0
def del_redis():
    redis_md5 = RequestUtil.get_parameter(request, 'md5', '')
    rid = redisinfo_dbs.delete_redis(redis_md5)
    if rid:
        rst = {'success': 1, 'data': ''}
    else:
        rst = {'success': 0, 'data': 'del redis error'}
    return OtherUtil.object_2_dict(rst)
Ejemplo n.º 20
0
def del_redis():
    redis_md5 = RequestUtil.get_parameter(request, 'md5', '')
    rid = redisinfo_dbs.delete_redis(redis_md5)
    if rid:
        rst = {'success': 1, 'data': ''}
    else:
        rst = {'success': 0, 'data': 'del redis error'}
    return OtherUtil.object_2_dict(rst)
Ejemplo n.º 21
0
def del_redis():
    md5 = RequestUtil.get_parameter('md5', '')
    redis_info = RedisInfo.query.get(md5)

    if redis_info:
        redis_info.delete()
        return ResponseUtil.standard_response(1, 'Success!')
    return ResponseUtil.standard_response(0, 'Not Found!')
Ejemplo n.º 22
0
def flushall_redis():
    try:
        redis_md5 = RequestUtil.get_parameter(request, 'md5', '')
        db = RequestUtil.get_parameter(request, 'db', 0)
        redis_info = redisinfo_dbs.get_redis(redis_md5)
        if redis_info:
            r = RedisUtil.flushall(redis_info['redis_host'],
                                   redis_info['redis_port'],
                                   redis_info['redis_pass'], db)
            if r:
                rst = {'success': 1, 'data': ''}
            else:
                rst = {'success': 0, 'data': 'flush db error!'}
        else:
            rst = {'success': 0, 'data': 'not exist redis informations'}
    except:
        rst = {'success': 0, 'data': 'connect to redis error'}
    return OtherUtil.object_2_dict(rst)
Ejemplo n.º 23
0
Archivo: api.py Proyecto: hustcc/TODO
def remove(user_id):
    id = RequestUtil.get_parameter(request, 'id', None)

    if id:
        todo = Todo.query.filter_by(id=id).first()
        if todo:
            todo.delete()
            return ResponseUtil.standard_response(1, 'remove success.')
    return ResponseUtil.standard_response(0, 'remove error.')
Ejemplo n.º 24
0
def get_redis_paramter():
    try:
        redis_md5 = RequestUtil.get_parameter(request, 'md5', '')
        redis_info = redisinfo_dbs.get_redis(redis_md5)
        if redis_info:
            rst = RedisMonitor().get_info(host = redis_info['redis_host'], port = redis_info['redis_port'], password = redis_info['redis_pass'])
        else:
            rst = {'success': 0, 'data': 'not exist redis informations'}
    except:
        rst = {'success': 0, 'data': 'get redis realtime information error'}
    return OtherUtil.object_2_dict(rst)
Ejemplo n.º 25
0
def api_webhook_new():
    # login user
    user_id = RequestUtil.get_login_user().get('id', '')
    server_id = RequestUtil.get_parameter('server_id', '')
    # server must be added by yourself
    if not Server.query.filter_by(id=server_id, user_id=user_id).first():
        return ResponseUtil.standard_response(0, 'Permition deny!')

    repo = RequestUtil.get_parameter('repo', '')
    branch = RequestUtil.get_parameter('branch', '')
    shell = RequestUtil.get_parameter('shell', '')

    if not all((repo, branch, shell, server_id)):
        return ResponseUtil.standard_response(0, 'Form data can not be blank!')

    webhook_id = RequestUtil.get_parameter('id', '')
    if webhook_id:
        # update webhook
        # you can only update the webhook which you create.
        webhook = WebHook.query.filter_by(
            id=webhook_id, user_id=user_id).first()
        if not webhook:
            return ResponseUtil.standard_response(0, 'WebHook is not exist!')
        webhook.repo = repo
        webhook.branch = branch
        webhook.shell = shell
        webhook.server_id = server_id
    else:
        # new webhook
        webhook = WebHook(
            repo=repo,
            branch=branch,
            shell=shell,
            server_id=server_id,
            user_id=user_id,
            key=StringUtil.md5_token()
        )

    webhook.save()

    return ResponseUtil.standard_response(1, webhook.dict(with_key=True))
Ejemplo n.º 26
0
def api_webhook_delete():
    # login user
    user_id = RequestUtil.get_login_user().get('id', '')
    webhook_id = RequestUtil.get_parameter('webhook_id', '')

    webhook = WebHook.query.filter_by(user_id=user_id, id=webhook_id).first()
    if not webhook:
        return ResponseUtil.standard_response(0, 'Permition deny!')

    webhook.delete()

    return ResponseUtil.standard_response(1, 'Success')
Ejemplo n.º 27
0
def get_redis_paramter():
    try:
        redis_md5 = RequestUtil.get_parameter(request, 'md5', '')
        redis_info = redisinfo_dbs.get_redis(redis_md5)
        if redis_info:
            rst = RedisMonitor().get_info(host=redis_info['redis_host'],
                                          port=redis_info['redis_port'],
                                          password=redis_info['redis_pass'])
        else:
            rst = {'success': 0, 'data': 'not exist redis informations'}
    except:
        rst = {'success': 0, 'data': 'get redis realtime information error'}
    return OtherUtil.object_2_dict(rst)
Ejemplo n.º 28
0
def api_server_delete():
    # login user
    user_id = RequestUtil.get_login_user().get('id', '')
    server_id = RequestUtil.get_parameter('server_id', '')

    server = Server.query.filter_by(user_id=user_id, id=server_id).first()
    if not server:
        return ResponseUtil.standard_response(0, 'Permition deny!')

    server.deleted = True
    server.save()

    return ResponseUtil.standard_response(1, 'Success')
Ejemplo n.º 29
0
def get_redis_paramter():
    try:
        redis_md5 = RequestUtil.get_parameter(request, "md5", "")
        redis_info = redisinfo_dbs.get_redis(redis_md5)
        if redis_info:
            rst = RedisMonitor().get_info(
                host=redis_info["redis_host"], port=redis_info["redis_port"], password=redis_info["redis_pass"]
            )
        else:
            rst = {"success": 0, "data": "not exist redis informations"}
    except:
        rst = {"success": 0, "data": "get redis realtime information error"}
    return OtherUtil.object_2_dict(rst)
Ejemplo n.º 30
0
def api_webhook_delete():
    # login user
    user_id = RequestUtil.get_login_user().get('id', '')
    webhook_id = RequestUtil.get_parameter('webhook_id', '')

    # 验证创建者权限
    webhook = AuthUtil.has_admin_auth(user_id, webhook_id)
    if not webhook:
        return ResponseUtil.standard_response(0, 'Permission deny!')

    webhook.deleted = True
    webhook.save()

    return ResponseUtil.standard_response(1, 'Success')
Ejemplo n.º 31
0
def redis_monitor():
    try:
        md5 = RequestUtil.get_parameter('md5', '')
        redis_info = RedisInfo.query.get(md5)

        if redis_info:
            rst = RedisMonitor().get_info(host=redis_info.host,
                                          port=redis_info.port,
                                          password=redis_info.password)
        else:
            rst = {'success': 0, 'data': 'not exist redis informations!'}
    except:
        rst = {'success': 0, 'data': 'get redis realtime information error!'}
    return JsonUtil.object_2_json(rst)
Ejemplo n.º 32
0
def api_server_new():
    # login user
    user_id = RequestUtil.get_login_user().get('id', '')

    ip = RequestUtil.get_parameter('ip', '')
    name = RequestUtil.get_parameter('name', ip)
    name = name and name or ip
    port = RequestUtil.get_parameter('port', 22)
    account = RequestUtil.get_parameter('account', '')
    pkey = RequestUtil.get_parameter('pkey', '')

    if not all((ip, name, port, account, pkey)):
        return ResponseUtil.standard_response(0, 'Form data can not be blank!')

    try:
        success, log = SshUtil.do_ssh_cmd(ip,
                                          port,
                                          account,
                                          pkey,
                                          'ls -lh',
                                          timeout=5)
        if success:
            server_id = RequestUtil.get_parameter('id', '')
            if server_id:
                # update webhook
                # you can only update the webhook which you create.
                server = Server.query.filter_by(id=server_id,
                                                user_id=user_id).first()
                if not server:
                    return ResponseUtil.standard_response(
                        0, 'Server is not exist!')
                server.ip = ip
                server.port = port
                server.account = account
                server.pkey = pkey
                server.name = name
            else:
                server = Server(ip=ip,
                                port=port,
                                account=account,
                                pkey=pkey,
                                user_id=user_id,
                                name=name)

            server.save()

            return ResponseUtil.standard_response(1,
                                                  server.dict(with_pkey=True))
    except Exception as e:
        print(e)
    return ResponseUtil.standard_response(0, 'Server SSH connect error!')
Ejemplo n.º 33
0
def api_for_webhook(key):
    '''git hook data
    '''
    #     try:
    data = RequestUtil.get_parameter('hook', None)
    if data is None:
        data = request.data

#     for test
#     data = WebhookData.github
#     data = WebhookData.gitlab
#     data = WebhookData.gitosc
    try:
        data = json.loads(data)
        webhook = WebHook.query.filter_by(key=key).first()
        if webhook:
            repo = webhook.repo
            branch = webhook.branch

            # then repo and branch is match the config. then do the shell
            if HookDataParse.get_repo_name(
                    data) == repo and HookDataParse.get_repo_branch(
                        data) == branch:
                # start to process, add history into database
                # waiting to done
                history = History(status='1',
                                  webhook_id=webhook.id,
                                  data=JsonUtil.object_2_json(data))
                history.save()
                # status is waiting
                webhook.updateStatus('1')
                # do the async task
                tasks.do_webhook_shell.delay(webhook.id, history.id, data)
                return "Work put into Queue."

            return "Not match the Repo and Branch."
        else:
            return "The webhook is not exist."
    except Exception, e:
        return "Request is not valid Git webhook: " + str(e)