code: def _choose_capture_side(self):
          
  
          ALWAYS_RUNNING_NODES_TYPE = ("cloud", "nat", "ethernet_switch", "ethernet_hub")
  
          for node in self._nodes:
              if node["node"].compute.id == "local" and node["node"].node_type in ALWAYS_RUNNING_NODES_TYPE and node["node"].status == "started":
                  return node
  
          for node in self._nodes:
              if node["node"].node_type in ALWAYS_RUNNING_NODES_TYPE and node["node"].status == "started":
                  return node
  
          for node in self._nodes:
              if node["node"].compute.id == "local" and node["node"].status == "started":
                  return node
  
          for node in self._nodes:
              if node["node"].node_type and node["node"].status == "started":
                  return node
  
          raise aiohttp.web.HTTPConflict(text="Cannot capture because there is no running device on this link")
docs: Run capture on the best candidate.
  
          The ideal candidate is a node who on controller server and always
          running (capture will not be cut off)
  
          :returns: Node where the capture should run