def __init__(self, maxcount=None): self.running = True self.cfg = Config() self.db = Database() self.maxcount = maxcount self.total_analysis_count = 0
import io import json import mock import os import responses import tempfile import zipfile from cuckoo.common.virustotal import VirusTotalAPI from cuckoo.core.database import Database from cuckoo.core.submit import SubmitManager from cuckoo.main import cuckoo_create from cuckoo.misc import set_cwd db = Database() class TestSubmitManager(object): def setup(self): set_cwd(tempfile.mkdtemp()) cuckoo_create(cfg={ "processing": { "virustotal": { "enabled": True, }, }, }) db.connect() db.add_machine("cuckoo1", "cuckoo2", "1.2.3.4", "windows", None, None,
def reboot(task_id): reboot_id = Database().add_reboot(task_id=task_id) if not reboot_id: return json_error(404, "Error creating reboot task") return jsonify(task_id=task_id, reboot_id=reboot_id)
def test_init_tasks(): def init(reschedule): set_cwd(tempfile.mkdtemp()) cuckoo_create(cfg={ "cuckoo": { "cuckoo": { "reschedule": reschedule, }, }, }) Database().connect() statuses = ( "pending", "running", "completed", "reported" ) tasks = [] for status in statuses: task_id = Database().add_path(__file__) Database().set_status(task_id, status) tasks.append(task_id) init_tasks() init(True) assert Database().view_task(1).status == "pending" assert Database().view_task(2).status == "recovered" assert Database().view_task(3).status == "completed" assert Database().view_task(4).status == "reported" assert Database().view_task(5).status == "pending" assert Database().view_task(6) is None init(False) assert Database().view_task(1).status == "pending" assert Database().view_task(2).status == "failed_analysis" assert Database().view_task(3).status == "completed" assert Database().view_task(4).status == "reported" assert Database().view_task(5) is None
import socket import tarfile import zipfile from flask import Flask, request, jsonify, make_response from cuckoo.common.config import config, parse_options from cuckoo.common.files import Files, Folders from cuckoo.common.utils import parse_bool from cuckoo.core.database import Database, Task from cuckoo.core.database import TASK_REPORTED, TASK_COMPLETED, TASK_RUNNING from cuckoo.core.rooter import rooter from cuckoo.core.submit import SubmitManager from cuckoo.misc import cwd, version, decide_cwd db = Database() sm = SubmitManager() # Initialize Flask app. app = Flask(__name__) def json_error(status_code, message): """Return a JSON object with a HTTP error code.""" r = jsonify(message=message) r.status_code = status_code return r def shutdown_server(): """Shutdown API werkzeug server"""