Example #1
0
    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)
Example #2
0
    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)
Example #3
0
@pytest.fixture(scope="module")
def http_server(request):
    server = SomeHttpServer(18088)
    server.start()

    def fin():
        server.stop()
    request.addfinalizer(fin)
    return server


ids = []
mappers = []

mapper = provide_mapper(NatPmpPortMapper(), UpnpPortMapper(UPnP()))
if mapper is not None:
    ids.append(mapper.name())
    mappers.append(mapper)


@pytest.mark.parametrize("mapper", mappers, ids=ids)
def test_external_ip(mapper):
    external_ip = mapper.external_ip()
    assert external_ip is not None


@pytest.mark.parametrize("mapper", mappers, ids=ids)
def test_add_mapping_simple(http_server, mapper):
    external_port = mapper.add_mapping(http_server.port, http_server.port, 'TCP')
    assert external_port is not None
Example #4
0
@pytest.fixture(scope="module")
def http_server(request):
    server = SomeHttpServer(18088)
    server.start()

    def fin():
        server.stop()

    request.addfinalizer(fin)
    return server


ids = []
mappers = []

mapper = PortMapperFactory(NatPmpPortMapper(),
                           UpnpPortMapper(UPnP())).provide_mapper()
if mapper is not None:
    ids.append(mapper.name())
    mappers.append(mapper)

# @pytest.mark.parametrize("mapper", mappers, ids=ids)
# def test_external_ip(mapper):
#     external_ip = mapper.external_ip()
#     assert external_ip is not None
#
#
# @pytest.mark.parametrize("mapper", mappers, ids=ids)
# def test_add_mapping_simple(http_server, mapper):
#     external_port = mapper.add_mapping(http_server.port, http_server.port, 'TCP')
#     assert external_port is not None