def setUpClass(cls): # Now load a global config object so the DB connection is open cls._nsc = ndr_server.Config(logging.NullHandler(), TEST_CONFIG) cls._db_connection = cls._nsc.database.get_connection() # UUCP file is written here for comparsion fd, uucp_sys_test = tempfile.mkstemp() os.close(fd) # Don't need to write anything to it cls._nsc.uucp_sys_config = uucp_sys_test # For this specific test, we need to create a few test objects cls._test_org = ndr_server.Organization.create( cls._nsc, "Testing Config Org", db_conn=cls._db_connection) cls._test_site = ndr_server.Site.create(cls._nsc, cls._test_org, "Testing Config Site", db_conn=cls._db_connection) # Make a couple of test recorders ndr_server.Recorder.create(cls._nsc, cls._test_site, "Config Test Recorder 1", "cfg-test1", db_conn=cls._db_connection) ndr_server.Recorder.create(cls._nsc, cls._test_site, "Config Test Recorder 2", "cfg-test2", db_conn=cls._db_connection) ndr_server.Recorder.create(cls._nsc, cls._test_site, "Config Test Recorder 3", "cfg-test3", db_conn=cls._db_connection)
def setUp(self): logging.getLogger().addHandler(logging.NullHandler()) # Now load a global config object so the DB connection is open self._nsc = ndr_server.Config(logging.getLogger(), TEST_CONFIG) # We need to process test messages, so override the base directory for # this test self._db_connection = self._nsc.database.get_connection() # For this specific test, we need to create a few test objects self._test_org = ndr_server.Organization.create( self._nsc, "Network Scan Recorders Org", db_conn=self._db_connection) self._test_site = ndr_server.Site.create(self._nsc, self._test_org, "Network Scan Recorders Site", db_conn=self._db_connection) self._recorder = ndr_server.Recorder.create( self._nsc, self._test_site, "Test Recorder", "ndr_test_ingest", db_conn=self._db_connection) # We need a test file contact file_descriptor, self._test_contact = tempfile.mkstemp() os.close(file_descriptor) # Don't need to write anything to it ndr_server.Contact.create(self._nsc, self._test_org, "file", self._test_contact, "csv", db_conn=self._db_connection)
def check_if_can_open_geoip_db(): nsc = ndr_server.Config(logging.getLogger(), TEST_CONFIG) try: geoip_db = geoip2.database.Reader(nsc.geoip_db) except: return False return True
def setUpClass(cls): # Now load a global config object so the DB connection is open cls._nsc = ndr_server.Config(logging.NullHandler(), TEST_CONFIG) cls._db_connection = cls._nsc.database.get_connection() # For this specific test, we need to create a few test objects cls._test_org = ndr_server.Organization.create( cls._nsc, "Test Contacts", db_conn=cls._db_connection)
def main(): logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s') logger = logging.getLogger(name=__name__) logger.setLevel(logging.DEBUG) ndr_server_config = ndr_server.Config(logger, "/etc/ndr/ndr_server.yml") ingest_daemon = ndr_server.IngestServer(ndr_server_config) ingest_daemon.start_server()
def setUpClass(cls): # Now load a global config object so the DB connection is open logging.getLogger().addHandler(logging.NullHandler()) cls._nsc = ndr_server.Config(logging.getLogger(), TEST_CONFIG) cls._db_connection = cls._nsc.database.get_connection() # For this specific test, we need to create a few test objects cls._test_org = ndr_server.Organization.create( cls._nsc, "Testing Recorders Org", db_conn=cls._db_connection) cls._test_site = ndr_server.Site.create(cls._nsc, cls._test_org, "Testing Recorders Site", db_conn=cls._db_connection) cls._recorder = ndr_server.Recorder.create(cls._nsc, cls._test_site, "Test Recorder Ingest", "ndr_test_ingest", db_conn=cls._db_connection)
def setUpClass(cls): logging.getLogger().addHandler(logging.NullHandler()) # Now load a global config object so the DB connection is open cls._nsc = ndr_server.Config(logging.getLogger(), TEST_CONFIG) # We need to process test messages, so override the base directory for # this test cls._db_connection = cls._nsc.database.get_connection() # For this specific test, we need to create a few test objects cls._test_org = ndr_server.Organization.create( cls._nsc, "Ingest Recorders Org", db_conn=cls._db_connection) cls._test_site = ndr_server.Site.create(cls._nsc, cls._test_org, "Ingest Recorders Site", db_conn=cls._db_connection) cls._recorder = ndr_server.Recorder.create(cls._nsc, cls._test_site, "Test Recorder", "ndr_test_status", db_conn=cls._db_connection)
def main(): '''Main function for handling daily processing tasks''' # Do our basic setup work logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s') logger = logging.getLogger(name=__name__) logger.setLevel(logging.DEBUG) # We need both configs parser = argparse.ArgumentParser( description="Run daily processing tasks for NDR") parser.add_argument('-s', '--server-config', default='/etc/ndr/ndr_server.yml', help='NDR Server Configuration File') args = parser.parse_args() nsc = ndr_server.Config(logger, args.server_config) db_conn = nsc.database.get_connection() nsc.logger.info("Generating GeoIP statistics email") # Retrieve all sites sites = ndr_server.Site.retrieve_all(nsc, db_conn) for site in sites: nsc.logger.info("Processing site %s (%d)", site.name, site.pg_id) # TShark Reports report_manager = ndr_server.TsharkTrafficReportManager( nsc, site, db_conn) report_manager.generate_report_emails(datetime.now() - timedelta(days=1), datetime.now(), db_conn=db_conn, send=True) db_conn.commit()
def main(): # Do our basic setup work logging.basicConfig(format='%(asctime)s %(levelname)s %(message)s') logger = logging.getLogger(name=__name__) logger.setLevel(logging.DEBUG) # We need both configs ncc = ndr.Config("/etc/ndr/config.yml") # NDR Client Config nsc = ndr_server.Config(logger, "/etc/ndr/ndr_server.yml") db_connection = nsc.database.get_connection() parser = argparse.ArgumentParser( description="Requests that a recorder restart to install OTAs updates") parser.add_argument('recorders', nargs='+', help='recorders to reboot') args = parser.parse_args() for recorder in args.recorders: # Make sure the recorder exists try: # We'll try to initialize a Recorder object. We don't need it but it confirms # that the recorder exists in the datbase ndr_server.Recorder.read_by_hostname(nsc, recorder, db_conn=db_connection) msg = ndr.IngestMessage( config=ncc, message_type=ndr.IngestMessageTypes.REBOOT_REQUEST) msg.destination = recorder msg.upload_method = 'uux' msg.sign_report() msg.load_into_queue() logger.info("Queued recorder %s to reboot", recorder) except psycopg2.DatabaseError: logger.error("recorder %s does not exist", recorder) db_connection.close()
def setUpClass(cls): cls._nsc = ndr_server.Config(logging.NullHandler(), TEST_CONFIG) cls._db_connection = cls._nsc.database.get_connection()