Esempio n. 1
0
    def __init__(self,
                 cfg,
                 warebox,
                 output_queue,
                 lockfile_fd,
                 enc_dir='enc',
                 first_startup=False):
        """
        Constructor

        @param cfg:
                    the config object
        @param warebox:
                    the warebox object
        @param output_queue:
                    the queue where task are send back
        @param lockfile_fd:
                    File descriptor of the lock file which ensures there
                    is only one instance of FileRock Client running.
                    Child processes have to close it to avoid stale locks.
        @param enc_dir:
                    the directory used for encrypt the data, it will create
                    into user temp dir
        @param first_startup:
                    boolean self explaining
        """
        logger_prefix = "FR.CryptoFilter."
        self.cfg = cfg
        self.warebox = warebox
        self.logger = logging.getLogger(logger_prefix +
                                        self.__class__.__name__)
        self.input_queue = Queue.Queue()
        self.output_queue = output_queue
        self.enc_dir = os.path.join(
            self.cfg.get('Application Paths', 'temp_dir'), enc_dir)
        if first_startup:
            CryptoUtils.create_encrypted_dir(warebox, self.logger)
        self.crypto_filter = CryptoFilter(self.input_queue, self.output_queue,
                                          NUMBER_OF_WORKER, cfg, warebox,
                                          lockfile_fd)