class_docstr: Service for executing delegated operations.
docstr: Executes the given delegated operation.
  
  Args:
      operation: the
          :class:`fiftyone.factory.repos.DelegatedOperationDocument`
      log (False): the optional boolean flag to log the execution of the
          delegated operations
      run_link (None): an optional link to orchestrator-specific
          information about the operation
docstr_tok: ["Executes","the","given","delegated","operation",".","Args",":","operation",":","the",":","class",":","`","fiftyone.factory.repos.DelegatedOperationDocument","`","log","(","False",")",":","the","optional","boolean","flag","to","log","the","execution","of","the","delegated","operations","run_link","(","None",")",":","an","optional","link","to","orchestrator-specific","information","about","the","operation"]
code: def execute_operation(self, operation, log=False, run_link=None):
      """Executes the given delegated operation.
  
      Args:
          operation: the
              :class:`fiftyone.factory.repos.DelegatedOperationDocument`
          log (False): the optional boolean flag to log the execution of the
              delegated operations
          run_link (None): an optional link to orchestrator-specific
              information about the operation
      """
      try:
          self.set_running(doc_id=operation.id, run_link=run_link)
          if log:
              logger.info(
                  "\nRunning operation %s (%s)",
                  operation.id,
                  operation.operator,
              )
  
          result = asyncio.run(self._execute_operator(operation))
  
          self.set_completed(doc_id=operation.id, result=result)
          if log:
              logger.info("Operation %s complete", operation.id)
      except:
          result = ExecutionResult(error=traceback.format_exc())
  
          self.set_failed(doc_id=operation.id, result=result)
          if log:
              logger.info(
                  "Operation %s failed\n%s", operation.id, result.error
              )
  
imports: import asyncio
  import logging
  import traceback
  from fiftyone.factory.repo_factory import RepositoryFactory
  from fiftyone.factory import DelegatedOperationPagingParams
  from fiftyone.operators.executor import prepare_operator_executor, do_execute_operator, ExecutionResult, ExecutionRunState
label_desc: Use image node_id 17 for calling the DelegatedOperationService obj's underlying member method code with example usage: obj.execute_operation(operation, log, run_link) without return types