Ejemplo n.º 1
0
def setIpv6Black():
    args = getArgs()
    data = checkArgs(args, ['addr'])
    if not data[0]:
        return data[1]

    addr = args['addr'].replace('_', ':')
    path = getRuleJsonPath('ipv6_black')

    content = mw.readFile(path)
    content = json.loads(content)
    content.append(addr)

    cjson = mw.getJson(content)
    mw.writeFile(path, cjson)
    return mw.returnJson(True, '设置成功!')
Ejemplo n.º 2
0
def setRetry():
    args = getArgs()
    data = checkArgs(args,
                     ['retry', 'retry_time', 'retry_cycle', 'is_open_global'])
    if not data[0]:
        return data[1]

    conf = getJsonPath('config')
    content = mw.readFile(conf)
    cobj = json.loads(content)

    cobj['retry'] = args

    cjson = mw.getJson(cobj)
    mw.writeFile(conf, cjson)

    return mw.returnJson(True, '设置成功!', [])
Ejemplo n.º 3
0
def getSiteRule():
    args = getArgs()
    data = checkArgs(args, ['siteName', 'ruleName'])
    if not data[0]:
        return data[1]

    siteName = args['siteName']
    siteRule = args['ruleName']

    path = getJsonPath('site')
    content = mw.readFile(path)
    content = json.loads(content)

    r = content[siteName][siteRule]

    cjson = mw.getJson(r)
    return mw.returnJson(True, 'ok!', cjson)
Ejemplo n.º 4
0
def setObjStatus():
    args = getArgs()
    data = checkArgs(args, ['obj', 'statusCode'])
    if not data[0]:
        return data[1]

    conf = getJsonPath('config')
    content = mw.readFile(conf)
    cobj = json.loads(content)

    o = args['obj']
    status = args['statusCode']
    cobj[o]['status'] = status

    cjson = mw.getJson(cobj)
    mw.writeFile(conf, cjson)
    return mw.returnJson(True, '设置成功!')
Ejemplo n.º 5
0
def getAllUser(search=''):
    svn_auth_file = getServerDir() + '/data/conf/svn_auth_file'
    if not os.path.exists(svn_auth_file):
        return mw.getJson([])
    auth = mw.readFile(svn_auth_file)
    auth = auth.strip()
    auth_list = auth.split("\n")

    ulist = []
    for x in range(len(auth_list)):
        tmp = auth_list[x].split(':')
        if search != '':
            if tmp[0].find(search) != -1:
                ulist.append(tmp[0])
        else:
            ulist.append(tmp[0])
    return ulist
Ejemplo n.º 6
0
def removeSiteCdnHeader():
    args = getArgs()
    data = checkArgs(args, ['siteName', 'cdn_header'])
    if not data[0]:
        return data[1]
    path = getJsonPath('site')
    content = mw.readFile(path)
    content = json.loads(content)

    siteName = args['siteName']
    retData = {}
    if siteName in content:
        content[siteName]['cdn_header'].remove(args['cdn_header'])

    cjson = mw.getJson(content)
    mw.writeFile(path, cjson)
    return mw.returnJson(True, '删除成功!')
Ejemplo n.º 7
0
    def getList(self, page, limit):

        start = (page - 1) * limit

        _list = mw.M('firewall').field('id,port,ps,addtime').limit(
            str(start) + ',' + str(limit)).order('id desc').select()
        data = {}
        data['data'] = _list

        count = mw.M('firewall').count()
        _page = {}
        _page['count'] = count
        _page['tojs'] = 'showAccept'
        _page['p'] = page

        data['page'] = mw.getPage(_page)
        return mw.getJson(data)
Ejemplo n.º 8
0
def removeIpBlack():
    args = getArgs()
    data = checkArgs(args, ['index'])
    if not data[0]:
        return data[1]

    index = args['index']

    path = getRuleJsonPath('ip_black')
    content = mw.readFile(path)
    content = json.loads(content)

    k = content[int(index)]
    content.remove(k)

    cjson = mw.getJson(content)
    mw.writeFile(path, cjson)
    return mw.returnJson(True, '设置成功!')
