示例#1
0
def addprofile():

    existResult = db_session.query(Rules_Profile).filter_by(
        name=request.form['name']).first()

    try:
        _pattern = None
        #같은 이름의 룰이 존재한다면 추가 대신 수정한다.
        if (existResult == None):
            _pattern = Rules_Profile()
        else:
            _pattern = existResult

        _pattern.group_code = request.form.get('group_code')
        _pattern.name = request.form['name']
        _pattern.description = request.form['description']
        _pattern.pattern_ui = request.form['pattern_ui']
        _pattern.pattern_query = GetLinkDnaListQueryForProfile(
            _pattern.pattern_ui)
        _pattern.pattern_operation = GetProfileOperation(
            _pattern.pattern_ui, request.form['name'],
            request.form.get('group_code'))
        db_session.add(_pattern)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
示例#2
0
def addcrawllist():

    # try:
    #     _pattern = Rules_Crawl()
    #     _pattern.uri =request.form['pattern']
    #     _pattern.depth = int(request.form['depth'])
    #     _pattern.desc = request.form['desc']
    #     _pattern.register_path = request.form['source']
    #     Rules_Crawl.insertData(_pattern)
    #
    # except Exception as e:
    #     raise InvalidUsage('DB 저장 오류', status_code = 501)
    try:
        _pattern = Manual_Crawling_Info()
        # _pattern.type = request.form['type']

        _pattern.depth = request.form['depth'].strip()
        _pattern.url = request.form['url'].strip()
        # _pattern.mask = request.form['mask'].strip()
        _pattern.comment = request.form['comment']
        db_session.add(_pattern)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
示例#3
0
def addTypeA():
    existResult = db_session.query(Link_Element_TypeA).filter_by(src_type = request.form['type'])\
        .filter_by(dst_columns_name=request.form['dst_column']).first()
    if (existResult != None):
        raise InvalidUsage('중복된 요소가 존재합니다.', status_code=501)

    src_dataElement = Data_Element.query.filter_by(data_source=request.form['type']). \
        filter_by(column_name=request.form['src_column']).first()

    try:
        _pattern = Link_Element_TypeA()
        _pattern.src_type = request.form['type']
        _pattern.src_columns_name = request.form['src_column']
        _pattern.dst_columns_name = request.form['dst_column']
        _pattern.description = request.form['desc']
        _pattern.dst_data_type = src_dataElement.getLinkDataType()[0]
        _pattern.dst_data_size = src_dataElement.getLinkDataType()[1]
        _pattern.use_yn = request.form['use_yn']
        _pattern.del_yn = 'N'

        db_session.add(_pattern)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
示例#4
0
def addTypeB():
    existResult = db_session.query(Link_Element_TypeB).filter_by(
        dst_columns_name=request.form['name']).first()
    if (existResult != None):
        raise InvalidUsage('중복된 요소가 존재합니다.', status_code=501)

    try:
        _pattern = Link_Element_TypeB()
        _pattern.dst_columns_name = request.form['name']
        _pattern.description = request.form['desc']

        #operationFuntion 파라메터 생성
        opFunction = list()
        col0 = {
            "type": request.form.get("src_type0"),
            "id": request.form.get("src_column0"),
            "op": request.form.get("src_column_op0")
        }
        opFunction.append(col0)
        #요소 Source가 복수개인 경우
        if request.form.get("colCnt") == "2":
            col1 = {
                "type": request.form.get("src_type1"),
                "id": request.form.get("src_column1"),
                "op": request.form.get("src_column_op1")
            }
            opFunction.append(col1)

        time_range = None

        if request.form.get("tr_op") is not None:
            time_range = {
                "unit": request.form.get("tr_unit"),
                "value": [request.form.get("tr_value0")],
                "op": request.form.get("tr_op")
            }
            if request.form.get("tr_value1") is not None:
                time_range["value"].append(request.form.get("tr_value1"))

        _pattern.setOperateFunction(opFunction, request.form.get("op"),
                                    time_range)

        _pattern.description = request.form['desc']
        _pattern.analysis_cycle = request.form['cycle_value'] + request.form[
            'cycle_opt']
        _pattern.timespan = request.form[
            'timespan_opt'] if request.form['timespan_opt'] != '' else ''
        _pattern.dst_data_type = 'single' if request.form[
            'timespan_opt'] == '' else 'list'
        _pattern.use_yn = request.form['use_yn']
        _pattern.del_yn = 'N'

        db_session.add(_pattern)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
