def __init__(self, name, configfile, logfile=None, pidfile=None, debug=False):
        CbIntegrationDaemon.__init__(self, name, configfile=configfile, logfile=logfile,
                                     pidfile=pidfile, debug=debug)
        template_folder = "/usr/share/cb/integrations/threatexchange/content"
        self.flask_feed = FlaskFeed(__name__, False, template_folder)
        self.bridge_options = {}
        self.bridge_auth = {}
        if 'bridge' in self.options:
            self.debug = self.options['bridge'].get("debug", 0)
        if self.debug:
            self.logger.setLevel(logging.DEBUG)

        self.validated_config = self.validate_config()

        self.cb = None
        self.feed_name = "threatexchangeconnector"
        self.display_name = "ThreatExchange"
        self.directory = template_folder
        self.cb_image_path = "/carbonblack.png"
        self.integration_image_path = "/threatexchange.png"
        self.integration_small_image_path = "/threatexchange-small.png"
        self.json_feed_path = "/threatexchange/json"
        self.feed_lock = threading.RLock()

        self.flask_feed.app.add_url_rule(self.cb_image_path, view_func=self.handle_cb_image_request)
        self.flask_feed.app.add_url_rule(self.integration_image_path, view_func=self.handle_integration_image_request)
        self.flask_feed.app.add_url_rule(self.json_feed_path, view_func=self.handle_json_feed_request, methods=['GET'])
        self.flask_feed.app.add_url_rule("/", view_func=self.handle_index_request, methods=['GET'])
        self.flask_feed.app.add_url_rule("/feed.html", view_func=self.handle_html_feed_request, methods=['GET'])

        self.logger.debug("generating feed metadata")
        with self.feed_lock:
            self.feed = self.create_feed()
            self.last_sync = "No sync performed"
            self.last_successful_sync = "No sync performed"
 def check_required_options(self, opts):
     CbIntegrationDaemon.check_required_options(self, opts)
     for opt in opts:
         val = self.cfg.get("bridge", opt)
         if not val or len(val) == 0:
             raise ConfigurationError("Configuration file has option %s in [bridge] section but not set to value " %
                                      opt)
 def check_required_options(self, opts):
     CbIntegrationDaemon.check_required_options(self, opts)
     for opt in opts:
         val = self.cfg.get("bridge", opt)
         if not val or len(val) == 0:
             raise ConfigurationError("Configuration file has option %s in [bridge] section but not set to value " %
                                      opt)
예제 #4
0
 def __init__(self, name, configfile, debug=False):
     self.config_ready = False
     CbIntegrationDaemon.__init__(self,
                                  name,
                                  configfile=configfile,
                                  debug=debug)
     self.cb = None
     self.worker_queue = Queue.Queue(maxsize=10)
     self.initialize_logging()
     self.logfile = None
    def __init__(self, name, configfile, logfile=None, pidfile=None, debug=False, dbfile=None):
        CbIntegrationDaemon.__init__(self, name, configfile=configfile, logfile=logfile,
                                     pidfile=pidfile, debug=debug)
        template_folder = "/usr/share/cb/integrations/threatexchange/content"
        self.db_file = dbfile or "/usr/share/cb/integrations/threatexchange/db/threatexchange.db"
        self.flask_feed = FlaskFeed(__name__, False, template_folder)
        self.bridge_options = {}
        self.bridge_auth = {}
        if 'bridge' in self.options:
            self.debug = self.options['bridge'].get("debug", 0)
        if self.debug:
            self.logger.setLevel(logging.DEBUG)

        self.validated_config = self.validate_config()

        self.cb = None
        self.feed_name = "threatexchangeconnector"
        self.display_name = "ThreatExchange"
        self.directory = template_folder
        self.cb_image_path = "/carbonblack.png"
        self.integration_image_path = "/threatexchange.png"
        self.integration_small_image_path = "/threatexchange-small.png"
        self.json_feed_path = "/threatexchange/json"
        self.feed_lock = threading.RLock()

        self.flask_feed.app.add_url_rule(self.cb_image_path, view_func=self.handle_cb_image_request)
        self.flask_feed.app.add_url_rule(self.integration_image_path, view_func=self.handle_integration_image_request)
        self.flask_feed.app.add_url_rule(self.json_feed_path, view_func=self.handle_json_feed_request, methods=['GET'])
        self.flask_feed.app.add_url_rule("/", view_func=self.handle_index_request, methods=['GET'])
        self.flask_feed.app.add_url_rule("/feed.html", view_func=self.handle_html_feed_request, methods=['GET'])

        self.logger.debug("generating feed metadata")
        with self.feed_lock:
            self.feed = self.create_feed()
            self.last_sync = "No sync performed"
            self.last_successful_sync = "No sync performed"
예제 #6
0
 def __init__(self, name, configfile, debug=False):
     self.config_ready = False
     CbIntegrationDaemon.__init__(self, name, configfile=configfile, debug=debug)
     self.cb = None
     self.worker_queue = Queue.Queue(maxsize=10)