async def _handle_ready_to_add(self, conn: IncomingConnection, msg: ReadyToAddMessageModel) -> None: logger.debug(f"handle ready to add from {conn}") address: str = conn.address if address not in self._joining: logger.info(f"handle ready to add > unknown node {conn}") await conn.send_msg( MessageModel( type=MessageTypeEnum.ERROR, data=ErrorMessageModel( what="node not joining", code=status.HTTP_428_PRECONDITION_REQUIRED, ), )) return node: JoiningNodeModel = self._joining[address] logger.info("handle ready to add > " f"hostname: {node.hostname}, address: {node.address}") orch = Orchestrator(self.gstate.ceph_mgr) if not orch.host_add(node.hostname, node.address): logger.error("handle ready > failed adding host to orch") # reset default crush ruleset, and adjust pools to use a multi-node # ruleset, spreading replicas across hosts rather than osds. mon = self.gstate.ceph_mon if not mon.set_replicated_ruleset(): logger.error( "handle ready to add > unable to set replicated ruleset") await self._set_pool_default_size()
async def _handle_ready_to_add(self, conn: IncomingConnection, msg: ReadyToAddMessageModel) -> None: logger.debug(f"handle ready to add from {conn}") address: str = conn.address if address not in self._joining: logger.info(f"handle ready to add > unknown node {conn}") await conn.send_msg( MessageModel(type=MessageTypeEnum.ERROR, data=ErrorMessageModel( what="node not joining", code=status.HTTP_428_PRECONDITION_REQUIRED))) return node: JoiningNodeModel = self._joining[address] logger.info("handle ready to add > " f"hostname: {node.hostname}, address: {node.address}") orch = Orchestrator() if not orch.host_add(node.hostname, node.address): logger.error("handle ready > failed adding host to orch")