示例#5
0
def addFileData():
    # jsondata = request.form.get("dna_config");

    # 파일 로드

    file = request.files['file']
    if file.content_type == 'application/vnd.ms-excel':
        try:
            datalist = []
            spamreader = csv.reader(file)

            for index, row in enumerate(spamreader):
                # if index == 0 and isNumberString(row[0]) != True:
                #     continue
                # if isNumberString(row[0]) == True:
                #     datalist.append(row[0])
                # else:
                #     datalist.append(None)

                if int(row[1]) not in [8, 16, 24, 32]:
                    raise InvalidUsage('Mask value is not valid',
                                       status_code=501)

                try:
                    _pattern = Rules_White_IP()
                    _pattern.ip = row[0]
                    _pattern.mask = row[1]
                    _pattern.description = row[2]
                    db_session.add(_pattern)
                    db_session.commit()
                except Exception as e:
                    db_session.rollback()
                    raise InvalidUsage('DB 저장 오류', status_code=501)

        except Exception as e:
            raise InvalidUsage('CSV 로딩 실패, ' + e.message, status_code=501)

        # target link와 데이터 크기 비교
        # target_type = request.form.get("target_type")
        # target_seq = request.form.get("target_seq")
        # if ValidateTargetSize(datalist.__len__(), target_type, target_seq) == False:
        #     raise InvalidUsage('입력 데이터 사이즈가 다릅니다. ', status_code=501)

        # try:
        #     _pattern = Rules_White_IP()
        #     _pattern.ip = request.form['pattern'].strip()
        #     _pattern.mask = request.form['mask'].strip()
        #     _pattern.description = request.form['desc']
        #     db_session.add(_pattern)
        #     db_session.commit()
        # except Exception as e:
        #     db_session.rollback()
        #     raise InvalidUsage('DB 저장 오류', status_code=501)
    else:
        raise InvalidUsage('지원하지 않는 파일 포멧 입니다.', status_code=501)

    return ""
示例#6
0
 def addLog(src_ip, important, description):
     log = StandardLog()
     log.id = session['id']
     log.ip = src_ip
     log.importance = important
     log.description = description
     log.cre_dt = datetime.datetime.now()
     db_session.add(log)
     db_session.commit()
     return
示例#7
0
def addIP_Black():
    ip = request.form["ip"]
    desc = request.form["desc"]
    dupCheckResult = db_session.query(IP_BlackList).filter_by(ip=ip).first()
    if dupCheckResult is not None:
        raise InvalidUsage('중복된 IP가 존재 합니다.', status_code=501)
    blackip = IP_BlackList()
    blackip.ip = ip
    blackip.description = desc
    db_session.add(blackip)
    db_session.commit()
    return ""
示例#8
0
def addGroup():

    try:
        _pattern = Rules_Profile_Group()
        _pattern.time_gubun = request.form['time_gubun']
        _pattern.time_value = request.form['time_value']
        _pattern.name = request.form['name']
        _pattern.description = request.form['description']
        db_session.add(_pattern)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
示例#9
0
def addwhitelist():
    # dupCheckResult = db_session.query(Account).filter_by(id=id).first()
    # if dupCheckResult is not None:
    #     raise InvalidUsage('중복된 아이디가 있습니다.', status_code=500)
    try:
        _pattern = Rules_WhiteList()
        _pattern.md5 = request.form['pattern']
        _pattern.description = request.form['desc']
        _pattern.source = request.form['source']
        db_session.add(_pattern)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