Ejemplo n.º 9
0
def addSiteRule():
    args = getArgs()
    data = checkArgs(args, ['siteName', 'ruleName', 'ruleValue'])
    if not data[0]:
        return data[1]

    siteName = args['siteName']
    siteRule = args['ruleName']
    ruleValue = args['ruleValue']

    path = getJsonPath('site')
    content = mw.readFile(path)
    content = json.loads(content)

    content[siteName][siteRule].append(ruleValue)

    cjson = mw.getJson(content)
    mw.writeFile(path, cjson)
    return mw.returnJson(True, '设置成功!')
Ejemplo n.º 10
0
def setObjOpen():
    args = getArgs()
    data = checkArgs(args, ['obj'])
    if not data[0]:
        return data[1]

    conf = getJsonPath('config')
    content = mw.readFile(conf)
    cobj = json.loads(content)

    o = args['obj']
    if cobj[o]["open"]:
        cobj[o]["open"] = False
    else:
        cobj[o]["open"] = True

    cjson = mw.getJson(cobj)
    mw.writeFile(conf, cjson)
    return mw.returnJson(True, '设置成功!')
Ejemplo n.º 11
0
def myDbStatus():
    result = {}
    db = pMysqlDb()
    data = db.query('show variables')
    isError = isSqlError(data)
    if isError != None:
        return isError

    gets = ['table_open_cache', 'thread_cache_size', 'query_cache_type', 'key_buffer_size', 'query_cache_size', 'tmp_table_size', 'max_heap_table_size', 'innodb_buffer_pool_size',
            'innodb_additional_mem_pool_size', 'innodb_log_buffer_size', 'max_connections', 'sort_buffer_size', 'read_buffer_size', 'read_rnd_buffer_size', 'join_buffer_size', 'thread_stack', 'binlog_cache_size']
    result['mem'] = {}
    for d in data:
        for g in gets:
            if d[0] == g:
                result['mem'][g] = d[1]
    if result['mem']['query_cache_type'] != 'ON':
        result[
            'mem']['query_cache_size'] = '0'
    return mw.getJson(result)
Ejemplo n.º 12
0
def removeSiteRule():
    args = getArgs()
    data = checkArgs(args, ['siteName', 'ruleName', 'index'])
    if not data[0]:
        return data[1]

    siteName = args['siteName']
    siteRule = args['ruleName']
    index = args['index']

    path = getJsonPath('site')
    content = mw.readFile(path)
    content = json.loads(content)

    ruleValue = content[siteName][siteRule][int(index)]
    content[siteName][siteRule].remove(ruleValue)

    cjson = mw.getJson(content)
    mw.writeFile(path, cjson)
    return mw.returnJson(True, '设置成功!')
Ejemplo n.º 13
0
def removeRule():
    args = getArgs()
    data = checkArgs(args, ['ruleName', 'index'])
    if not data[0]:
        return data[1]

    index = int(args['index'])
    ruleName = args['ruleName']

    fpath = getRuleJsonPath(ruleName)
    content = mw.readFile(fpath)
    content = json.loads(content)

    k = content[index]
    content.remove(k)

    cjson = mw.getJson(content)
    mw.writeFile(fpath, cjson)

    return mw.returnJson(True, '设置成功!', content)
Ejemplo n.º 14
0
def projectScriptDebug():
    args = getArgs()
    if not 'user' in args:
        return mw.returnJson(True, 'username missing')

    if not 'name' in args:
        return mw.returnJson(True, 'project name missing')
    user = args['user']
    name = args['name'] + '.git'
    commit_log = getRootPath() + '/' + user + '/' + name + \
        '/custom_hooks/sh.log'

    data = {}
    if os.path.exists(commit_log):
        data['status'] = True
        data['path'] = commit_log
    else:
        data['status'] = False
        data['msg'] = '没有日志文件'

    return mw.getJson(data)
