Пример #1
0
from irma.common.plugin_result import PluginResult

log = logging.getLogger(__name__)


probe_app = Celery('probetasks')
config.conf_probe_celery(probe_app)
config.configure_syslog(probe_app)

# Time to cache the probe list
# to avoid asking to rabbitmq
PROBELIST_CACHE_TIME = 30
manager = multiprocessing.Manager()
available_probes = manager.list()

interprocess_lock_path = config.get_lock_path()


def register(name, display_name, category, mimetype_regexp, session):
    try:
        probe = Probe.get_by_name(name, session)
        log.info("probe %s already registred "
                 "updating parameters: "
                 "[display_name:%s cat:%s regexp:%s]",
                 name, display_name, category, mimetype_regexp)
        session.query(Probe)\
            .filter_by(id=probe.id)\
            .update({'category': category, 'mimetype_regexp': mimetype_regexp,
                     'online': True, 'display_name': display_name})
    except IrmaDatabaseResultNotFound:
        log.info("register probe %s"
Пример #2
0
from sqlalchemy import inspect
from api.common.sessions import session_transaction

import api.common.ftp as ftp_ctrl
import api.tasks.braintasks as celery_brain
from api.files.models import File
from api.files_ext.models import FileExt, FileProbeResult
from api.probe_results.models import ProbeResult
from api.scans.models import Scan
from config.parser import get_lock_path, get_max_resubmit_level
from irma.common.base.exceptions import IrmaValueError, IrmaTaskError
from irma.common.base.utils import IrmaReturnCode, IrmaScanStatus
from irma.common.base.utils import IrmaScanRequest

log = logging.getLogger(__name__)
interprocess_lock_path = get_lock_path()

# ===================
#  Internals helpers
# ===================


def _add_empty_result(file_ext, probelist, scan, session):
    log.debug("scan %s: file %s add empty results", scan.external_id,
              file_ext.external_id)
    updated_probelist = []
    for probe_name in probelist:
        # Fetch the ref results for the file
        ref_result = file_ext.file.get_ref_result(probe_name)
        if ref_result is not None and not scan.force:
            # we ask for results already present
Пример #3
0
from sqlalchemy import inspect
from api.common.sessions import session_transaction

import api.common.ftp as ftp_ctrl
import api.tasks.braintasks as celery_brain
from api.files.models import File
from api.files_ext.models import FileExt, FileProbeResult
from api.probe_results.models import ProbeResult
from api.scans.models import Scan
from config.parser import get_lock_path, get_max_resubmit_level
from irma.common.base.exceptions import IrmaValueError, IrmaTaskError
from irma.common.base.utils import IrmaReturnCode, IrmaScanStatus
from irma.common.base.utils import IrmaScanRequest

log = logging.getLogger(__name__)
interprocess_lock_path = get_lock_path()

# ===================
#  Internals helpers
# ===================


def _add_empty_result(file_ext, probelist, scan, session):
    log.debug("scan %s: file %s add empty results",
              scan.external_id, file_ext.external_id)
    updated_probelist = []
    for probe_name in probelist:
        # Fetch the ref results for the file
        ref_result = file_ext.file.get_ref_result(probe_name)
        if ref_result is not None and not scan.force:
            # we ask for results already present
Пример #4
0
    IrmaDatabaseError
from lib.plugin_result import PluginResult

log = logging.getLogger(__name__)

probe_app = Celery('probetasks')
config.conf_probe_celery(probe_app)
config.configure_syslog(probe_app)

# Time to cache the probe list
# to avoid asking to rabbitmq
PROBELIST_CACHE_TIME = 30
manager = multiprocessing.Manager()
cache_probelist = manager.dict()

interprocess_lock_path = config.get_lock_path()


def register(name, display_name, category, mimetype_regexp, session):
    try:
        probe = Probe.get_by_name(name, session)
        log.info(
            "probe %s already registred "
            "updating parameters: "
            "[display_name:%s cat:%s regexp:%s]", name, display_name, category,
            mimetype_regexp)
        probe.display_name = display_name
        probe.category = category
        probe.mimetype_regexp = mimetype_regexp
        probe.online = True
        probe.update(['category', 'mimetype_regexp', 'online'], session)