示例#10
0
def add_dna():
    #logUtil.addLog(request.remote_addr,1,'links > list ')

    jsondata = request.form.get("dna_config")
    try:
        dna = DNA_Element()
        dna.dna_name = request.form.get("dna_name")
        dna.operate_function = jsondata
        dna.del_yn = 'N'
        db_session.add(dna)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
示例#11
0
def addStData():
    jsondata = request.form.get("dna_config")

    #파일 로드

    file = request.files['file']
    if file.content_type == 'application/vnd.ms-excel':
        try:
            datalist = []
            spamreader = csv.reader(file)

            for index, row in enumerate(spamreader):
                if index == 0 and isNumberString(row[0]) != True:
                    continue
                if isNumberString(row[0]) == True:
                    datalist.append(row[0])
                else:
                    datalist.append(None)

        except Exception as e:
            raise InvalidUsage('CSV 로딩 실패', status_code=501)

        # target link와 데이터 크기 비교
        target_type = request.form.get("target_type")
        target_seq = request.form.get("target_seq")
        if ValidateTargetSize(datalist.__len__(), target_type,
                              target_seq) == False:
            raise InvalidUsage('입력 데이터 사이즈가 다릅니다. ', status_code=501)

        try:
            dna = DNA_StandardData()
            dna.name = request.form.get("name")
            dna.list_data = json.dumps(datalist)
            dna.list_size = datalist.__len__()
            dna.mod_dt = datetime.datetime.now()
            dna.target_link_type = request.form.get("target_type")
            dna.target_link_seq = request.form.get("target_seq")
            dna.del_yn = 'N'
            db_session.add(dna)
            db_session.commit()
        except Exception as e:
            db_session.rollback()
            raise InvalidUsage('DB 저장 오류', status_code=501)
    else:
        raise InvalidUsage('지원하지 않는 파일 포멧 입니다.', status_code=501)

    return ""
示例#12
0
def ChangeAllowIpSetting():
    key = "ALLOW_IP"
    value = request.form.get("value")
    desc = request.form.get("description")
    ip_allow = db_session.query(GlobalSetting).filter_by(key=key).first()
    if ip_allow is not None:
        ip_allow.value = value
        ip_allow.description = desc
        db_session.commit()
    else:
        newSetting = GlobalSetting()
        newSetting.key = key
        newSetting.value = value
        newSetting.description = desc
        db_session.add(newSetting)
        db_session.commit()
    return ""
示例#13
0
def addSchedule():
    try:
        schedule = DNA_Schedule()
        schedule.dna_id = request.form['dna_id']
        schedule.description = request.form['desc']
        schedule.cycle = request.form['cycle_value'] + request.form['cycle_opt']
        schedule.start_time = request.form['start_time']
        schedule.cre_id = session.get('id')
        schedule.filter_ip = request.form['filter_ip']
        schedule.filter_data_type = request.form['filter_data_type']
        db_session.add(schedule)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
示例#14
0
def addAccount(id):
    dupCheckResult = db_session.query(Account).filter_by(id=id).first()
    if dupCheckResult is not None:
        raise InvalidUsage('중복된 아이디가 있습니다.', status_code=500)
    _account = Account()
    _account.id = id
    _account.password = pw = EncryptEncoder.sha256Encrypt(
        request.form["password"])
    _account.cre_dt = datetime.datetime.now()
    _account.email = request.form["email"]
    _account.mobile = request.form["mobile"]
    _account.role_id = request.form["role"]
    _account.culture = request.form["culture"]
    _account.comment = request.form["comment"]
    db_session.add(_account)
    db_session.commit()
    return ""
