You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vcl.apache.org by fa...@apache.org on 2010/08/06 17:00:14 UTC
svn commit: r983008 - in /incubator/vcl/trunk:
managementnode/etc/vcl/vcld.conf managementnode/lib/VCL/DataStructure.pm
managementnode/lib/VCL/healthcheck.pm managementnode/lib/VCL/image.pm
managementnode/lib/VCL/utils.pm mysql/vcl.sql
Author: fapeeler
Date: Fri Aug 6 15:00:14 2010
New Revision: 983008
URL: http://svn.apache.org/viewvc?rev=983008&view=rev
Log:
VCL-224
moved sysadmin and sharedMailBox email addresses to the management node table
Modified:
incubator/vcl/trunk/managementnode/etc/vcl/vcld.conf
incubator/vcl/trunk/managementnode/lib/VCL/DataStructure.pm
incubator/vcl/trunk/managementnode/lib/VCL/healthcheck.pm
incubator/vcl/trunk/managementnode/lib/VCL/image.pm
incubator/vcl/trunk/managementnode/lib/VCL/utils.pm
incubator/vcl/trunk/mysql/vcl.sql
Modified: incubator/vcl/trunk/managementnode/etc/vcl/vcld.conf
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/etc/vcl/vcld.conf?rev=983008&r1=983007&r2=983008&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/etc/vcl/vcld.conf (original)
+++ incubator/vcl/trunk/managementnode/etc/vcl/vcld.conf Fri Aug 6 15:00:14 2010
@@ -94,30 +94,12 @@ enable_mysql_ssl=no
#mysql_ssl_cert: Path to MySQL certificate file
mysql_ssl_cert=/etc/vcl/cert/my_ca.crt
-
-# sysadmin: system administrator email list
-# list of email addresses to be used for critical notices regarding failures or problems
-# optional, but not recommended to leave blank
-# Format: comma delimited list
-# Example: john_doe@someschool.edu,sysadmins@vcl.someschool.edu
-sysadmin=
-
#Sendmail envelope sender -- Return-path
#The return-path should be set if you want email delivery failures to go
#to a common place
#set this to a known working address that would recieve mail like blah@yourdomain.com
RETURNPATH=
-# shared mailbox -
-# address of a shared mailbox for copies of all notices sent to users
-# optional
-# leave empty or comment out to disable
-# depending on user base this mailbox can grow quite large
-#
-# users are sent email notices regarding their reservations for new
-# reservations, upcoming timeouts and image creations
-sharedmailbox=
-
# default from email address for end-user notifications if not listed in
# affilation
# database table - normally this would be a list or a help system - but
Modified: incubator/vcl/trunk/managementnode/lib/VCL/DataStructure.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/DataStructure.pm?rev=983008&r1=983007&r2=983008&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/DataStructure.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/DataStructure.pm Fri Aug 6 15:00:14 2010
@@ -466,6 +466,9 @@ $SUBROUTINE_MAPPINGS{management_node_pub
#$SUBROUTINE_MAPPINGS{management_node_public_default_gateway} = '$ENV{management_node_info}{PUBLIC_DEFAULT_GATEWAY}';
$SUBROUTINE_MAPPINGS{management_node_public_dns_server} = '$ENV{management_node_info}{PUBLIC_DNS_SERVER}';
+$SUBROUTINE_MAPPINGS{management_node_sysadmin_email} = '$ENV{management_node_info}{SYSADMIN_EMAIL}';
+$SUBROUTINE_MAPPINGS{management_node_shared_email_box} = '$ENV{management_node_info}{SHARED_EMAIL_BOX}';
+
$SUBROUTINE_MAPPINGS{management_node_predictive_module_name} = '$ENV{management_node_info}{predictive_name}';
$SUBROUTINE_MAPPINGS{management_node_predictive_module_pretty_name} = '$ENV{management_node_info}{predictive_prettyname}';
$SUBROUTINE_MAPPINGS{management_node_predictive_module_description} = '$ENV{management_node_info}{predictive_description}';
Modified: incubator/vcl/trunk/managementnode/lib/VCL/healthcheck.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/healthcheck.pm?rev=983008&r1=983007&r2=983008&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/healthcheck.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/healthcheck.pm Fri Aug 6 15:00:14 2010
@@ -543,6 +543,8 @@ sub _image_revision_check {
sub send_report {
my ($hck) = @_;
+
+ my $sysadmin_email = $ENV{management_node_info}{SYSADMIN_EMAIL};
#notify($ERRORS{'OK'},$LOG,"$hck->{globalmsg}->{body}\n\n $hck->{globalmsg}->{failedbody}\n");
if (defined($hck->{computercount})) {
@@ -572,7 +574,7 @@ sub send_report {
$hck->{globalmsg}->{body} .= "\nAll nodes report ok";
}
- mail($SYSADMIN, "VCL node monitoring report", "$hck->{globalmsg}->{body}");
+ mail($sysadmin_email, "VCL node monitoring report", "$hck->{globalmsg}->{body}");
} ## end sub send_report
#/////////////////////////////////////////////////////////////////////////////
Modified: incubator/vcl/trunk/managementnode/lib/VCL/image.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/image.pm?rev=983008&r1=983007&r2=983008&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/image.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/image.pm Fri Aug 6 15:00:14 2010
@@ -104,6 +104,7 @@ sub process {
my $computer_type = $self->data->get_computer_type();
my $computer_shortname = $self->data->get_computer_short_name();
my $managementnode_shortname = $self->data->get_management_node_short_name();
+ my $sysadmin_mail_address = $self->data->get_management_node_sysadmin_email();
# Notify administrators that image creation is starting
my $body = <<"END";
@@ -128,7 +129,7 @@ Computer name: $computer_shortname
Use Sysprep: $imagemeta_sysprep
END
- mail($SYSADMIN, "VCL IMAGE Creation Started: $image_name", $body, $affiliation_helpaddress);
+ mail($sysadmin_mail_address, "VCL IMAGE Creation Started: $image_name", $body, $affiliation_helpaddress);
# Make sure image does not exist in the repository
my $image_already_exists = $self->provisioner->does_image_exist();
@@ -300,6 +301,7 @@ sub reservation_successful {
my $computer_type = $self->data->get_computer_type();
my $computer_shortname = $self->data->get_computer_short_name();
my $managementnode_shortname = $self->data->get_management_node_short_name();
+ my $sysadmin_mail_address = $self->data->get_management_node_sysadmin_email();
# Send image creation successful email to user
my $body_user = <<"END";
@@ -314,7 +316,7 @@ VCL Team
END
mail($user_email, "VCL -- $image_prettyname Image Creation Succeeded", $body_user, $affiliation_helpaddress);
- # Send mail to SYSADMIN
+ # Send mail to $sysadmin_mail_address
my $body_admin = <<"END";
VCL Image Creation Completed
@@ -339,7 +341,7 @@ Computer name: $computer_shortname
Use Sysprep: $imagemeta_sysprep
END
- mail($SYSADMIN, "VCL IMAGE Creation Completed: $image_name", $body_admin, $affiliation_helpaddress);
+ mail($sysadmin_mail_address, "VCL IMAGE Creation Completed: $image_name", $body_admin, $affiliation_helpaddress);
# Insert reload request data into the datbase
if (insert_reload_request($request_data)) {
@@ -382,6 +384,7 @@ sub reservation_failed {
my $computer_type = $self->data->get_computer_type();
my $computer_shortname = $self->data->get_computer_short_name();
my $managementnode_shortname = $self->data->get_management_node_short_name();
+ my $sysadmin_mail_address = $self->data->get_management_node_sysadmin_email();
# Image process failed
notify($ERRORS{'CRITICAL'}, 0, "$image_name image creation failed");
@@ -409,7 +412,7 @@ VCL Team
END
mail($user_email, "VCL -- NOTICE DELAY Image Creation $image_prettyname", $body_user, $affiliation_helpaddress);
- # Send mail to SYSADMIN
+ # Send mail to $sysadmin_mail_address
my $body_admin = <<"END";
VCL Image Creation Failed
@@ -433,7 +436,7 @@ Computer name: $computer_shortname
Use Sysprep: $imagemeta_sysprep
END
- mail($SYSADMIN, "VCL -- NOTICE FAILED Image Creation $image_prettyname", $body_admin, $affiliation_helpaddress);
+ mail($sysadmin_mail_address, "VCL -- NOTICE FAILED Image Creation $image_prettyname", $body_admin, $affiliation_helpaddress);
# Update the request state to maintenance, laststate to image
if (update_request_state($request_id, "maintenance", "image")) {
Modified: incubator/vcl/trunk/managementnode/lib/VCL/utils.pm
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/managementnode/lib/VCL/utils.pm?rev=983008&r1=983007&r2=983008&view=diff
==============================================================================
--- incubator/vcl/trunk/managementnode/lib/VCL/utils.pm (original)
+++ incubator/vcl/trunk/managementnode/lib/VCL/utils.pm Fri Aug 6 15:00:14 2010
@@ -225,7 +225,6 @@ our @EXPORT = qw(
$WINDOWS_ROOT_PASSWORD
$SERVER
$SETUP_MODE
- $SYSADMIN
$TOOLS
$VERBOSE
$WRTPASS
@@ -245,7 +244,7 @@ INIT {
our ($JABBER, $jabServer, $jabUser, $jabPass, $jabResource, $jabPort) = 0;
our ($LOGFILE, $PIDFILE, $PROCESSNAME);
our ($DATABASE, $SERVER, $WRTUSER, $WRTPASS, $LockerRdUser, $rdPass) = 0;
- our ($SYSADMIN, $SHARED_MAILBOX, $DEFAULTHELPEMAIL, $RETURNPATH) = 0;
+ our ($DEFAULTHELPEMAIL, $RETURNPATH) = 0;
our ($XCATROOT) = 0;
our ($FQDN) = 0;
our ($MYSQL_SSL, $MYSQL_SSL_CERT);
@@ -383,21 +382,11 @@ INIT {
$MYSQL_SSL_CERT = $1;
}
- #Sysadmin list
- if ($l =~ /^sysadmin=([,-.\@a-zA-Z0-9_]*)/) {
- $SYSADMIN = $1;
- }
-
#Sendmail Envelope Sender
if ($l =~ /^RETURNPATH=([,-.\@a-zA-Z0-9_]*)/) {
$RETURNPATH = $1;
}
- #sharedmailbox
- if ($l =~ /^sharedmailbox=([,-.\@a-zA-Z0-9_]*)/) {
- $SHARED_MAILBOX = $1;
- }
-
#jabber - stuff
if ($l =~ /^jabber=(yes)/) {
$JABBER = 1;
@@ -490,7 +479,7 @@ our ($JABBER, $PROCESSNAME);
our %ERRORS = ('DEPENDENT' => 4, 'UNKNOWN' => 3, 'OK' => 0, 'WARNING' => 1, 'CRITICAL' => 2, 'MAILMASTERS' => 5, 'DEBUG' => 6);
our ($LockerWrtUser, $wrtPass, $database, $server);
our ($jabServer, $jabUser, $jabPass, $jabResource, $jabPort);
-our ($vcldquerykey, $SYSADMIN, $SHARED_MAILBOX, $DEFAULTHELPEMAIL,$RETURNPATH);
+our ($vcldquerykey, $DEFAULTHELPEMAIL,$RETURNPATH);
our ($LOGFILE, $PIDFILE, $VCLDRPCQUERYKEY);
our ($SERVER, $DATABASE, $WRTUSER, $WRTPASS);
our ($MYSQL_SSL, $MYSQL_SSL_CERT);
@@ -596,6 +585,18 @@ sub notify {
# Just return if DEBUG and verbose isn't enabled
return if ($error == 6 && !$VERBOSE);
+ # Confirm sysadmin address exists
+ my $sysadmin = 0;
+ if(defined($ENV{management_node_info}{SYSADMIN_EMAIL}) && $ENV{management_node_info}{SYSADMIN_EMAIL}){
+ $sysadmin = $ENV{management_node_info}{SYSADMIN_EMAIL};
+ }
+
+ # Confirm shared mail box exists
+ my $shared_mail_box = 0;
+ if(defined($ENV{management_node_info}{SHARED_EMAIL_BOX}) && $ENV{management_node_info}{SHARED_EMAIL_BOX}){
+ my $shared_mail_box = $ENV{management_node_info}{SHARED_EMAIL_BOX};
+ }
+
# Get the current time
my $currenttime = makedatestring();
@@ -706,14 +707,14 @@ END
$log_message .= "\n";
my $from = "root\@$FQDN";
- my $to = $SYSADMIN;
+ my $to = $sysadmin;
my $subject = "PROBLEM -- $filename";
mail($to, $subject, $body, $from);
} ## end elsif ($error == 2) [ if ($error == 1)
# MAILMASTERS - only for email notifications
- elsif ($error == 5 && $SHARED_MAILBOX) {
- my $to = $SHARED_MAILBOX;
+ elsif ($error == 5 && $shared_mail_box) {
+ my $to = $shared_mail_box;
my $from = "root\@$FQDN";
my $subject = "Informational -- $filename";
@@ -1221,9 +1222,14 @@ sub mail {
}
my $localreturnpath = "-f $RETURNPATH";
my $mailer = Mail::Mailer->new("sendmail", $localreturnpath);
+
+ my $shared_mail_box = 0;
+ if(defined($ENV{management_node_info}{SHARED_EMAIL_BOX}) && $ENV{management_node_info}{SHARED_EMAIL_BOX}){
+ my $shared_mail_box = $ENV{management_node_info}{SHARED_EMAIL_BOX};
+ }
- if ($SHARED_MAILBOX) {
- my $bcc = $SHARED_MAILBOX;
+ if ($shared_mail_box) {
+ my $bcc = $shared_mail_box;
if ($mailer->open({From => $from,
To => $to,
Bcc => $bcc,
@@ -1236,7 +1242,7 @@ sub mail {
else {
notify($ERRORS{'WARNING'}, 0, "NOTICE -- Problem sending mail to: $to From");
}
- } ## end if ($SHARED_MAILBOX)
+ } ## end if ($shared_mail_box)
else {
if ($mailer->open({From => $from,
To => $to,
@@ -1249,7 +1255,7 @@ sub mail {
else {
notify($ERRORS{'WARNING'}, 0, "NOTICE -- Problem sending mail to: $to From");
}
- } ## end else [ if ($SHARED_MAILBOX)
+ } ## end else [ if ($shared_mail_box)
} ## end sub mail
#/////////////////////////////////////////////////////////////////////////////
@@ -6076,7 +6082,10 @@ AND managementnode.id != $management_nod
$management_node_info->{PUBLIC_SUBNET_MASK} = $management_node_info->{publicSubnetMmask};
$management_node_info->{PUBLIC_DEFAULT_GATEWAY} = $management_node_info->{publicDefaultGateway};
$management_node_info->{PUBLIC_DNS_SERVER} = $management_node_info->{publicDNSserver};
-
+
+ # Add sysadmin and sharedMailBox email address values
+ $management_node_info->{SYSADMIN_EMAIL} = $management_node_info->{sysadminEmailAddress};
+ $management_node_info->{SHARED_EMAIL_BOX} = $management_node_info->{sharedMailBox};
# Set the management_node_info environment variable if the info was retrieved for this computer
$ENV{management_node_info} = $management_node_info if ($management_node_identifier eq $hostname);
Modified: incubator/vcl/trunk/mysql/vcl.sql
URL: http://svn.apache.org/viewvc/incubator/vcl/trunk/mysql/vcl.sql?rev=983008&r1=983007&r2=983008&view=diff
==============================================================================
--- incubator/vcl/trunk/mysql/vcl.sql (original)
+++ incubator/vcl/trunk/mysql/vcl.sql Fri Aug 6 15:00:14 2010
@@ -500,6 +500,8 @@ CREATE TABLE IF NOT EXISTS `managementno
`publicSubnetMask` varchar(56) default NULL,
`publicDefaultGateway` varchar(56) default NULL,
`publicDNSserver` varchar(56) default NULL,
+ `sysadminEmailAddress` varchar(128) default NULL,
+ `sharedMailBox` varchar(128) default NULL,
PRIMARY KEY (`id`),
KEY `stateid` (`stateid`),
KEY `ownerid` (`ownerid`),