# Path: multiscanner/config.py
# CONFIG = determine_configuration_path(None)
# 
# Path: multiscanner/common/utils.py
#     SSH = True
#     SSH = False
# def load_module(name, path):
# def list2cmdline(list):
# def convert_encoding(data, encoding='UTF-8', errors='replace'):
# def parse_config(config_object):
# def get_config_path(config_file, component):
# def dirname(path):
# def basename(path):
# def parseDir(directory, recursive=False, exclude=['__init__']):
# def parseFileList(FileList, recursive=False):
# def chunk_file_list(filelist, cmdlength=7191):
# def queue2list(queue):
# def hashfile(fname, hasher, blocksize=65536):
# def sshconnect(hostname, port=22, username=None, password=None, pkey=None,
#                key_filename=None, timeout=None, allow_agent=True,
#                look_for_keys=True, compress=False, sock=None):
# def sessionexec(client, cmd):
# def sshexec(hostname, cmd, port=22, username=None, password=None,
#             key_filename=None):


import codecs
import configparser
import inspect
import os
import time
import threading
from builtins import *  # noqa: F401,F403
from future import standard_library
from multiscanner.config import CONFIG as MS_CONFIG
from multiscanner.common import utils
            return False


class Storage(object):
    DEFAULTCONF = {
        'ENABLED': False
    }

    def __init__(self, config=DEFAULTCONF):
        self.config = config

    def setup(self):
        return True

    def store(self, results):
        raise NotImplementedError

    def teardown(self):
        return True


class StorageHandler(object):
    def __init__(self, configfile=MS_CONFIG, config=None, configregen=False):
        self.storage_lock = threading.Lock()
        self.storage_counter = ThreadCounter()
        # Load all storage classes
        storage_classes = _get_storage_classes()

        # Read in config
        if configfile:

# Path: multiscanner/config.py
# CONFIG = determine_configuration_path(None)
# 
# Path: multiscanner/common/utils.py
#     SSH = True
#     SSH = False
# def load_module(name, path):
# def list2cmdline(list):
# def convert_encoding(data, encoding='UTF-8', errors='replace'):
# def parse_config(config_object):
# def get_config_path(config_file, component):
# def dirname(path):
# def basename(path):
# def parseDir(directory, recursive=False, exclude=['__init__']):
# def parseFileList(FileList, recursive=False):
# def chunk_file_list(filelist, cmdlength=7191):
# def queue2list(queue):
# def hashfile(fname, hasher, blocksize=65536):
# def sshconnect(hostname, port=22, username=None, password=None, pkey=None,
#                key_filename=None, timeout=None, allow_agent=True,
#                look_for_keys=True, compress=False, sock=None):
# def sessionexec(client, cmd):
# def sshexec(hostname, cmd, port=22, username=None, password=None,
#             key_filename=None):


# Path: multiscanner/storage/storage.py
import codecs
import configparser
import inspect
import os
import time
import threading
from builtins import *  # noqa: F401,F403
from future import standard_library
from multiscanner.config import CONFIG as MS_CONFIG
from multiscanner.common import utils

            return False


class Storage(object):
    DEFAULTCONF = {
        'ENABLED': False
    }

    def __init__(self, config=DEFAULTCONF):
        self.config = config

    def setup(self):
        return True

    def store(self, results):
        raise NotImplementedError

    def teardown(self):
        return True


class StorageHandler(object):
    def __init__(self, configfile=MS_CONFIG, config=None, configregen=False):
        self.storage_lock = threading.Lock()
        self.storage_counter = ThreadCounter()
        # Load all storage classes
        storage_classes = _get_storage_classes()

        # Read in config
        if configfile:

            configfile = utils.get_config_path(MS_CONFIG, 'storage')