示例#15
0
def addwhiteip():
    exists = Rules_White_IP.query.filter_by(
        ip=request.form['pattern'].strip()).first()
    if exists is not None:
        raise InvalidUsage('중복 IP가 존재합니다.', status_code=501)

    try:
        _pattern = Rules_White_IP()
        _pattern.ip = request.form['pattern'].strip()
        _pattern.mask = request.form['mask'].strip()
        _pattern.description = request.form['desc']
        db_session.add(_pattern)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
示例#16
0
def addMalCnc():
    # dupCheckResult = db_session.query(Account).filter_by(id=id).first()
    # if dupCheckResult is not None:
    #     raise InvalidUsage('중복된 아이디가 있습니다.', status_code=500)
    try:
        _cnc = malicious_info()
        #_cnc.rule_type = request.form['type']
        _cnc.pattern_uri = request.form['uri']
        _cnc.description = request.form['desc']
        _cnc.detection_source = request.form['detection_source']
        #_cnc.source = request.form['source']
        db_session.add(_cnc)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
def add_Customer_Category():
    #exists = Integrated_Customer_Category.query.filter_by(ip=request.form['pattern'].strip()).first()
    # if exists is not None:
    #     raise InvalidUsage('중복 IP가 존재합니다.', status_code=501) # duplication is allowed.

    try:
        _pattern = Integrated_Customer_Category()
        _pattern.Customer_Category = request.form['Customer_Category']
        # _pattern.IP_Address = request.form['IP_Address'].strip()
        _pattern.Description = request.form['Description'].strip()
        # _pattern.Password = request.form['Password'].strip()
        # _pattern.description = request.form['desc']
        db_session.add(_pattern)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
示例#18
0
def add_Regular_Expression():
    #exists = Regular_Expression_Management.query.filter_by(ip=request.form['pattern'].strip()).first()
    # if exists is not None:
    #     raise InvalidUsage('중복 IP가 존재합니다.', status_code=501) # duplication is allowed.

    try:
        _pattern = Regular_Expression_Management()
        _pattern.Regular_Exp_Name = request.form['Regular_Exp_Name']
        # _pattern.IP_Address = request.form['IP_Address'].strip()
        _pattern.Regular_Exp = request.form['Regular_Exp'].strip()
        _pattern.Description = request.form['Description'].strip()
        # _pattern.Password = request.form['Password'].strip()
        # _pattern.description = request.form['desc']
        db_session.add(_pattern)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code = 501)

    return ""
示例#19
0
def addwhiteip_url():
    exists = Rules_White_IP_URL.query.filter_by(
        ip=request.form['pattern'].strip()).first()
    # if exists is not None:
    #     raise InvalidUsage('중복 IP가 존재합니다.', status_code=501) # duplication is allowed.

    try:
        _pattern = Rules_White_IP_URL()
        _pattern.type = request.form['type']
        _pattern.ip = request.form['pattern'].strip()
        _pattern.url = request.form['url'].strip()
        _pattern.mask = request.form['mask'].strip()
        _pattern.description = request.form['desc']
        db_session.add(_pattern)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
def addwhiteip_url():
    #exists = Integrated_IPS_Management.query.filter_by(ip=request.form['pattern'].strip()).first()
    # if exists is not None:
    #     raise InvalidUsage('중복 IP가 존재합니다.', status_code=501) # duplication is allowed.

    try:
        _pattern = Integrated_IPS_Management()
        _pattern.IPS_Name = request.form['IPS_Name']
        _pattern.IP_Address = request.form['IP_Address'].strip()
        _pattern.Description = request.form['Description'].strip()
        c = crypto.AESCipher()
        encryptedValue = c.encrypt(request.form['Password'].strip())
        _pattern.Password = encryptedValue
        # _pattern.description = request.form['desc']
        db_session.add(_pattern)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
