Message ID | 20170216220747.16020-1-zackw@panix.com |
---|---|
State | New |
Headers | show |
On Thu, 16 Feb 2017, Zack Weinberg wrote: > The 'bot-cycle' action for build-many-glibcs is a convenient way to > not have to remember all the steps in keeping a many-glibcs tree up > to date ... or it would be, if the script could send mail _optionally_. > Make it so by skipping the mail step if mail isn't configured. > > OK? > > * scripts/build-many-glibcs.py (bot_build_mail): If the > bot_config does not contain all of the necessary email- > related settings, just print a warning and continue. I'm not sure what self.email_warning is for, given it's only set to True right before the script exits (so will always be False when tested). OK without that variable.
On Thu, Feb 16, 2017 at 5:19 PM, Joseph Myers <joseph@codesourcery.com> wrote: > On Thu, 16 Feb 2017, Zack Weinberg wrote: > >> The 'bot-cycle' action for build-many-glibcs is a convenient way to >> not have to remember all the steps in keeping a many-glibcs tree up >> to date ... or it would be, if the script could send mail _optionally_. >> Make it so by skipping the mail step if mail isn't configured. >> >> OK? >> >> * scripts/build-many-glibcs.py (bot_build_mail): If the >> bot_config does not contain all of the necessary email- >> related settings, just print a warning and continue. > > I'm not sure what self.email_warning is for, given it's only set to True > right before the script exits (so will always be False when tested). Not so; bot_build_mail is called at the end of each "action" in a cycle: for a in actions: if must_build[a]: build_time = datetime.datetime.utcnow() print('Rebuilding %s at %s.' % (a, str(build_time))) self.bot_run_self([], a) self.load_build_state_json() self.bot_build_mail(a, build_time) print('Bot cycle done at %s.' % str(datetime.datetime.utcnow())) And it takes the "action" as an argument, so making it send mail only once for the entire process would be a fair bit of surgery. Given that, do you still want self.email_warning removed? It seems to me it would be annoying to get the warning more than once per invocation. zw
On Thu, 16 Feb 2017, Zack Weinberg wrote: > Not so; bot_build_mail is called at the end of each "action" in a cycle: > > for a in actions: > if must_build[a]: > build_time = datetime.datetime.utcnow() > print('Rebuilding %s at %s.' % (a, str(build_time))) > self.bot_run_self([], a) > self.load_build_state_json() > self.bot_build_mail(a, build_time) > print('Bot cycle done at %s.' % str(datetime.datetime.utcnow())) > > And it takes the "action" as an argument, so making it send mail only > once for the entire process would be a fair bit of surgery. Given > that, do you still want self.email_warning removed? It seems to me it > would be annoying to get the warning more than once per invocation. Thanks for the correction. The patch is OK as-is.
diff --git a/scripts/build-many-glibcs.py b/scripts/build-many-glibcs.py index d2947e676b..4f724ced6f 100755 --- a/scripts/build-many-glibcs.py +++ b/scripts/build-many-glibcs.py @@ -122,6 +122,7 @@ class Context(object): self.load_versions_json() self.load_build_state_json() self.status_log_list = [] + self.email_warning = False def get_script_text(self): """Return the text of this script.""" @@ -1003,6 +1004,15 @@ class Context(object): def bot_build_mail(self, action, build_time): """Send email with the results of a build.""" + if not ('email-from' in self.bot_config and + 'email-server' in self.bot_config and + 'email-subject' in self.bot_config and + 'email-to' in self.bot_config): + if not self.email_warning: + print("Email not configured, not sending.") + self.email_warning = True + return + build_time = build_time.replace(microsecond=0) subject = (self.bot_config['email-subject'] % {'action': action,