Beispiel #1
0
 def testUnauthenticated(self):
     url, portnum = self.makeServer(False)
     client = UnauthenticatedTub()
     client.startService()
     self.services.append(client)
     d = client.getReference(url)
     return d
Beispiel #2
0
 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
Beispiel #3
0
 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
Beispiel #4
0
 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
Beispiel #5
0
 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
Beispiel #6
0
 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
Beispiel #7
0
Datei: app.py Projekt: UfSoft/afm
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()
Beispiel #8
0
 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
Beispiel #9
0
#! /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()