def get_insider(bin_path=default_bin_path, config_path=default_config_path, logs_path=default_logs_path, use_upnpc_mock=False): script_path = os.path.join(bin_path, 'insider') insider_config_path = os.path.join(config_path, 'insider.cfg') cron_log_path = os.path.join(logs_path, 'insider-cron.log') insider_config = InsiderConfig(insider_config_path) domain_config_path = os.path.join(config_path, 'domain.json') services_config_path = os.path.join(config_path, 'services.json') port_config_path = os.path.join(config_path, 'ports.json') local_ip = Facade().local_ip() port_config = PortConfig(port_config_path) if use_upnpc_mock or insider_config.is_upnpc_mock(): upnpclient = upnpc_mock.Upnpc() else: upnpclient = upnpc.Upnpc(local_ip) mapper = port_mapper.PortMapper(port_config, upnpclient) domain_config = config.DomainConfig(domain_config_path) service_config = ServiceConfig(services_config_path) dns_service = dns.Dns( insider_config, domain_config, service_config, mapper, local_ip) cron_service = cron.Cron(script_path, cron_log_path, insider_config.get_cron_period_mins()) return Insider(mapper, dns_service, cron_service, insider_config, service_config)
def test_domain(self): filename = temp_file(insider_config) config = InsiderConfig(filename) config.update('syncloud.it', 'http://api.syncloud.it') self.assertEquals('syncloud.it', config.get_redirect_main_domain()) self.assertEquals('http://api.syncloud.it', config.get_redirect_api_url()) config.update('syncloud.info', 'http://api.syncloud.info:81') self.assertEquals('syncloud.info', config.get_redirect_main_domain()) self.assertEquals('http://api.syncloud.info:81', config.get_redirect_api_url())
def get_insider_config(domain, api_url): filename = temp_file(insider_config) config = InsiderConfig(filename) config.update(domain, api_url) return config