There is some discussion in the drush queue about changing the way backend invoke works when $integrate is FALSE; see #1058874: drush_backend_invoke buffers output till end of command. Show progress..

It would be useful to have some feedback on whether any of the proposals would adversely affect Aegir.

Comments

Xen’s picture

To summarize:
The current behavior of the backend_invoke functions, when $integrate is FALSE, is to not output standard output, logging or setting errors.

This makes drush rather uninformative about what when wrong in backend commands.

The proposed fix:

All regular output from the backended command is immediately printed, whether integrating or not. The caller can use the -q switch to suppress this.

All logging from the backended is integrated into the log of the caller on the fly, regardless of the state of the integrate switch.

drush_set_error in the backended command will trigger a equivalent drush_set_error in the caller when integrate is TRUE, and do nothing if it's false.

The output, log and error will always be available in the data array returned by the backend_invoke commands.

anarcat’s picture

Status: Active » Fixed

I think this is fine. We indeed do not use $integrate = FALSE nowhere I could find, and this issue has been bugging me for a looong time. :)

Good work.

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.