code: def add_group_coordinator(self, group, response):
          
          log.debug("Updating coordinator for %s: %s", group, response)
          error_type = Errors.for_code(response.error_code)
          if error_type is not Errors.NoError:
              log.error("GroupCoordinatorResponse error: %s", error_type)
              self._groups[group] = -1
              return False
  
          node_id = response.coordinator_id
          coordinator = BrokerMetadata(
              response.coordinator_id,
              response.host,
              response.port,
              None)
  
          # Assume that group coordinators are just brokers
          # (this is true now, but could diverge in future)
          if node_id not in self._brokers:
              self._brokers[node_id] = coordinator
  
          # If this happens, either brokers have moved without
          # changing IDs, or our assumption above is wrong
          else:
              node = self._brokers[node_id]
              if coordinator.host != node.host or coordinator.port != node.port:
                  log.error("GroupCoordinator metadata conflicts with existing"
                            " broker metadata. Coordinator: %s, Broker: %s",
                            coordinator, node)
                  self._groups[group] = node_id
                  return False
  
          log.info("Group coordinator for %s is %s", group, coordinator)
          self._groups[group] = node_id
          return True
docs: Update with metadata for a group coordinator
  
          Arguments:
              group (str): name of group from GroupCoordinatorRequest
              response (GroupCoordinatorResponse): broker response
  
          Returns:
              bool: True if metadata is updated, False on error