* email notification of evaluation errors to project owner (if desired)
This commit is contained in:
		| @@ -39,6 +39,8 @@ __PACKAGE__->add_columns( | ||||
|     is_nullable => 0, | ||||
|     size => undef, | ||||
|   }, | ||||
|   "emailonerror", | ||||
|   { data_type => "integer", default_value => 0, is_nullable => 0, size => undef }, | ||||
| ); | ||||
| __PACKAGE__->set_primary_key("username"); | ||||
| __PACKAGE__->has_many( | ||||
| @@ -53,8 +55,8 @@ __PACKAGE__->has_many( | ||||
| ); | ||||
|  | ||||
|  | ||||
| # Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-11-17 16:04:13 | ||||
| # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:oBiKpCxHGZcGujhY/ZbbxA | ||||
| # Created by DBIx::Class::Schema::Loader v0.04999_09 @ 2009-12-18 12:57:04 | ||||
| # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:/AWZnceSVTAlb5Tru9T1+g | ||||
|  | ||||
|  | ||||
| # You can replace this text with custom content, and it will be preserved on regeneration | ||||
|   | ||||
| @@ -7,11 +7,18 @@ use Hydra::Helper::Nix; | ||||
| use Hydra::Helper::AddBuilds; | ||||
| use Digest::SHA qw(sha256_hex); | ||||
|  | ||||
| use Email::Sender::Simple qw(sendmail); | ||||
| use Email::Sender::Transport::SMTP; | ||||
| use Email::Simple; | ||||
| use Email::Simple::Creator; | ||||
| use Sys::Hostname::Long; | ||||
| use Config::General; | ||||
|  | ||||
|  | ||||
| STDOUT->autoflush(); | ||||
|  | ||||
| my $db = openHydraDB; | ||||
|  | ||||
| my %config = new Config::General($ENV{"HYDRA_CONFIG"})->getall; | ||||
|  | ||||
| sub fetchInputs { | ||||
|     my ($project, $jobset, $inputInfo) = @_; | ||||
| @@ -31,8 +38,42 @@ sub setJobsetError { | ||||
|             $jobset->update({errormsg => $errorMsg, errortime => time}); | ||||
|         }); | ||||
|     }; | ||||
|     sendJobsetErrorNotification($jobset, $errorMsg);  | ||||
| } | ||||
|  | ||||
| sub sendJobsetErrorNotification() { | ||||
|     my ($jobset, $errorMsg) = @_; | ||||
|  | ||||
|     return if $jobset->project->owner->emailonerror == 0; | ||||
|  | ||||
|     my $projectName = $jobset->project->name; | ||||
|     my $jobsetName = $jobset->name; | ||||
|  | ||||
|     my $sender = $config{'notification_sender'} || | ||||
|         (($ENV{'USER'} || "hydra") .  "@" . hostname_long); | ||||
|  | ||||
|     my $body = "Hi,\n" | ||||
|         . "\n" | ||||
|         . "This is to let you know that Hydra jobset evalation of $projectName:$jobsetName " | ||||
|         . "resulted in the following error:\n" | ||||
|         . "\n" | ||||
|         . "$errorMsg" | ||||
|         . "\n" | ||||
|         . "Regards,\n\nThe Hydra build daemon.\n"; | ||||
|  | ||||
|     my $email = Email::Simple->create( | ||||
|         header => [ | ||||
|             To      => $jobset->project->owner->emailaddress, | ||||
|             From    => "Hydra Build Daemon <$sender>", | ||||
|             Subject => "Hydra $projectName:$jobsetName evaluation error", | ||||
|         ], | ||||
|         body => $body, | ||||
|     ); | ||||
|  | ||||
|     print $email->as_string if $ENV{'HYDRA_MAIL_TEST'}; | ||||
|  | ||||
|     sendmail($email); | ||||
| } | ||||
|  | ||||
| sub permute { | ||||
|     my @list = @_; | ||||
|   | ||||
| @@ -2,7 +2,8 @@ create table Users ( | ||||
|     userName      text primary key not null, | ||||
|     fullName      text, | ||||
|     emailAddress  text not null, | ||||
|     password      text not null -- sha256 hash | ||||
|     password      text not null, -- sha256 hash | ||||
|     emailOnError  integer not null default 0 | ||||
| ); | ||||
|  | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user