def send_status(self, msg, log_level=fedn.Status.INFO, type=None, request=None): """Send status message. """ from google.protobuf.json_format import MessageToJson status = fedn.Status() status.timestamp = str(datetime.now()) status.sender.name = self.name status.sender.role = fedn.WORKER status.log_level = log_level status.status = str(msg) if type is not None: status.type = type if request is not None: status.data = MessageToJson(request) self.logs.append("{} {} LOG LEVEL {} MESSAGE {}".format( str(datetime.now()), status.sender.name, status.log_level, status.status)) response = self.connection.SendStatus(status)
def ModelValidationStream(self, update, context): """ :param update: :param context: """ client = update.sender status = fedn.Status( status="Client {} connecting to ModelValidationStream.".format( client.name)) status.log_level = fedn.Status.INFO status.sender.name = self.id status.sender.role = role_to_proto_role(self.role) self._subscribe_client_to_queue(client, fedn.Channel.MODEL_VALIDATIONS) q = self.__get_queue(client, fedn.Channel.MODEL_VALIDATIONS) self._send_status(status) while context.is_active(): try: yield q.get(timeout=1.0) except queue.Empty: pass
def ModelUpdateRequestStream(self, response, context): """ A server stream RPC endpoint. Messages from client stream. """ client = response.sender metadata = context.invocation_metadata() if metadata: print("\n\n\nGOT METADATA: {}\n\n\n".format(metadata), flush=True) status = fedn.Status( status="Client {} connecting to ModelUpdateRequestStream.".format( client.name)) status.log_level = fedn.Status.INFO status.timestamp = str(datetime.now()) self.__whoami(status.sender, self) self._subscribe_client_to_queue(client, fedn.Channel.MODEL_UPDATE_REQUESTS) q = self.__get_queue(client, fedn.Channel.MODEL_UPDATE_REQUESTS) self._send_status(status) while context.is_active(): try: yield q.get(timeout=1.0) except queue.Empty: pass
def AllianceStatusStream(self, response, context): """ A server stream RPC endpoint that emits status messages. """ status = fedn.Status( status="Client {} connecting to AllianceStatusStream.".format( response.sender)) status.log_level = fedn.Status.INFO status.sender.name = self.id status.sender.role = role_to_proto_role(self.role) self._subscribe_client_to_queue(response.sender, fedn.Channel.STATUS) q = self.__get_queue(response.sender, fedn.Channel.STATUS) self._send_status(status) while True: yield q.get()
def ModelUpdateStream(self, update, context): client = update.sender status = fedn.Status( status="Client {} connecting to ModelUpdateStream.".format( client.name)) status.log_level = fedn.Status.INFO status.sender.name = self.id status.sender.role = role_to_proto_role(self.role) self._subscribe_client_to_queue(client, fedn.Channel.MODEL_UPDATES) q = self.__get_queue(client, fedn.Channel.MODEL_UPDATES) self._send_status(status) while True: yield q.get()
def ModelValidationRequestStream(self, response, context): """ A server stream RPC endpoint. Messages from client stream. """ client = response.sender status = fedn.Status( status="Client {} connecting to ModelValidationRequestStream.". format(client.name)) status.log_level = fedn.Status.INFO status.sender.name = self.id status.sender.role = role_to_proto_role(self.role) self._subscribe_client_to_queue(client, fedn.Channel.MODEL_VALIDATION_REQUESTS) q = self.__get_queue(client, fedn.Channel.MODEL_VALIDATION_REQUESTS) self._send_status(status) while True: yield q.get()
def ModelValidationRequestStream(self, response, context): """ A server stream RPC endpoint. Messages from client stream. """ client = response.sender status = fedn.Status( status="Client {} connecting to ModelValidationRequestStream.". format(client.name)) status.log_level = fedn.Status.INFO status.sender.name = self.id status.sender.role = role_to_proto_role(self.role) status.timestamp = str(datetime.now()) self._subscribe_client_to_queue(client, fedn.Channel.MODEL_VALIDATION_REQUESTS) q = self.__get_queue(client, fedn.Channel.MODEL_VALIDATION_REQUESTS) self._send_status(status) while context.is_active(): try: yield q.get(timeout=1.0) except queue.Empty: pass