def testUnauthenticated(self): url, portnum = self.makeServer(False) client = UnauthenticatedTub() client.startService() self.services.append(client) d = client.getReference(url) return d
def _testNoConnection_1(self, res, url): self.services.remove(self.tub) client = UnauthenticatedTub() client.startService() self.services.append(client) d = client.getReference(url) d.addCallbacks(lambda res: self.fail("this is supposed to fail"), self._testNoConnection_fail) return d
def testHalfAuthenticated1(self): if not crypto_available: raise unittest.SkipTest("crypto not available") url, portnum = self.makeServer(True) client = UnauthenticatedTub() client.startService() self.services.append(client) d = client.getReference(url) return d
def testClientTimeout(self): portnum = self.makeNullServer() # lower the connection timeout to 2 seconds client = UnauthenticatedTub(options={'connect_timeout': 1}) client.startService() self.services.append(client) url = "pbu://127.0.0.1:%d/target" % portnum d = client.getReference(url) d.addCallbacks(lambda res: self.fail("hey! this is supposed to fail"), lambda f: f.trap(tokens.NegotiationError)) return d
def testVersusHTTPServerUnauthenticated(self): portnum = self.makeHTTPServer() client = UnauthenticatedTub() client.startService() self.services.append(client) url = "pbu://127.0.0.1:%d/target" % portnum d = client.getReference(url) d.addCallbacks(lambda res: self.fail("this is supposed to fail"), lambda f: f.trap(BananaError)) d.addCallback(self.stall, 1) # same reason as above return d
def connectClient(self, portnum): tub = UnauthenticatedTub() tub.startService() self.services.append(tub) d = tub.getReference("pb://127.0.0.1:%d/hello" % portnum) return d
class Application(BaseApplication): def prepare_application(self): eventmanager.register_event_handler("ApplicationLoaded", self.load_sources) self.setup_tubs() self.setup_gstreamer() eventmanager.emit(events.ApplicationLoaded()) def load_config(self): self.config.load_core_config() def setup_tubs(self): self.infotub = UnauthenticatedTub() self.infotub.listenOn('tcp:%d' % self.config.core.info_port) self.infotub.setLocation("localhost:%d" % self.config.core.info_port) # self.infotub.setLocationAutomatically() info_server = InfoTub() info_url = self.infotub.registerReference(info_server, 'info') logging.getLogger(__name__).debug('Info url: %s', info_url) # self.infotub.startService() core_server = CoreTub() self.coretub = Tub() self.coretub.listenOn('tcp:%d' % (self.config.core.core_port)) self.coretub.setLocation("localhost:%d" % (self.config.core.core_port)) # self.coretub.setLocationAutomatically() core_info_url = self.coretub.registerReference(core_server, 'core') logging.getLogger(__name__).debug('Core Info url: %s', core_info_url) eventmanager.emit(events.CoreUrlGenerated(core_info_url)) # self.coretub.startService() def setup_gstreamer(self): import gobject gobject.threads_init() import pygst pygst.require("0.10") import gst # import pygtk # pygtk.require('2.0') # import gtk # GST Debugging # gst.debug_set_active(True) # gst.debug_set_default_threshold(gst.LEVEL_INFO) # gst.debug_set_colored(True) def load_sources(self): from afm.sources import Source log = logging.getLogger(__name__) available_sources = self.config.sources.keys() available_sources.sort() for source_name in available_sources: source_config = self.config.sources[source_name] if not source_config.active: log.debug("Skipping %s. Not Active.", source_config) continue log.debug("%s active. Loading...", source_config) source = Source(source_config) source.prepare_source() def start_services(self): self.infotub.startService() self.coretub.startService() def stop_services(self): self.infotub.stopService() self.coretub.stopService()
def connectClient(self, portnum): tub = UnauthenticatedTub() tub.startService() self.services.append(tub) d = tub.getReference("pb://127.0.0.1:%d/hello" % portnum) return d
#! /usr/bin/python from twisted.internet import reactor from foolscap.api import Referenceable, UnauthenticatedTub class MathServer(Referenceable): def remote_add(self, a, b): return a+b def remote_subtract(self, a, b): return a-b myserver = MathServer() tub = UnauthenticatedTub() tub.listenOn("tcp:12345") tub.setLocation("localhost:12345") url = tub.registerReference(myserver, "math-service") print "the object is available at:", url tub.startService() reactor.run()