code: def _set_federated_upstream(
      self, upstream_host, vhost, receive_queue_name
  ):
      url = C_HTTP_TEMPLATE.format(
          self.endpoint,
          "{}/{}/{}/{}".format(
              "parameters",
              "federation-upstream",
              vhost,
              receive_queue_name,
          ),
      )
      upstream_runtime_config = self.runtime_config.get("upstream", {})
  
      upstream_runtime_config["uri"] = upstream_host
      upstream_runtime_config["queue"] = receive_queue_name.replace(
          "receive", "send", 1
      )
  
      body = {"value": upstream_runtime_config}
      LOGGER.debug(
          f"[rabbitmanager._set_federated_upstream]set_federated_upstream, url: {url} body: {body}"
      )
  
      result = requests.put(
          url,
          headers=C_COMMON_HTTP_HEADER,
          json=body,
          auth=(self.user, self.password),
      )
      LOGGER.debug(f"[rabbitmanager._set_federated_upstream] {result}")
      if result.status_code != 201 and result.status_code != 204:
          LOGGER.debug(
              f"[rabbitmanager._set_federated_upstream] _set_federated_upstream fail. {result}"
          )
          return False
  
      return True
  
imports: import logging
  import time
  import requests
label_desc: Use image node_id 23 for calling the RabbitManager obj's underlying member method code with example usage: obj._set_federated_upstream(upstream_host, vhost, receive_queue_name) and returns: True, False