Ejemplo n.º 15
0
    def getLogList(self, page, limit, search=''):
        find_search = ''
        if search != '':
            find_search = "type like '%" + search + "%' or log like '%" + \
                search + "%' or addtime like '%" + search + "%'"

        start = (page - 1) * limit

        _list = mw.M('logs').where(find_search, ()).field(
            'id,type,log,addtime').limit(str(start) + ',' + str(limit)).order('id desc').select()
        data = {}
        data['data'] = _list

        count = mw.M('logs').where(find_search, ()).count()
        _page = {}
        _page['count'] = count
        _page['tojs'] = 'getLogs'
        _page['p'] = page

        data['page'] = mw.getPage(_page)
        return mw.getJson(data)
Ejemplo n.º 16
0
def getFtpList():
    args = getArgs()
    page = 1
    page_size = 10
    search = ''
    if 'page' in args:
        page = int(args['page'])

    if 'page_size' in args:
        page_size = int(args['page_size'])

    if 'search' in args:
        search = args['search']

    data = {}
    conn = pftpDB()
    limit = str((page - 1) * page_size) + ',' + str(page_size)
    # print limit, search
    condition = ''
    if not search == '':
        condition = "name like '%" + search + "%'"
    field = 'id,pid,name,password,path,status,ps,addtime'
    clist = conn.where(condition,
                       ()).field(field).limit(limit).order('id desc').select()

    count = conn.where(condition, ()).count()
    _page = {}
    _page['count'] = count
    _page['p'] = page
    _page['row'] = page_size
    _page['tojs'] = 'ftpList'
    data['page'] = mw.getPage(_page)

    info = {}
    info['ip'] = mw.getLocalIp()
    info['port'] = getFtpPort()
    data['info'] = info
    data['data'] = clist

    return mw.getJson(data)
Ejemplo n.º 17
0
    def listApi(self):

        p = request.form.get('p', '1')
        limit = request.form.get('limit', '10').strip()
        search = request.form.get('search', '').strip()

        start = (int(p) - 1) * int(limit)
        limit_str = str(start) + ',' + str(limit)

        _list = mw.M('tasks').where('', ()).field(
            'id,name,type,status,addtime,start,end').limit(limit_str).order('id desc').select()
        _ret = {}
        _ret['data'] = _list

        count = mw.M('tasks').where('', ()).count()
        _page = {}
        _page['count'] = count
        _page['tojs'] = 'remind'
        _page['p'] = p

        _ret['page'] = mw.getPage(_page)
        return mw.getJson(_ret)
Ejemplo n.º 18
0
def getDbList():
    args = getArgs()
    page = 1
    page_size = 10
    search = ''
    data = {}
    if 'page' in args:
        page = int(args['page'])

    if 'page_size' in args:
        page_size = int(args['page_size'])

    if 'search' in args:
        search = args['search']

    conn = pSqliteDb('databases')
    limit = str((page - 1) * page_size) + ',' + str(page_size)
    condition = ''
    if not search == '':
        condition = "name like '%" + search + "%'"
    field = 'id,pid,name,username,password,accept,ps,addtime'
    clist = conn.where(condition, ()).field(
        field).limit(limit).order('id desc').select()
    count = conn.where(condition, ()).count()
    _page = {}
    _page['count'] = count
    _page['p'] = page
    _page['row'] = page_size
    _page['tojs'] = 'dbList'
    data['page'] = mw.getPage(_page)
    data['data'] = clist

    info = {}
    info['root_pwd'] = pSqliteDb('config').where(
        'id=?', (1,)).getField('mysql_root')
    data['info'] = info

    return mw.getJson(data)
Ejemplo n.º 19
0
def initDomainInfo():
    data = []
    path_domains = getJsonPath('domains')

    _list = mw.M('sites').field('id,name,path').where(
        'status=?', ('1', )).order('id desc').select()

    for i in range(len(_list)):
        tmp = {}
        tmp['name'] = _list[i]['name']
        tmp['path'] = _list[i]['path']

        _list_domain = mw.M('domain').field('name').where(
            'pid=?', (_list[i]['id'], )).order('id desc').select()

        tmp_j = []
        for j in range(len(_list_domain)):
            tmp_j.append(_list_domain[j]['name'])

        tmp['domains'] = tmp_j
        data.append(tmp)
    cjson = mw.getJson(data)
    mw.writeFile(path_domains, cjson)
