Loading ccserver/ccserver.py +7 −0 Original line number Diff line number Diff line Loading @@ -126,6 +126,13 @@ class CCServer(object): else: self._connected[login] = CCClient(login, role, self, connection) # If the registered role is bootstrap, we need to register the object # on objectdb because it have no account: if role == 'bootstrap': obj = TqlObject(id=login, r=role) logging.info('%s' % obj) self.objects.register(obj) def unregister(self, connection): ''' Unregister an already connected account. Loading ccserver/handlers.py +15 −1 Original line number Diff line number Diff line Loading @@ -825,6 +825,15 @@ class CliHandler(OnlineCCHandler): return client.connection.call(command, *args, **kwargs) class BootstrapHandler(OnlineCCHandler): ''' Handler for bootstrap clients. ''' pass class WelcomeHandler(CCHandler): ''' Default handler used on client connections of the server. Loading @@ -837,6 +846,7 @@ class WelcomeHandler(CCHandler): 'hv': HypervisorHandler, 'host': None, 'spv': SpvHandler, 'bootstrap': BootstrapHandler, } @listed Loading Loading @@ -874,14 +884,18 @@ class WelcomeHandler(CCHandler): raise BadRoleError('%r is not a legal role' % role) # If authentication is a success, try to register the client: if role == 'bootstrap': # Set a bootstrap id for the object: login = '%s.%s' % (login, conn.get_fd()) try: self._server.register(login, role, conn) except AlreadyRegistered: logging.warning(logmsg + 'already connected (%s)', conn.getpeername(), login) raise AuthenticationError('Already connected') conn.set_handler(WelcomeHandler.ROLES.get(role)(self._server)) conn.set_handler(WelcomeHandler.ROLES.get(role)(self._server)) logging.info('Authentication success from %s with login %s', conn.getpeername(), login) return role Loading
ccserver/ccserver.py +7 −0 Original line number Diff line number Diff line Loading @@ -126,6 +126,13 @@ class CCServer(object): else: self._connected[login] = CCClient(login, role, self, connection) # If the registered role is bootstrap, we need to register the object # on objectdb because it have no account: if role == 'bootstrap': obj = TqlObject(id=login, r=role) logging.info('%s' % obj) self.objects.register(obj) def unregister(self, connection): ''' Unregister an already connected account. Loading
ccserver/handlers.py +15 −1 Original line number Diff line number Diff line Loading @@ -825,6 +825,15 @@ class CliHandler(OnlineCCHandler): return client.connection.call(command, *args, **kwargs) class BootstrapHandler(OnlineCCHandler): ''' Handler for bootstrap clients. ''' pass class WelcomeHandler(CCHandler): ''' Default handler used on client connections of the server. Loading @@ -837,6 +846,7 @@ class WelcomeHandler(CCHandler): 'hv': HypervisorHandler, 'host': None, 'spv': SpvHandler, 'bootstrap': BootstrapHandler, } @listed Loading Loading @@ -874,14 +884,18 @@ class WelcomeHandler(CCHandler): raise BadRoleError('%r is not a legal role' % role) # If authentication is a success, try to register the client: if role == 'bootstrap': # Set a bootstrap id for the object: login = '%s.%s' % (login, conn.get_fd()) try: self._server.register(login, role, conn) except AlreadyRegistered: logging.warning(logmsg + 'already connected (%s)', conn.getpeername(), login) raise AuthenticationError('Already connected') conn.set_handler(WelcomeHandler.ROLES.get(role)(self._server)) conn.set_handler(WelcomeHandler.ROLES.get(role)(self._server)) logging.info('Authentication success from %s with login %s', conn.getpeername(), login) return role