3131
3232from powerapi .actor import Actor , State
3333from powerapi .actor .message import StartMessage , PoisonPillMessage
34- from powerapi .database import ReadableDatabase
34+ from powerapi .database . driver import ReadableDatabaseFactory
3535from powerapi .filter import ReportFilter
3636from powerapi .puller .database_poller import DatabasePollerThread
3737from powerapi .puller .handlers import PullerStartMessageHandler , PullerPoisonPillMessageHandler
@@ -42,20 +42,20 @@ class PullerState(State):
4242 Puller Actor State class.
4343 """
4444
45- def __init__ (self , actor : Actor , database : ReadableDatabase , report_filter : ReportFilter , stream_mode : bool ):
45+ def __init__ (self , actor : Actor , database_factory : ReadableDatabaseFactory , report_filter : ReportFilter , stream_mode : bool ):
4646 """
4747 :param actor: Puller actor instance
48- :param database: Database driver
48+ :param database_factory: Factory used to create the database driver
4949 :param report_filter: Filter to use when dispatching reports
5050 :param stream_mode: If true, poll continuously from the database; otherwise, stop the poller thread on empty result
5151 """
5252 super ().__init__ (actor )
5353
54- self .database = database
54+ self .database_factory = database_factory
5555 self .report_filter = report_filter
5656 self .stream_mode = stream_mode
5757
58- self .db_poller_thread = DatabasePollerThread (database , report_filter , stream_mode )
58+ self .db_poller_thread = DatabasePollerThread (database_factory , report_filter , stream_mode )
5959
6060
6161class PullerActor (Actor ):
@@ -64,24 +64,24 @@ class PullerActor(Actor):
6464 This actor allows to retrieve reports from a database and send them to theirs corresponding dispatcher.
6565 """
6666
67- def __init__ (self , name : str , database : ReadableDatabase , report_filter : ReportFilter , stream_mode : bool = False , level_logger : int = logging .WARNING ):
67+ def __init__ (self , name : str , database_factory : ReadableDatabaseFactory , report_filter : ReportFilter , stream_mode : bool = False , level_logger : int = logging .WARNING ):
6868 """
6969 :param name: Name of the puller actor
70- :param database: Database driver to use to persist reports
70+ :param database_factory: Factory used to create the database driver
7171 :param report_filter: Filter to use when dispatching reports
7272 :param level_logger: Define the level of the logger for the actor
7373 """
7474 super ().__init__ (name , level_logger , 1000 )
7575
76- self .database = database
76+ self .database_factory = database_factory
7777 self .report_filter = report_filter
7878 self .stream_mode = stream_mode
7979
8080 def setup (self ) -> None :
8181 """
8282 Set up the Puller actor message handlers.
8383 """
84- self .state = PullerState (self , self .database , self .report_filter , self .stream_mode )
84+ self .state = PullerState (self , self .database_factory , self .report_filter , self .stream_mode )
8585
8686 self .add_handler (StartMessage , PullerStartMessageHandler (self .state ))
8787 self .add_handler (PoisonPillMessage , PullerPoisonPillMessageHandler (self .state ))
0 commit comments