Ejemplo n.º 20
0
def setCcConf():
    args = getArgs()
    data = checkArgs(args, ['siteName', 'cycle', 'limit',
                            'endtime', 'is_open_global', 'increase'])
    if not data[0]:
        return data[1]

    conf = getJsonPath('config')
    content = mw.readFile(conf)
    cobj = json.loads(content)

    tmp = cobj['cc']

    tmp['cycle'] = int(args['cycle'])
    tmp['limit'] = int(args['limit'])
    tmp['endtime'] = int(args['endtime'])
    tmp['is_open_global'] = args['is_open_global']
    tmp['increase'] = args['increase']
    cobj['cc'] = tmp

    cjson = mw.getJson(cobj)
    mw.writeFile(conf, cjson)
    return mw.returnJson(True, '设置成功!', [])
Ejemplo n.º 21
0
def setRuleState():
    args = getArgs()
    data = checkArgs(args, ['ruleName', 'index'])
    if not data[0]:
        return data[1]

    index = int(args['index'])
    ruleName = args['ruleName']

    fpath = getRuleJsonPath(ruleName)
    content = mw.readFile(fpath)
    content = json.loads(content)

    b = content[index][0]
    if b == 1:
        content[index][0] = 0
    else:
        content[index][0] = 1

    cjson = mw.getJson(content)
    mw.writeFile(fpath, cjson)

    return mw.returnJson(True, '设置成功!', content)
Ejemplo n.º 22
0
    def setControl(self, stype, day):

        filename = 'data/control.conf'

        if stype == '0':
            mw.execShell("rm -f " + filename)
        elif stype == '1':
            _day = int(day)
            if _day < 1:
                return mw.returnJson(False, "设置失败!")
            mw.writeFile(filename, day)
        elif stype == 'del':
            if not mw.isRestart():
                return mw.returnJson(False, '请等待所有安装任务完成再执行')
            os.remove("data/system.db")

            sql = db.Sql().dbfile('system')
            csql = mw.readFile('data/sql/system.sql')
            csql_list = csql.split(';')
            for index in range(len(csql_list)):
                sql.execute(csql_list[index], ())
            return mw.returnJson(True, "监控服务已关闭")
        else:
            data = {}
            if os.path.exists(filename):
                try:
                    data['day'] = int(mw.readFile(filename))
                except:
                    data['day'] = 30
                data['status'] = True
            else:
                data['day'] = 30
                data['status'] = False
            return mw.getJson(data)

        return mw.returnJson(True, "设置成功!")
Ejemplo n.º 23
0
def projectList():
    import math
    args = getArgs()

    page = 1
    page_size = 10
    search = ''
    if 'page' in args:
        page = int(args['page'])

    if 'page_size' in args:
        page_size = int(args['page_size'])

    if 'search' in args:
        search = args['search']

    dlist = getALlProjectList(search)
    dlist_sum = len(dlist)

    start = (page - 1) * page_size
    ret_data = dlist[start:start + page_size]
    ret_data = checkProjectListIsHasScript(ret_data)

    data = {}
    data['data'] = ret_data
    data['list'] = mw.getPage({
        'count': dlist_sum,
        'p': page,
        'row': 10,
        'tojs': 'csvnProjectList'
    })
    data['ip'] = mw.getLocalIp()
    data['port'] = getHttpPort()
    data['csvn_port'] = getCsvnPort()

    return mw.getJson(data)
Ejemplo n.º 24
0
    def getTaskSpeedApi(self):
        tempFile = os.getcwd() + '/tmp/panelExec.log'
        freshFile = os.getcwd() + '/tmp/panelFresh'

        find = mw.M('tasks').where(
            'status=? OR status=?',
            ('-1', '0')).field('id,type,name,execstr').find()
        if not len(find):
            return mw.returnJson(False, '当前没有任务队列在执行-2!')

        isTask = os.getcwd() + '/tmp/panelTask.pl'
        mw.writeFile(isTask, 'True')

        echoMsg = {}
        echoMsg['name'] = find['name']
        echoMsg['execstr'] = find['execstr']
        if find['type'] == 'download':
            import json
            try:
                tmp = mw.readFile(tempFile)
                if len(tmp) < 10:
                    return mw.returnJson(False, '当前没有任务队列在执行-3!')
                echoMsg['msg'] = json.loads(tmp)
                echoMsg['isDownload'] = True
            except:
                mw.M('tasks').where("id=?",
                                    (find['id'], )).save('status', ('0', ))
                return mw.returnJson(False, '当前没有任务队列在执行-4!')
        else:
            echoMsg['msg'] = mw.getLastLine(tempFile, 10)
            echoMsg['isDownload'] = False

        echoMsg['task'] = mw.M('tasks').where(
            "status!=?",
            ('1', )).field('id,status,name,type').order("id asc").select()
        return mw.getJson(echoMsg)
