def test_registries(self):
     reg1 = ServerRegistry.get_instance()
     reg2 = ServerRegistry.get_instance()
     self.assertEquals(
             reg1,
             reg2
         )
Example #2
0
    def test_server(self):
        self._registry = ServerRegistry.get_instance()
        address1 = 'address1'
        address2 = 'address2'
        address3 = 'address3'

        server1 = 'server1'
        server2 = 'server2'

        self._registry.register_server(address1, server1)

        self.assertRaises(RegistryErrors.AddressAlreadyRegisteredError,
                          self._registry.register_server, address1, server2)

        self._registry.reregister_server(address1, server2)
        self._registry.reregister_server(address2, server2)
        self._registry.reregister_server(address2, server2)

        self.assertEquals(self._registry.get_server(address1), server2)
        self.assertEquals(self._registry.get_server(address2), server2)

        self.assertRaises(RegistryErrors.ServerNotFoundInRegistryError,
                          self._registry.get_server, address3)

        self._registry.deregister_server(address1)
        self.assertRaises(RegistryErrors.ServerNotFoundInRegistryError,
                          self._registry.get_server, address1)

        self.assertRaises(RegistryErrors.ServerNotFoundInRegistryError,
                          self._registry.deregister_server, address3)

        self._registry.clear()
        self.assertRaises(RegistryErrors.ServerNotFoundInRegistryError,
                          self._registry.deregister_server, address2)
Example #3
0
 def create_client(self,methods):
     registry = ServerRegistry.get_instance()
     try:
         server = registry.get_server(
             ServerDirect._SERVER_PREFIX + self.address
             #ServerDirect._SERVER_PREFIX + self._machine_id + "__" + self._instance_id + "__" + self._server_id
         )
     except RegistryErrors.RegistryError as rex:
         raise ProtocolErrors.ClientCreationError(
                 ("Registry exception while retrieving server from registry: %s" % rex),
                 rex
         )
     try:
         client_class = ClientSkel.factory(Protocols.Direct,methods)
     except Exception as e:
         raise ProtocolErrors.ClientClassCreationError(
                 ("Client class creation exception: %s" % e),
                 e
             )
     try:
         return client_class(server)
     except Exception as e:
         raise ProtocolErrors.ClientInstanciationError(
                 ("Exception instaciating the client: %s" % e),
                 e
             )
    def test_server(self):
        self._registry = ServerRegistry.get_instance()
        address1 = 'address1'
        address2 = 'address2'
        address3 = 'address3'

        server1 = 'server1'
        server2 = 'server2'

        self._registry.register_server(address1,server1)

        self.assertRaises(
            RegistryErrors.AddressAlreadyRegisteredError,
            self._registry.register_server,
            address1,
            server2
        )

        self._registry.reregister_server(address1,server2)
        self._registry.reregister_server(address2,server2)
        self._registry.reregister_server(address2,server2)

        self.assertEquals(
            self._registry.get_server(address1),
            server2
        )
        self.assertEquals(
            self._registry.get_server(address2),
            server2
        )

        self.assertRaises(
            RegistryErrors.ServerNotFoundInRegistryError,
            self._registry.get_server,
            address3
        )

        self._registry.deregister_server(address1)
        self.assertRaises(
            RegistryErrors.ServerNotFoundInRegistryError,
            self._registry.get_server,
            address1
        )

        self.assertRaises(
            RegistryErrors.ServerNotFoundInRegistryError,
            self._registry.deregister_server,
            address3
        )

        self._registry.clear()
        self.assertRaises(
            RegistryErrors.ServerNotFoundInRegistryError,
            self._registry.deregister_server,
            address2
        )
def _find_server(server_type, name):
    registry = ServerRegistry.get_instance()
    servers = []
    for server in registry._servers:
        if isinstance(registry._servers[server], server_type):
            servers.append(registry._servers[server])
    if len(servers) > 1:
        print >> stderr, "Warning: more than one server of %s found" % name
    elif len(servers) == 0:
        raise Exception("Could not find a %s server" % name)
    return servers[0]