示例#21
0
def addipcollection():
    exists = Rules_IP_Collection.query.filter_by(
        ip=request.form['pattern'].strip()).first()
    if exists is not None:
        raise InvalidUsage('중복 IP가 존재합니다.', status_code=501)

    try:
        _pattern = Rules_IP_Collection()
        _pattern.ip = request.form['pattern'].strip()
        _pattern.mask = request.form['mask'].strip()
        _pattern.detection_point = request.form['detection_point'].strip()
        _pattern.etc = request.form['etc'].strip()
        _pattern.description = request.form['description'].strip()
        _pattern.use_yn = request.form['use_yn'].strip()
        #_pattern.description = request.form['desc']
        db_session.add(_pattern)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
示例#22
0
def addblacklist():
    # dupCheckResult = db_session.query(Account).filter_by(id=id).first()
    # if dupCheckResult is not None:
    #     raise InvalidUsage('중복된 아이디가 있습니다.', status_code=500)
    try:
        _pattern = Rules_BlackList()
        _pattern.rule_name = request.form['rule_name']
        _pattern.mal_file_name = request.form['mal_file_name']
        _pattern.md5 = request.form['pattern']
        _pattern.uri = request.form['uri']
        _pattern.description = request.form['analysis_device']
        #_pattern.size = int(request.form['size'])
        _pattern.analysis_device = request.form['desc']
        _pattern.detection_source = request.form['detection_source']
        #_pattern.source = request.form['source']
        db_session.add(_pattern)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
示例#23
0
def add_Company_IP_Element():
    #exists = Integrated_Company_IP_Management.query.filter_by(ip=request.form['pattern'].strip()).first()
    # if exists is not None:
    #     raise InvalidUsage('중복 IP가 존재합니다.', status_code=501) # duplication is allowed.

    try:
        _pattern = Integrated_Company_IP_Management()
        _pattern.Head_Quarter = request.form['Head_Quarter']
        _pattern.Center_Name = request.form['Center_Name']
        _pattern.Team_Name = request.form['Team_Name']
        _pattern.IP_Address = request.form['IP_Address']
        _pattern.Host_Name = request.form['Host_Name']
        _pattern.Device_Description = request.form['Device_Description']
        # _pattern.IP_Address = request.form['IP_Address'].strip()
        _pattern.Description = request.form['Description'].strip()
        # _pattern.Password = request.form['Password'].strip()
        # _pattern.description = request.form['desc']
        db_session.add(_pattern)
        db_session.commit()
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
示例#24
0
def addcrawllistBatch():

    # try:
    #     _pattern = Rules_Crawl()
    #     _pattern.uri =request.form['pattern']
    #     _pattern.depth = int(request.form['depth'])
    #     _pattern.desc = request.form['desc']
    #     _pattern.register_path = request.form['source']
    #     Rules_Crawl.insertData(_pattern)
    #
    # except Exception as e:
    #     raise InvalidUsage('DB 저장 오류', status_code = 501)
    file = request.files['file']
    timestamp = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    if file.filename.split(".")[1] == 'csv':
        try:
            datalist = []
            spamreader = csv.reader(file)
            next(spamreader)
            for index, row in enumerate(spamreader):

                # if str(row[0]) not in ["Portal", "Video", "AntiVirus", "SNS", "Network", "Server", "Etc"]:
                #     raise InvalidUsage('Type value is not valid', status_code=501)
                #
                # if int(row[2]) not in [8, 16, 24, 32]:
                #     raise InvalidUsage('Mask value is not valid', status_code=501)

                try:
                    _pattern = Manual_Crawling_Info()
                    _pattern.url = str(row[0])
                    _pattern.depth = int(row[1])
                    _pattern.comment = str(row[2])
                    _pattern.register_from = str(row[3])
                    _pattern.register_date = timestamp
                    # _pattern.description = row[4]

                    db_session.add(_pattern)
                    db_session.commit()
                except Exception as e:
                    db_session.rollback()
                    raise InvalidUsage('DB 저장 오류' + index + " line ",
                                       status_code=501)

        except Exception as e:
            raise InvalidUsage('CSV 로딩 실패, ' + e.message, status_code=501)
    else:
        raise InvalidUsage('지원하지 않는 파일 포멧 입니다.', status_code=501)
    # try:
    #     _pattern = Manual_Crawling_Info()
    #     # _pattern.type = request.form['type']
    #
    #     _pattern.depth = request.form['depth'].strip()
    #     _pattern.url = request.form['url'].strip()
    #     # _pattern.mask = request.form['mask'].strip()
    #     _pattern.comment = request.form['comment']
    #     db_session.add(_pattern)
    #     db_session.commit()
    # except Exception as e:
    #     db_session.rollback()
    #     raise InvalidUsage('DB 저장 오류', status_code = 501)

    return ""