Ejemplo n.º 25
0
def gogsEdit():
    data = {}
    data['post_receive'] = getPluginDir() + '/hook/post-receive.tpl'
    data['commit'] = getPluginDir() + '/hook/commit.tpl'
    return mw.getJson(data)
Ejemplo n.º 26
0
 def getLoadAverageApi(self):
     start = request.args.get('start', '')
     end = request.args.get('end', '')
     data = self.getLoadAverageData(start, end)
     return mw.getJson(data)
Ejemplo n.º 27
0
 def getNetworkIoApi(self):
     start = request.args.get('start', '')
     end = request.args.get('end', '')
     data = self.getNetWorkIoData(start, end)
     return mw.getJson(data)
Ejemplo n.º 28
0
 def rememoryApi(self):
     os.system('sync')
     scriptFile = mw.getRunDir() + '/script/rememory.sh'
     mw.execShell("/bin/bash " + scriptFile)
     data = self.getMemInfo()
     return mw.getJson(data)
Ejemplo n.º 29
0
def csvnEdit():
    data = {}
    data['svn_access_file'] = getServerDir() + '/data/conf/svn_access_file'
    data['commit_tpl'] = getPluginDir() + '/hook/commit.tpl'
    data['post_commit_tpl'] = getPluginDir() + '/hook/post-commit.tpl'
    return mw.getJson(data)
Ejemplo n.º 30
0
def getGogsConf():
    gets = [
        {
            'name': 'DOMAIN',
            'type': -1,
            'ps': '服务器域名'
        },
        {
            'name': 'ROOT_URL',
            'type': -1,
            'ps': '公开的完整URL路径'
        },
        {
            'name': 'HTTP_ADDR',
            'type': -1,
            'ps': '应用HTTP监听地址'
        },
        {
            'name': 'HTTP_PORT',
            'type': -1,
            'ps': '应用 HTTP 监听端口号'
        },
        {
            'name': 'START_SSH_SERVER',
            'type': 2,
            'ps': '启动内置SSH服务器'
        },
        {
            'name': 'SSH_PORT',
            'type': -1,
            'ps': 'SSH 端口号'
        },
        {
            'name': 'REQUIRE_SIGNIN_VIEW',
            'type': 2,
            'ps': '强制登录浏览'
        },
        {
            'name': 'ENABLE_CAPTCHA',
            'type': 2,
            'ps': '启用验证码服务'
        },
        {
            'name': 'DISABLE_REGISTRATION',
            'type': 2,
            'ps': '禁止注册,只能由管理员创建帐号'
        },
        {
            'name': 'ENABLE_NOTIFY_MAIL',
            'type': 2,
            'ps': '是否开启邮件通知'
        },
        {
            'name': 'FORCE_PRIVATE',
            'type': 2,
            'ps': '强制要求所有新建的仓库都是私有'
        },
        {
            'name': 'SHOW_FOOTER_BRANDING',
            'type': 2,
            'ps': 'Gogs推广信息'
        },
        {
            'name': 'SHOW_FOOTER_VERSION',
            'type': 2,
            'ps': 'Gogs版本信息'
        },
        {
            'name': 'SHOW_FOOTER_TEMPLATE_LOAD_TIME',
            'type': 2,
            'ps': 'Gogs模板加载时间'
        },
    ]
    conf = mw.readFile(getConf())
    result = []

    for g in gets:
        rep = g['name'] + '\s*=\s*(.*)'
        tmp = re.search(rep, conf)
        if not tmp:
            continue
        g['value'] = tmp.groups()[0]
        result.append(g)
    return mw.getJson(result)