o-nikolas commented on code in PR #39077:
URL: https://github.com/apache/airflow/pull/39077#discussion_r1569142772


##########
airflow/cli/cli_parser.py:
##########
@@ -56,19 +56,22 @@
 airflow_commands = core_commands.copy()  # make a copy to prevent bad 
interactions in tests
 
 log = logging.getLogger(__name__)
-try:
-    executor, _ = ExecutorLoader.import_default_executor_cls(validate=False)
-    airflow_commands.extend(executor.get_cli_commands())
-except Exception:
-    executor_name = ExecutorLoader.get_default_executor_name()
-    log.exception("Failed to load CLI commands from executor: %s", 
executor_name)
-    log.error(
-        "Ensure all dependencies are met and try again. If using a Celery 
based executor install "
-        "a 3.3.0+ version of the Celery provider. If using a Kubernetes 
executor, install a "
-        "7.4.0+ version of the CNCF provider"
-    )
-    # Do not re-raise the exception since we want the CLI to still function for
-    # other commands.
+
+
+executors = [executor for executor, _ in ExecutorLoader.import_all_executors()]
+
+for executor in executors:

Review Comment:
   You want the imports to be within the try/catch here, which is quite 
important. The biggest issue we're looking out for here is the case of the 
executor module not being able to load (maybe it has some dependency that's not 
installed) which is what you'd see if you configured an executor in airflow 
config but didn't install the provider package say.
   
   With this in mind, you might have to pivot to adding a method to just fetch 
the names, and then load them individually so that one failed executor doesn't 
stop others from loading their commands.
   
   So the pseudo code will look like:
   ```python
   for executor_name in ExecutorLoader.get_all_executor_names():
      try:
          # Both the below lines need to be in the try
          loaded_executor = ExecutorLoader.load_executor(executor_name)
          airflow_commands.extend(loaded_executor.get_cli_commands())
      except Exception:
          <all the same exception handling/messaging here>



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to