class Injector: def __init__(self, debug=False, config_dir=None): self.platform_config = PlatformConfig(config_dir=config_dir) if not logger.factory_instance: console = True if debug else False level = logging.DEBUG if debug else logging.INFO logger.init(level, console, join(self.platform_config.get_platform_log())) self.user_platform_config = PlatformUserConfig(self.platform_config.get_user_config()) self.log_aggregator = Aggregator(self.platform_config) self.platform_app_paths = AppPaths(PLATFORM_APP_NAME, self.platform_config) self.platform_app_paths.get_data_dir() self.versions = Versions(self.platform_config) self.redirect_service = RedirectService(self.user_platform_config, self.versions) self.port_config = PortConfig(self.platform_app_paths.get_data_dir()) self.nat_pmp_port_mapper = NatPmpPortMapper() self.upnp_port_mapper = UpnpPortMapper(UPnP()) self.port_mapper_factory = PortMapperFactory(self.nat_pmp_port_mapper, self.upnp_port_mapper) self.port_drill_factory = PortDrillFactory(self.user_platform_config, self.port_config, self.port_mapper_factory) self.device_info = DeviceInfo(self.user_platform_config, self.port_config) if self.platform_config.get_installer() == 'sam': self.sam = SamStub(self.platform_config, self.device_info) else: self.sam = Snap(self.platform_config, self.device_info) self.platform_cron = PlatformCron(self.platform_config) self.systemctl = Systemctl(self.platform_config) self.ldap_auth = LdapAuth(self.platform_config, self.systemctl) self.event_trigger = EventTrigger(self.sam, self.platform_config) self.nginx = Nginx(self.platform_config, self.systemctl, self.device_info) self.certbot_genetator = CertbotGenerator(self.platform_config, self.user_platform_config, self.device_info, self.sam) self.tls = CertificateGenerator(self.platform_config, self.user_platform_config, self.device_info, self.nginx, self.certbot_genetator) self.device = Device(self.platform_config, self.user_platform_config, self.redirect_service, self.port_drill_factory, self.sam, self.platform_cron, self.ldap_auth, self.event_trigger, self.tls, self.nginx) self.internal = Internal(self.platform_config, self.device, self.redirect_service, self.log_aggregator) self.path_checker = PathChecker(self.platform_config) self.lsblk = Lsblk(self.platform_config, self.path_checker) self.hardware = Hardware(self.platform_config, self.event_trigger, self.lsblk, self.path_checker, self.systemctl) self.network = Network() self.public = Public(self.platform_config, self.user_platform_config, self.device, self.device_info, self.sam, self.hardware, self.redirect_service, self.log_aggregator, self.certbot_genetator, self.port_mapper_factory, self.network, self.port_config) self.udev = Udev(self.platform_config) def get_app_paths(self, app_name): return AppPaths(app_name, self.platform_config) def get_app_setup(self, app_name): return AppSetup(app_name, self.get_app_paths(app_name), self.nginx, self.hardware, self.device_info, self.device, self.user_platform_config, self.systemctl)
class Injector: def __init__(self, debug=False): self.platform_config = PlatformConfig() if not logger.factory_instance: console = True if debug else False level = logging.DEBUG if debug else logging.INFO logger.init(level, console, join(self.platform_config.get_platform_log())) self.user_platform_config = PlatformUserConfig(self.platform_config.get_user_config()) self.log_aggregator = Aggregator(self.platform_config) self.platform_app_paths = AppPaths(PLATFORM_APP_NAME, self.platform_config) self.platform_app_paths.get_data_dir() self.redirect_service = RedirectService(self.user_platform_config, platform_version) self.port_config = PortConfig(self.platform_app_paths.get_data_dir()) self.nat_pmp_port_mapper = NatPmpPortMapper() self.upnp_port_mapper = UpnpPortMapper(UPnP()) self.port_drill_factory = PortDrillFactory(self.user_platform_config, self.port_config, self.nat_pmp_port_mapper, self.upnp_port_mapper) self.info = DeviceInfo(self.user_platform_config, self.port_config) self.sam = SamStub(self.platform_config, self.info) self.platform_cron = PlatformCron(self.platform_config) self.ldap_auth = LdapAuth(self.platform_config) self.event_trigger = EventTrigger(self.sam) self.nginx = Nginx(self.platform_config) self.tls = Tls(self.platform_config, self.info, self.nginx) self.device = Device(self.platform_config, self.user_platform_config, self.redirect_service, self.port_drill_factory, self.sam, self.platform_cron, self.ldap_auth, self.event_trigger, self.tls) self.internal = Internal(self.platform_config, self.device, self.redirect_service, self.log_aggregator) self.path_checker = PathChecker(self.platform_config) self.lsblk = Lsblk(self.platform_config, self.path_checker) self.hardware = Hardware(self.platform_config, self.event_trigger, self.lsblk, self.path_checker) self.public = Public(self.platform_config, self.user_platform_config, self.device, self.info, self.sam, self.hardware, self.redirect_service, self.log_aggregator) self.udev = Udev(self.platform_config)