Example #6
0
def _find_server(server_type, name):
    registry = ServerRegistry.get_instance()
    servers = []
    for server in registry._servers:
        if isinstance(registry._servers[server], server_type):
            servers.append(registry._servers[server])
    if len(servers) > 1:
        print >> stderr, "Warning: more than one server of %s found" % name
    elif len(servers) == 0:
        raise Exception("Could not find a %s server" % name)
    return servers[0]
Example #7
0
 def register_parent(self,parent):
     self._parent = parent
     # We should also register the server in the ServerRegistry
     import voodoo.gen.registry.server_registry as ServerRegistry
     import voodoo.gen.exceptions.registry.RegistryErrors as RegistryErrors
     registry = ServerRegistry.get_instance()
     try:
         registry.register_server(_SERVER_PREFIX + self._full_address, self._parent)
     except RegistryErrors.AddressAlreadyRegisteredError as aar:
         log.log(
                 ServerDirect,
                 log.level.Warning,
                 "Exception registering parent server: AddressAlreadyRegistered: %s" % aar
             )
         registry.reregister_server(_SERVER_PREFIX + self._full_address,self._parent)
 def register_parent(self, parent):
     self._parent = parent
     # We should also register the server in the ServerRegistry
     import voodoo.gen.registry.server_registry as ServerRegistry
     import voodoo.gen.exceptions.registry.RegistryErrors as RegistryErrors
     registry = ServerRegistry.get_instance()
     try:
         registry.register_server(_SERVER_PREFIX + self._full_address,
                                  self._parent)
     except RegistryErrors.AddressAlreadyRegisteredError as aar:
         log.log(
             ServerDirect, log.level.Warning,
             "Exception registering parent server: AddressAlreadyRegistered: %s"
             % aar)
         registry.reregister_server(_SERVER_PREFIX + self._full_address,
                                    self._parent)
    def __init__(self, coordinator_server_address, server_type_handler):
        object.__init__(self)

        self._registry = ServerRegistry.get_instance()
        self._server_type_handler = server_type_handler

        # Cache structure:
        # self._cache = {
        #      ServerType.Login : {
        #         restrictions : server
        #   }
        # }
        self._cache = {}
        self._cache_lock = threading.RLock()

        self._coordinator = self._retrieve_coordinator(coordinator_server_address,server_type_handler)
Example #10
0
    def __init__(self, coordinator_server_address, server_type_handler):
        object.__init__(self)

        self._registry = ServerRegistry.get_instance()
        self._server_type_handler = server_type_handler

        # Cache structure:
        # self._cache = {
        #      ServerType.Login : {
        #         restrictions : server
        #   }
        # }
        self._cache = {}
        self._cache_lock = threading.RLock()

        self._coordinator = self._retrieve_coordinator(
            coordinator_server_address, server_type_handler)
Example #11
0
 def create_client(self, methods):
     registry = ServerRegistry.get_instance()
     try:
         server = registry.get_server(
             ServerDirect._SERVER_PREFIX + self.address
             #ServerDirect._SERVER_PREFIX + self._machine_id + "__" + self._instance_id + "__" + self._server_id
         )
     except RegistryErrors.RegistryError as rex:
         raise ProtocolErrors.ClientCreationError(
             ("Registry exception while retrieving server from registry: %s"
              % rex), rex)
     try:
         client_class = ClientSkel.factory(Protocols.Direct, methods)
     except Exception as e:
         raise ProtocolErrors.ClientClassCreationError(
             ("Client class creation exception: %s" % e), e)
     try:
         return client_class(server)
     except Exception as e:
         raise ProtocolErrors.ClientInstanciationError(
             ("Exception instaciating the client: %s" % e), e)
    def tearDown(self):
        ServerRegistry.get_instance().clear()

        for i in self.real_servers:
            i.stop()
Example #13
0
 def tearDown(self):
     ServerRegistry.get_instance().clear()
Example #14
0
 def test_registries(self):
     reg1 = ServerRegistry.get_instance()
     reg2 = ServerRegistry.get_instance()
     self.assertEquals(reg1, reg2)
 def tearDown(self):
     ServerRegistry.get_instance().clear()
    def tearDown(self):
        ServerRegistry.get_instance().clear()

        for i in self.real_servers:
            i.stop()