예제 #1
0
def create(request):
    if request.method != 'POST':
        return error_page_free_format(request, 'invalid method')
    # activeユーザー以外はエラー
    if not request.user.is_active:
        return error_page_inactive(request)
    # is_admin権限なしの場合はエラー
    if not request.user.is_admin:
        return error_page_no_view_permission(request)
    try:
        time = get_adapter_misp_detail_create_time(request)
        if time is None:
            return error_page_free_format(request, 'Invalid Time format.')
        times = time.split(':')
        if len(times) == 1:
            return error_page_free_format(request, 'Invalid Time format.')
        # 数値変換チェック
        try:
            int(times[0])
            int(times[1])
            int(times[2])
        except ValueError:
            return error_page_free_format(request, 'Invalid Time format.')

        # Cron設定
        # job追加
        job = MispAdapter.add_job(type_=ScheduleJobs.JOB_CRON, hour=times[0], minute=times[1], second=times[2])
        misp.add_job(job)
    except Exception:
        # エラーページ
        return error_page(request)
    return misp_common_render(request)
예제 #2
0
def interval(request):
    if request.method != 'GET':
        return error_page_free_format(request, 'invalid method')
    # activeユーザー以外はエラー
    if not request.user.is_active:
        return error_page_inactive(request)
    # is_admin権限なしの場合はエラー
    if not request.user.is_admin:
        return error_page_no_view_permission(request)
    try:
        interval = get_adapter_misp_detail_interval_interval(request)
        # schedular からジョブを削除
        misp.remove_interval_job()
        # mongo 格納の設定からジョブを削除
        MispAdapter.remove_internal_job()
        if interval != 0:
            # Mongo の misp に jobを追加する (設定の保存のみ)
            job = MispAdapter.add_job(type_=ScheduleJobs.JOB_INTERVAL, seconds=interval)
            # job 動作追加
            misp.add_job(job)
            info_msg = 'Set Interval %d sec' % (interval)
        else:
            # ジョブの追加をしない
            info_msg = 'Stop a job by interval'
        return misp_common_render(request, info_msg=info_msg)
    except Exception:
        # エラーページ
        return error_page(request)