def test_registries(self): reg1 = ServerRegistry.get_instance() reg2 = ServerRegistry.get_instance() self.assertEquals( reg1, reg2 )
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 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]
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)
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)
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()
def tearDown(self): ServerRegistry.get_instance().clear()
def test_registries(self): reg1 = ServerRegistry.get_instance() reg2 = ServerRegistry.get_instance() self.assertEquals(reg1, reg2)