예제 #1
0
 def __init__(self, args, db_wrapper: DbWrapper, ws_server,
              mapping_manager: MappingManager, data_manager, device_updater,
              jobstatus, storage_obj):
     app.add_template_global(name='app_config_mode', f=args.config_mode)
     # Determine if there are duplicate MACs
     sql = "SELECT count(*) > 0\n"\
           "FROM `settings_device`\n"\
           "GROUP BY `mac_address`\n"\
           "HAVING count(*) > 1 AND `mac_address` IS NOT NULL"
     dupe_mac = db_wrapper.autofetch_value(sql)
     if dupe_mac:
         sql = "SELECT `mac_address`, GROUP_CONCAT(`name`) AS 'origins'\n"\
               "FROM `settings_device`\n"\
               "GROUP BY `mac_address`\n"\
               "HAVING count(*) > 1 AND `mac_address` IS NOT NULL"
         macs = db_wrapper.autofetch_all(sql)
         for mac in macs:
             logger.warning("Duplicate MAC `{}` detected on devices {}",
                            mac["mac_address"], mac["origins"])
         app.add_template_global(name='app_dupe_macs_devs', f=macs)
     app.add_template_global(name='app_dupe_macs', f=bool(dupe_mac))
     self._db_wrapper: DbWrapper = db_wrapper
     self._args = args
     self._app = app
     self._mapping_manager: MappingManager = mapping_manager
     self._storage_obj = storage_obj
     self._device_updater = device_updater
     self._ws_server: WebsocketServer = ws_server
     self._data_manager = data_manager
     self._jobstatus = jobstatus
     self._plugin_hotlink: list = []
     self.path = MADminPath(self._db_wrapper, self._args, self._app,
                            self._mapping_manager, self._jobstatus,
                            self._data_manager, self._plugin_hotlink)
     self.map = MADminMap(self._db_wrapper, self._args,
                          self._mapping_manager, self._app,
                          self._data_manager)
     self.statistics = MADminStatistics(self._db_wrapper, self._args, app,
                                        self._mapping_manager,
                                        self._data_manager)
     self.control = MADminControl(self._db_wrapper, self._args,
                                  self._mapping_manager, self._ws_server,
                                  logger, self._app, self._device_updater)
     self.APIEntry = APIEntry(logger, self._app, self._data_manager,
                              self._mapping_manager, self._ws_server,
                              self._args.config_mode, self._storage_obj,
                              self._args)
     self.config = MADminConfig(self._db_wrapper, self._args, logger,
                                self._app, self._mapping_manager,
                                self._data_manager)
     self.apk_manager = APKManager(self._db_wrapper, self._args, self._app,
                                   self._mapping_manager, self._jobstatus,
                                   self._storage_obj)
     self.event = MADminEvent(self._db_wrapper, self._args, logger,
                              self._app, self._mapping_manager,
                              self._data_manager)
     self.autoconf = AutoConfigManager(self._db_wrapper, self._app,
                                       self._data_manager, self._args,
                                       self._storage_obj)
예제 #2
0
파일: madmin.py 프로젝트: kimzky/MAD
 def __init__(self, args, db_wrapper: DbWrapper, ws_server,
              mapping_manager: MappingManager, data_manager, device_updater,
              jobstatus, storage_obj):
     app.add_template_global(name='app_config_mode', f=args.config_mode)
     self._db_wrapper: DbWrapper = db_wrapper
     self._args = args
     self._app = app
     self._mapping_manager: MappingManager = mapping_manager
     self._storage_obj = storage_obj
     self._device_updater = device_updater
     self._ws_server: WebsocketServer = ws_server
     self._data_manager = data_manager
     self._jobstatus = jobstatus
     self._plugin_hotlink: list = []
     self.path = MADminPath(self._db_wrapper, self._args, self._app,
                            self._mapping_manager, self._jobstatus,
                            self._data_manager, self._plugin_hotlink)
     self.map = MADminMap(self._db_wrapper, self._args,
                          self._mapping_manager, self._app,
                          self._data_manager)
     self.statistics = MADminStatistics(self._db_wrapper, self._args, app,
                                        self._mapping_manager,
                                        self._data_manager)
     self.control = MADminControl(self._db_wrapper, self._args,
                                  self._mapping_manager, self._ws_server,
                                  logger, self._app, self._device_updater)
     self.APIEntry = APIEntry(logger, self._app, self._data_manager,
                              self._mapping_manager, self._ws_server,
                              self._args.config_mode, self._storage_obj,
                              self._args)
     self.config = MADminConfig(self._db_wrapper, self._args, logger,
                                self._app, self._mapping_manager,
                                self._data_manager)
     self.apk_manager = APKManager(self._db_wrapper, self._args, self._app,
                                   self._mapping_manager, self._jobstatus,
                                   self._storage_obj)
     self.event = MADminEvent(self._db_wrapper, self._args, logger,
                              self._app, self._mapping_manager,
                              self._data_manager)
     self.autoconf = AutoConfigManager(self._db_wrapper, self._app,
                                       self._data_manager, self._args,
                                       self._storage_obj)