示例#25
0
def addIpCollectionFileData():
    # jsondata = request.form.get("dna_config");

    # 파일 로드

    file = request.files['file']
    if file.filename.split(".")[1] == 'csv':
        try:
            datalist = []
            spamreader = csv.reader(file)

            for index, row in enumerate(spamreader):

                # if int(row[1]) not in [8, 16, 24, 32]:
                #     raise InvalidUsage('Mask value is not valid', status_code=501)

                try:
                    _pattern = Rules_IP_Collection()
                    _pattern.ip = row[0]
                    _pattern.mask = row[1]
                    _pattern.etc = row[2]
                    _pattern.description = row[3]
                    _pattern.use_yn = row[4]
                    #_pattern.description = row[3]
                    db_session.add(_pattern)
                    db_session.commit()
                except Exception as e:
                    db_session.rollback()
                    raise InvalidUsage('DB 저장 오류 ' + index + " line ",
                                       status_code=501)

        except Exception as e:
            raise InvalidUsage('CSV 로딩 실패, ' + e.message, status_code=501)

    elif file.filename.split(".")[1] == 'xlsx':
        try:
            wb = openpyxl.load_workbook(file)
            ws = wb.active
            for row in ws.rows:

                # if int(row[1].value) not in [8, 16, 24, 32]:
                #     raise InvalidUsage('Mask value is not valid', status_code=501)

                try:
                    _pattern = Rules_IP_Collection()
                    _pattern.ip = row[0].value
                    _pattern.mask = row[1].value
                    _pattern.etc = row[2].value
                    _pattern.description = row[3].value
                    _pattern.use_yn = row[4]

                    db_session.add(_pattern)
                    db_session.commit()
                except Exception as e:
                    db_session.rollback()
                    raise InvalidUsage('DB 저장 오류 ' + row[0].row + " line ",
                                       status_code=501)

        except Exception as e:
            raise InvalidUsage('xlsx 로딩 실패, ' + e.message, status_code=501)

    else:
        raise InvalidUsage('지원하지 않는 파일 포멧 입니다.', status_code=501)

    return ""
示例#26
0
def addfilesnalysislist():
    # dupCheckResult = db_session.query(Account).filter_by(id=id).first()
    # if dupCheckResult is not None:
    #     raise InvalidUsage('중복된 아이디가 있습니다.', status_code=500)
    try:
        if request.files['files'] is not None:
            Config = UploadConfiguration
            uset = UploadSet('files', ALL)
            #uset._config = Config('/usr/gsp/web_uploads')
            uploadpath = app.config['UPLOAD_FOLDER']
            subpath = datetime.datetime.now().strftime('%Y%m%d')
            combinepath = os.path.join(uploadpath,
                                       app.config['UPLOAD_CRAWLING_FOLDER'],
                                       subpath)
            uset._config = Config(combinepath)

            #DB 데이터 입력
            fileAnalysis = Rules_FileAnalysis()
            fileAnalysis.realfilename = uset.save(request.files['files'])
            fileAnalysis.orgfilename = request.files['files'].filename
            fileAnalysis.subpath = subpath
            fileAnalysis.description = request.form.get('desc')
            fileAnalysis.cre_id = session['id']
            db_session.add(fileAnalysis)
            db_session.commit()

            #elastic search 데이터 입력
            es = Elasticsearch([{
                'host': app.config['ELASTICSEARCH_URI'],
                'port': app.config['ELASTICSEARCH_PORT']
            }])
            doc = {
                '@timestamp':
                datetime.datetime.utcnow().isoformat(),
                'fileExt':
                os.path.splitext(fileAnalysis.orgfilename)[1],
                'nfs_path':
                ".\\{0}\\{1}\\{2}".format(app.config['UPLOAD_CRAWLING_FOLDER'],
                                          subpath, fileAnalysis.realfilename,
                                          fileAnalysis.realfilename),
                'data_type':
                "crawlings",
                'filePath':
                os.path.join(combinepath, fileAnalysis.realfilename),
                'fileName':
                fileAnalysis.realfilename,
                'origianl_fileName':
                fileAnalysis.orgfilename,
                'register_path':
                "001",
                'status':
                0
            }
            _index = 'gsp-{0}'.format(
                datetime.datetime.now().strftime("%Y.%m.%d"))
            es.index(index=_index, doc_type="url_crawleds", body=doc)

            return ""
    except Exception as e:
        db_session.rollback()
        raise InvalidUsage('DB 저장 오류', status_code=501)

    return ""
def addCustomer_CategoryFileData():
    # jsondata = request.form.get("dna_config");

    # 파일 로드

    file = request.files['file']
    if file.filename.split(".")[1] == 'csv':
        try:
            datalist = []
            spamreader = csv.reader(file)
            next(spamreader)
            for index, row in enumerate(spamreader):

                # if str(row[0]) not in ["Portal", "Video", "AntiVirus", "SNS", "Network", "Server", "Etc"]:
                #     raise InvalidUsage('Type value is not valid', status_code=501)
                #
                # if int(row[2]) not in [8, 16, 24, 32]:
                #     raise InvalidUsage('Mask value is not valid', status_code=501)

                try:
                    _pattern = Integrated_Customer_Category()
                    _pattern.Customer_Category = row[0]
                    _pattern.Description = row[1]
                    # _pattern.Description = row[2]
                    # _pattern.Password = row[3]
                    # _pattern.description = row[4]

                    db_session.add(_pattern)
                    db_session.commit()
                except Exception as e:
                    db_session.rollback()
                    raise InvalidUsage('DB 저장 오류' + index + " line ",
                                       status_code=501)

        except Exception as e:
            raise InvalidUsage('CSV 로딩 실패, ' + e.message, status_code=501)

    elif file.filename.split(".")[1] == 'xlsx':
        try:
            wb = openpyxl.load_workbook(file)
            ws = wb.active
            for index, row in enumerate(ws.iter_rows(min_row=2,
                                                     max_row=ws.max_row),
                                        start=2):

                # if row[0].value not in ["Portal", "Video", "AntiVirus", "SNS", "Network", "Server", "Etc"]:
                #     raise InvalidUsage('Type value is not valid', status_code=501)
                #
                # if int(row[2].value) not in [8, 16, 24, 32]:
                #     raise InvalidUsage('Mask value is not valid', status_code=501)

                try:
                    _pattern = Integrated_Customer_Category()
                    _pattern.Customer_Category = row[0].value
                    _pattern.Description = row[1].value
                    # _pattern.Description = row[2].value
                    # _pattern.Password = row[3].value
                    # _pattern.description = row[4].value

                    db_session.add(_pattern)
                    db_session.commit()
                except Exception as e:
                    db_session.rollback()
                    raise InvalidUsage('DB 저장 오류' + row[0].row + " line ",
                                       status_code=501)

        except Exception as e:
            raise InvalidUsage('xlsx 로딩 실패, ' + e.message, status_code=501)

    else:
        raise InvalidUsage('지원하지 않는 파일 포멧 입니다.', status_code=501)

    return json.dumps({'success': True}), 200, {
        'ContentType': 'application/json'
    }